- CDH5.15.0安裝前期準備工作部署:
所有節點安裝必要的工具包:
yum -y install net-tools vim ntp libaio
1. 所有節點配置禁用SELinux
vi /etc/selinux/config
SELINUX=disabled
2. 關閉集羣所有節點防火牆
systemctl stop firewalld
systemctl disable firewalld
3. 所有節點設置swap
echo vm.swappiness = 10 >> /etc/sysctl.conf
sysctl vm.swappiness=10
4. 所有節點設置文件打開最大數
vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 32000
* hard nproc 32000
5. centos7默認啓用透明大頁面壓縮,可能會導致重大性能問題,所以先關閉透明大頁面壓縮
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
6. 所有節點都要配置hosts文件追加如下配置
vi /etc/hosts
172.16.102.170 centos170
172.16.102.171 centos171
172.16.102.172 centos172
172.16.102.173 centos173
前面六步在所有節點上執行完成後, reboot 所有機器;再接着配置下面步驟
二. 繼續配置相關的準備環境
1. 設置免祕鑰登錄(在部署CM服務的機器上配置)
ssh-keygen
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
ssh-copy-id -i ~/.ssh/id_rsa.pub root@centos171
ssh-copy-id -i ~/.ssh/id_rsa.pub root@centos172
ssh-copy-id -i ~/.ssh/id_rsa.pub root@centos173
測試是否免祕鑰成功, 輸入:ssh centos171 如果正常切換到171機器說明成功
chmod 600 /root/.ssh/authorized_keys
2. 時鐘同步
CM服務所在節點上如下配置:
vi /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
restrict 172.16.102.0 mask 255.255.255.0 notrap nomodify
server 210.72.145.44 perfer # 中國國家受時中心
server 202.112.10.36 # 1.cn.pool.ntp.org
server 59.124.196.83 # 0.asia.pool.ntp.org
restrict 210.72.145.44 nomodify notrap noquery
restrict 202.112.10.36 nomodify notrap noquery
restrict 59.124.196.83 nomodify notrap noquery
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
其他slaver上如下配置(注意只需要配置server 爲對應的CM服務所在的IP即可):
vi /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
restrict 172.16.102.0 mask 255.255.255.0 notrap nomodify
server 172.16.102.170
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
以系統時間爲基準,修改硬件時間(所有節點):
hwclock --systohc
啓動ntpd服務(所有節點)
systemctl restart ntpd.service
隨便找個slaver節點執行結果如下,證明時鐘同步配好了;
3. JDK安裝
將所有安裝軟件上傳到 /home/soft 目錄下
tar -xvf jdk-7u79-linux-x64.tar.gz -C /usr/local/
vi /etc/profile
環境變量中追加如下配置:
export JAVA_HOME=/usr/local/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
讓環境變量生效:
source /etc/profile
執行java -version 顯示如下效果,表示jdk配置成功;
同理所有節點都配置好JDK
3. 安裝mysql 在CM服務節點上
centos7默認安裝了MariaDB; 先卸載MariaDB
查看MariaDB安裝包: rpm -qa | grep mariadb
卸載MariaDB: rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
tar -xvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
mv /usr/local/mysql-5.7.18-linux-glibc2.5-x86_64/ /usr/local/mysql
cd /usr/local/mysql/
mkdir data logs pid
創建mysql用戶組,創建之後,可以查看是否創建成功
groupadd mysql
cat /etc/group|grep mysql
useradd -r -g mysql mysql
賦權,更改所屬的組和用戶
chown -R mysql.mysql /usr/local/mysql
cp support-files/mysql.server /etc/init.d/mysqld
編輯mysqld,修改爲指定路徑
vi /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
vi /etc/my.cnf 修改配置文件如下(basedir爲安裝目錄,datadir爲數據文件目錄):
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock
character-set-server=utf8
collation-server=utf8_general_ci
[mysqld_safe]
log-error=/usr/local/mysql/logs/mariadb.log
pid-file=/usr/local/mysql/pid/mariadb.pid
chown -R mysql.mysql /usr/local/mysql/logs
chown -R mysql.mysql /usr/local/mysql/pid
touch /usr/local/mysql/logs/mariadb.log
chown -R mysql.mysql /usr/local/mysql/logs/mariadb.log
配置mysql環境變量
vi /etc/profile
##mysql
export MYSQL=/usr/local/mysql
export PATH=$PATH:$MYSQL/bin
使環境變量生效:
source /etc/profile
執行數據庫初始化操作:
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
特別注意初始化時候控制檯最後一行生成一個初始化密碼,如下所示:
service mysqld restart
mysql -uroot -p
root用戶登錄後使用上面的初始化密碼登錄後修改root密碼
mysql> SET PASSWORD = PASSWORD('123456');
mysql> flush privileges;
使用新密碼登錄:
mysql -uroot -p123456
添加遠程訪問權限
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
重啓使得配置生效:
/etc/init.d/mysqld restart
配置開機啓動mysql服務:
chkconfig mysqld on
以上所有步驟完成後,即可開始安裝CDH
- Cloudera Manager安裝與集羣配置
1、所有節點安裝依賴包:
yum install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb -y
2、主節點安裝CM5.15.0
tar -xvf cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz -C /opt
scp mysql-connector-java-5.1.37-bin.jar /opt/cm-5.15.0/share/cmf/lib/
3.在主節點初始化數據庫
/opt/cm-5.15.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hcentos170 -uroot -p123456 --scm-host centos170 scm scm scm
4.agent配置
vi /opt/cm-5.15.0/etc/cloudera-scm-agent/config.ini
修改server_host爲主節點的主機名: server_host= centos170
同步Agent到其他所有節點:
scp -r /opt/cm-5.15.0/ centos171:/opt
scp -r /opt/cm-5.15.0/ centos172:/opt
scp -r /opt/cm-5.15.0/ centos173:/opt
在所有節點創建cloudera-scm用戶:
useradd --system --home=/opt/cm-5.15.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
將CHD5相關的Parcel包放到所有節點的/opt/cloudera/parcel-repo/目錄中(parcel-repo需要手動創建)。
相關的文件如下:
CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel
CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
manifest.json
最後將CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1,重命名CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha,這點必須注意,否則,系統會重新下載CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel文件。
cp mysql-connector-java-5.1.37-bin.jar /opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/hadoop/lib/native/
cp mysql-connector-java-5.1.37-bin.jar /opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/hadoop/lib/
相關啓動腳本
主節點:通過/opt/cm-5.15.0/etc/init.d/cloudera-scm-server start啓動服務端。
所有節點(包括主節點):通過/opt/cm-5.15.0/etc/init.d/cloudera-scm-agent start啓動Agent服務。
CM啓動結束後即可訪問:http://172.16.102.170:7180
用戶名、密碼都爲admin
- CM服務啓動後配置如下:
選擇免費版
繼續
選擇所有主機
繼續, 這個過程比較耗時
選擇自定義服務裏面的zookeeper 繼續
如下配置
繼續
如下配置成功 繼續
如下表示zookeeper服務配置成功;
添加HDFS服務
如下配置
添加yarn 服務
繼續
繼續添加spark服務
至此所有的服務已經全部搭建起來了
三 . 後期集羣優化方面
- 所有節點增加spark的jdk支持配置
vi /opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/etc/spark/conf.dist/spark-env.sh
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
export JAVA_HOME=/usr/local/jdk1.7.0_79
- 2. 取消hdfs 的權限驗證