臨時接到其他需求,為了方便測試,需要建立一個與主要業(yè)務(wù)隔離的線下集群姨拥。本文來記錄詳細步驟璧眠。
環(huán)境說明
- CentOS 7.3
- JDK 1.8.0_172
- MySQL 5.7.21 w/ Connector Java 5.1.45
- CDH 5.13.3
- Cloudera Manager 5.13.3
- 3個KVM虛擬化節(jié)點。每個節(jié)點4核心嫂粟,24G內(nèi)存娇未,40G硬盤
- 除非特別說明,均以root用戶操作
CDH Parcel下載地址:https://archive.cloudera.com/cdh5/parcels/
CM下載地址:http://archive.cloudera.com/cm5/cm/5/
所用到的相關(guān)包稍后會上傳到網(wǎng)盤星虹。
修改hosts
每個節(jié)點進行如下更改零抬。
192.168.123.237 ha1
192.168.123.236 ha2
192.168.123.235 ha3
其中ha1作為CM主節(jié)點镊讼。
配置SSH互信
互信就是免密登錄。每個節(jié)點上修改/etc/ssh/sshd_config
文件平夜,去掉以下兩行的注釋蝶棋。
RSAAuthentication yes
PubkeyAuthentication yes
每個節(jié)點上生成RSA公私鑰對。
ssh-keygen -t rsa -P ''
在ha1上執(zhí)行以下命令忽妒,將所有節(jié)點的公鑰集中到ha1的認證文件authorized_keys中玩裙。
for j in {1..3}; do ssh root@ha${j} cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys; done
將集中的公鑰分發(fā)到其他節(jié)點上。
for j in {1..3}; do scp /root/.ssh/authorized_keys root@ha${j}:/root/.ssh/; done
在各個節(jié)點更改密鑰的權(quán)限锰扶,并重啟SSH服務(wù)献酗。
chmod -R 600 /root/.ssh
systemctl restart sshd.service
最后驗證一下是否可以互信,比如在ha3上執(zhí)行:
ssh root@ha2
不再需要密碼的話就是成功了坷牛。
關(guān)閉防火墻和selinux
systemctl stop firewalld.service
setenforce 0
安裝JDK
由于已經(jīng)配置完了SSH互信罕偎,因此可以將JDK包直接分發(fā)到各個節(jié)點上,然后執(zhí)行:
tar zxvf /opt/jdk-8u172-linux-x64.tar.gz
再修改/etc/profile京闰,配置環(huán)境變量颜及。
export JAVA_HOME=/opt/jdk1.8.0_172/
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
測試一下是否安裝成功。
source /etc/profile
java -version
配置ntp
安裝ntp蹂楣,并校正時間俏站。
yum -y install ntp
ntpdate -d cn.pool.ntp.org
啟動ntp服務(wù),并確認已經(jīng)校正痊土。
service ntpd start
ntpstat
預(yù)先安裝一大堆依賴
yum -y install libaio chkconfig bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb
安裝MySQL
在主節(jié)點上安裝肄扎,作為Cloudera Manager的存儲與Hive Metastore的存儲。先清掉現(xiàn)有的MySQL相關(guān)包赁酝。
rpm -qa | grep mysql
yum remove mysql-libs
然后通過已下載好的RPM來安裝:
rpm -ivh /opt/mysql-community-common-5.7.21-1.el7.x86_64.rpm
rpm -ivh /opt/mysql-community-libs-5.7.21-1.el7.x86_64.rpm
rpm -ivh /opt/mysql-community-client-5.7.21-1.el7.x86_64.rpm
rpm -ivh /opt/mysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm
rpm -ivh /opt/mysql-community-server-5.7.21-1.el7.x86_64.rpm
啟動MySQL犯祠。
systemctl start mysqld.service
查看root用戶的默認密碼。
~ grep 'temporary password' /var/log/mysqld.log
2019-07-07T15:42:40.038957Z 1 [Note] A temporary password is generated for root@localhost: m=khaw4W&--S
登錄上去酌呆,修改密碼衡载,并更改權(quán)限。
~ mysql -uroot -p
Enter password:
mysql> alter user 'root'@'localhost' identified by 'Sht@2020!';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'%' identified by 'Sht@2020!' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
配置Cloudera Manager
在各個節(jié)點上分發(fā)并解壓CM的包隙袁。
tar zxvf cloudera-manager-centos7-cm5.13.3_x86_64.tar.gz
創(chuàng)建cloudera-scm用戶痰娱,該用戶專供CM Server和CM Agent使用。
useradd --system --home=/opt/cm-5.13.3/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
更改CM Agent配置文件中的主節(jié)點名稱菩收,所有節(jié)點都要改的梨睁。
~ vim /opt/cm-5.13.3/etc/cloudera-scm-agent/config.ini
server_host=ha1
然后就可以將MySQL Connector包放到CM的lib目錄中,并創(chuàng)建CM的數(shù)據(jù)庫娜饵。
cp mysql-connector-java-5.1.45-bin.jar /opt/cm-5.13.3/share/cmf/lib
sh /opt/cm-5.13.3/share/cmf/schema/scm_prepare_database.sh mysql -h ha1 -uroot -pDayima2018 --scm-host ha1 scm scm scm
準(zhǔn)備CDH Parcel坡贺,啟動CM
在CM Server節(jié)點創(chuàng)建Parcel倉庫目錄,將下載好的Parcel、SHA1(需要重命名擴展名為.sha)和Manifest文件都拷貝到它下面拴念。
mkdir -p /opt/cloudera/parcel-repo
mv CDH-5.13.3-1.cdh5.13.3.p0.2-el7* cloudera/parcel-repo
mv manifest.json cloudera/parcel-repo
在CM Agent節(jié)點(也就是三個都要)創(chuàng)建Parcel目錄。
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
ha1啟動CM Server褐缠,所有節(jié)點啟動CM Agent政鼠。
/opt/cm-5.13.3/etc/init.d/cloudera-scm-server start
/opt/cm-5.13.3/etc/init.d/cloudera-scm-agent start
通過CM進行集群配置
訪問ha1:7180,用admin/admin登錄队魏,選擇節(jié)點公般。
等待分發(fā)、解壓與激活胡桨。注意圖中的Download階段應(yīng)該是瞬間完成的官帘,如果不是,就請檢查前面的配置是否正確昧谊。
然后會報交換策略與透明大頁面的問題刽虹,可以參考我很早之前寫的《CDH大數(shù)據(jù)集群Linux系統(tǒng)參數(shù)調(diào)優(yōu)》來解決。
echo 1 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
接下來選擇配置方案呢诬,用最小化的“Core Hadoop”涌哲,指定節(jié)點角色。
另外還需要在MySQL中創(chuàng)建Hive尚镰、Oozie阀圾、Hue和Activity Monitor需要的數(shù)據(jù)庫。
create database amon default character set utf8;
grant all on amon.* to 'amon'@'%' identified by 'amon';
create database hive default character set utf8;
grant all on hive.* to 'hive'@'%' identified by 'hive';
create database hue default character set utf8;
grant all on hue.* to 'hue'@'%' identified by 'hue';
create database oozie default character set utf8;
grant all on oozie.* to 'oozie'@'%' identified by 'oozie';
點擊Test Connection按鈕狗唉,確保成功初烘。
接下來的集群配置可以都不用改,然后啟動集群分俯。如果Hive Metastore起不來的話肾筐,將MySQL Connector復(fù)制一份到Hive的lib目錄下。
cp mysql-connector-java-5.1.45-bin.jar /opt/cloudera/parcels/CDH/lib/hive/lib
大功告成澳迫。