1. 程式人生 > >大資料叢集:CDH 6.0.X 完整版 安裝

大資料叢集:CDH 6.0.X 完整版 安裝

CDH 6.0.x 安裝步驟

前沿

由於最近工作需要對CDH6進行技術調研,這個大版本的升級更加的也同樣升級了hadoop生態圈的元件版本,支援的更加完善了,功能也增強了很多,下面做個簡單的介紹

一CDH6新功能介紹

1、 cdh 6 版本的新功能

1.打包整合Solr7,更好的應對無論是結構化資料還是非結構化資料。Solr7支援直接使用SQL查詢,並且通過SQL介面可以將對非結構化資料的查詢對接到傳統BI工具。Cloudera Enterprise 6.0支援新的 JSON Facet Module以及Nested Documents,對於Solr7的新的查詢介面UI也在6.x的Roadmap中。
2.Hive2的向量化(vectorization )進一步提升分析效能,帶來20%-80%的效能提升。YARN可以在帶有GPU的專有硬體上排程作業,對於深度學習用例的效能提升在5倍到10倍。
3.通過全自動的wire encryption(TLS)以及對於Cloudera Manager使用者的更加細粒度對每個叢集訪問的控制,提升Cloudera Manager的叢集管理效率,並保護敏感資料以及對基礎架構的訪問。從而使管理員可以在幾分鐘之內部署超過2500個節點的多個叢集,同時管理開銷最小。

2、cdh6 使用的元件版本詳情

Cloudera Enterprise 6.0中的主要元件的升級:
SDX
Cloudera Manager 6.0
Cloudera Director 6.0
Cloudera Navigator 6.0
Cloudera Navigator Key Trustee 6.0
Apache Sentry 2.0
Apache Kafka 1.0
Analytics and Machine Learning Workloads
Apache Solr 7.0
Apache Spark 2.3
Core Platform
Apache Hadoop 3.0
Apache Hive 2.1
Apache HBase 2.0
Apache Oozie 5.0
Apache Avro 1.8
Apache Parquet 1.9

3、升級或者安裝前置:

CDH
只支援從CDH5.7或以上版本升級到C6,所以如果你在使用CDH5.7以下版本,建議你至少先升級到5.7.
外部資料庫支援:
MySQL 5.7或更高
MariaDB 5.5或更高
PostgreSQL 8.4或更高
Oracle 12c或更高JDK
Oracle JDK1.8,將不再支援JDK1.7
作業系統支援
RHEL 6.8或更高
RHEL 7.2或更高
SLES 12 SP2或更高
Ubuntu 16或更高

二:下面開始進行CDH6安裝前的準備工作:

1、配置主機名和hosts解析(所有節點)

編輯/etc/hostname,修改主機名,並使用命令hostname使其立刻生效。
編輯檔案/etc/hosts,增加如下內容。
10.10.2.22 cdh22
10.10.2.21 cdh21
10.10.2.24 cdh24

2、關閉防火牆

systemctl stop firewalld.service
systemctl disable firewalld.service

3、關閉SELinux

sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g’ /etc/selinux/config
setenforce 0

4、新增定時任務

echo “$((RANDOM%60)) $((RANDOM%24)) * * * /usr/sbin/ntpdate time1.aliyun.com” >> /var/spool/cron/root

5、禁用透明大頁面壓縮

CDH配置需要
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
並將上面的兩條命令寫入開機自啟動/etc/rc.local。

6、優化交換分割槽

echo “vm.swappiness = 10” >> /etc/sysctl.conf
sysctl -p

三:安裝 CM 和 CDH

CDH6.0.x安裝 :根據自己伺服器版本進行下載
需要提前安裝的server 和 agent :根據自己伺服器版本進行下載

1、配置 Cloudera Manager 倉庫 yum源(所有節點)

wget https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/

2、配置倉儲以及驗證祕鑰

rpm --import https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/RPM-GPG-KEY-cloudera

使用倉庫安裝會比較慢,建議先把需要的rpm下載下來,進行離線安裝或者建私有倉庫,主要下面的三個軟體包:

cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
cloudera-manager-daemons 是 server 和 agent 必須安裝的。

3、配置 JDK (所有節點)

配置自己的jdk即可,建議吧jdk的環境變數路徑更改成
[[email protected] ~]# echo $JAVA_HOME
/usr/java/jdk1.8.0_152/

4、安裝 CM Server 和 Agent

  • namenode01:這邊安裝的時候,之前下載 rpm安裝包,直接安裝rpm包即可,網速快的可以直接安裝
    yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
    網速慢的可以安裝下載完的 yum install cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
  • datanode0[1-3]:
    yum install cloudera-manager-daemons cloudera-manager-agent

5、安裝資料庫(namenode01) mysql

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
–yum update 可以不更新
yum install mysql-server
systemctl start mysqld
systemctl enable mysqld
初始化Mysql 複製下面的命令直接執行回車即可,然後設定密碼 初始化選項
/usr/bin/mysql_secure_installation
[…]
Enter current password for root (enter for none):
OK, successfully used password, moving on…
[…]
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
[…]
Disallow root login remotely? [Y/n] N
[…]
Remove test database and access to it [Y/n] Y
[…]
Reload privilege tables now? [Y/n] Y
All done!

mysql配置檔案

vim /etc/my.cnf
官方推薦配置檔案配置
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction-isolation = READ-COMMITTED
symbolic-links = 0
key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1
max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M
#log_bin should be on a disk with enough free space.
#Replace ‘/var/lib/mysql/mysql_binary_log’ with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log
#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1
binlog_format = mixed
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M

安裝 MySQL JDBC 驅動(所有節點)

用於各節點連線資料庫,可以使用scp複製過去
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar xf mysql-connector-java-5.1.46.tar.gz
mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.46
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
scp /usr/share/java/mysql-connector-java.jar cdh22:/usr/share/java/

6、為 Cloudera 各軟體建立資料庫

使用root登陸資料庫,建立以下資料庫和賬號。 這邊的資料庫名字,在後面cloudera叢集安裝的時候,需要輸入

給CDH各元件建立的使用者賬戶密碼,在後面初始化組建的時候會用到

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO ‘scm’@’%’ IDENTIFIED BY ‘密碼’;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO ‘amon’@’%’ IDENTIFIED BY ‘密碼’;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO ‘rman’@’%’ IDENTIFIED BY ‘密碼’;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO ‘hue’@’%’ IDENTIFIED BY ‘密碼’;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO ‘hive’@’%’ IDENTIFIED BY ‘密碼’;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO ‘sentry’@’%’ IDENTIFIED BY ‘密碼’;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO ‘nav’@’%’ IDENTIFIED BY ‘密碼’;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO ‘navms’@’%’ IDENTIFIED BY ‘密碼’;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO ‘oozie’@’%’ IDENTIFIED BY ‘密碼’;

7、設定 Cloudera Manager 資料庫

[[email protected] ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
Enter SCM password:
JAVA_HOME=/usr/java/jdk1.8.0_162
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing: /usr/java/jdk1.8.0_162/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/…/lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[ main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!

8、安裝 CDH

配置CDH的軟體包 parcels(所有節點)
需要下載的是這三個檔案:
CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel
CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel.sha256
CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel.sha
manifest.json manifest.json

CM安裝成功之後,接下來我們就可以通過CM安裝CDH的方式構建企業大資料平臺。所以首先需要把CDH的parcels包下載到CM主伺服器上。
同樣的,我們為了加速我們的安裝,我們可以把需要下載的軟體包提前下載下來,也可以建立CDH私有倉庫。

這邊之前我們下載的安裝包直接放入 /opt/cloudera/parcel-repo 目錄下即可 提前下載也ok
[[email protected] ~]# cd /opt/cloudera/parcel-repo

wget https://archive.cloudera.com/cdh6/6.0.1/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel
wget https://archive.cloudera.com/cdh6/6.0.1/parcels/manifest.json

在manifest.json檔案中,找到對應版本的祕鑰,複製到.sha檔案中。
echo “2e650f1f1ea020a3efc98a231b85c2df1a50b030” > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha
修改屬主屬組。
chown cloudera-scm.cloudera-scm /opt/cloudera/parcel-repo/*
啟動 Cloudera Manager Server
[[email protected] ~]# systemctl start cloudera-scm-server
如果啟動中有什麼問題,可以檢視日誌。
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

四、初始化 Cloudera Manager

  • 瀏覽器開啟http://10.10.2.21:7180,使用者名稱和密碼預設都是admin。
    在這裡插入圖片描述

  • 接收許可
    在這裡插入圖片描述

  • 繼續這裡我們選擇免費版,收費版請自行選擇,然後進行安裝
    在這裡插入圖片描述

五、叢集安裝(由於已經安裝完成在寫教程,這邊圖片為借鑑)

在這裡插入圖片描述

  • 指定要新增的節點。如果這邊搜尋到的叢集節點無法連線上 ssh不通 可以考慮是不是防火牆 或者 ssh被禁掉了
    在這裡插入圖片描述

  • 選擇儲存庫,之前我們已經在 CM Server 節點配置好了。
    在這裡插入圖片描述

  • 到安裝jdk的時候 不進行勾選,選擇我們自己安裝的 JDK。

  • 提供 SSH 登入憑據, root登入
    在這裡插入圖片描述

  • 安裝 agents,因為之前我們已經安裝了,所以這裡速度會很快。
    在這裡插入圖片描述

  • 安裝選定的Parcel,之前我們已經下載好,並配置好放在的 CM Server 節點的/opt/cloudera/parcel-repo。
    在這裡插入圖片描述

  • 檢查主機正確性。
    在這裡插入圖片描述

六、叢集設定

  • 選擇要安裝的服務,可以根據自己的需求進行軟體安裝。
    在這裡插入圖片描述

  • 自定義角色分配,這邊角色分配可以參照 官網的說明https://www.cloudera.com/documentation/enterprise/6/6.0/topics/configure_cm_repo.html
    在這裡插入圖片描述

  • 資料庫設定,這邊的資料就是之前初始化的時候建立的各個元件的資料庫賬戶密碼
    在這裡插入圖片描述

  • 首次執行
    在這裡插入圖片描述

  • 安裝完成

七、管理叢集

至此,CDH6.X就安裝完成
Cloudera Manger首頁管理: http://cdh21:7180
這邊由於在整合kerberos,所有服務沒有全部啟動,後面會有整合kerberos介紹
報黃是由於網路介面速度不太好,主機報黃是由於安裝的CDH元件服務角色太多,導致記憶體分配不夠導致的

在這裡插入圖片描述