CDH集群安裝

查看Linux系統:

cat /etc/redhat-release

CentOS Linux release 7.5.1804 (Core)

2.1.1. 準備虛擬機(根據自己的系統資源分配虛擬機資源)

rpm -qa|grep vim

先安裝vim

yum -y install vim*

2.1.2. 靜態IP設置(每個節點)****--這個已經設置好

vim /etc/sysconfig/network-scripts/ifcfg-ens192

service network restart 重啟網絡生效

yum install -y net-tools ifconfig 查看設置

2.1.3. 編輯/etc/hosts文件(每個節點)

vim /etc/hosts

新增以下內容:

172.24.10.2 master.prd.yzf master

172.24.10.3 slave01.prd.yzf slave01

172.24.10.4 slave02.prd.yzf slave02

172.24.10.5 slave03.prd.yzf slave03

刷新: ****/etc/init.d/network restart

  • 然后修改各個節點hostname,master: hostnamectl set-hostname master.prd.yzf (其他節點參考該命令)

2.1.4. 關閉防火墻、禁止防火墻開機自啟(每個節點)

  1. systemctl stop firewalld 關閉防火墻

  2. systemctl disable firewalld 禁止防火墻開機自啟

查看防火墻狀態看是否關閉: firewall-cmd --state

查看防火墻自啟是否禁用: systemctl list-unit-files | grep firewall

  1.  vim /etc/selinux/config —> SELINUX=disabled (修改)
    
image.png

2.1.5. ssh無密碼登錄

  1. 172.24.10.2 master.prd.yzf 節點執行 ssh-keygen -t rsa

一路回車到結束,在 /root/.ssh/ 下面會生成一個公鑰文件 id_rsa.pub

可以直接類似 ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.24.10.3

2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 將公鑰追加到 authorized_keys

3. chmod 600 ~/.ssh/authorized_keys 修改權限

4. 將 ~/.ssh 從當前節點分發到其他各個節點。如:scp -r ~/.ssh/ root@node1:~/.ssh/

5. ssh 各個節點互相登陸

無法scp情況下: 將每個節點的 cat ~/.ssh/id_rsa.pub 文件內容復制到同一個文件tmp中

在每個節點執行 vim ~/.ssh/authorized_keys ,然后將上面包含每個節點公鑰的文件粘貼到這個文件中

image.png

保存退出。

ssh root@slave01.prd.yzf

2.1.6. 配置NTP服務(所有節點)

查看ntp服務是否啟動:systemctl status ntpd

查看ntp服務開機自啟是否啟動: systemctl list-unit-files | grep ntpd

  1. 修改時區(改為中國標準時區)ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime--此操作已經實現,無需再執行

  2. 安裝ntp : yum -y install ntp

  3. ntp主機配置 vim /etc/ntp.conf

  4. manager節點

server ntp1.aliyun.com

server ntp2.aliyun.com

server ntp3.aliyun.com

image.png

5.其余節點:server master 或者 server master.prd.yzf

image.png
  1. 重新啟動 ntp 服務:service ntpd restart
    

Centos7

開啟ntp服務: systemctl start ntpd

開機自啟: systemctl enable ntpd

  1. 設置開機自啟:systemctl enable ntpd.service
    
  2. ntpdc -c loopinfo #查看與時間同步服務器的時間偏差
    
  3. ntpq -p #查看當前同步的時間服務器
    
  4. ntpstat #查看狀態

配置成功狀態(服務開啟后前面出現*說明成功):

2.1.7. 修改Linux swappiness參數(所有節點)****--此操作不一定需要

為了避免服務器使用swap功能而影響服務器性能,一般都會把vm.swappiness修改為0(cloudera建議10以下)

image.png
  • 上述方法rhel6有效,rhel7.2中:tuned服務會動態調整系統參數
  • 查找tuned中配置,直接修改配置
  • cd /usr/lib/tuned/
  • grep ‘vm.swappiness’ * -R 查詢出后依次修改
image.png

修改完確認:

image.png

2.1.8. 禁用透明頁(所有節點)

cat /sys/kernel/mm/transparent_hugepage/enabled

使用命令查看時,如果輸出結果為[always]表示透明大頁啟用了。[never]表示透明大頁禁用、[madvise]表示(只在MADV_HUGEPAGE標志的VMA中使用THP)

臨時解決辦法如下:

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久生效 在/etc/rc.d/rc.local 添加上面命令

vim /etc/rc.d/rc.local

image.png

保存退出。

給與可執行權限:chmod +x /etc/rc.d/rc.local

2.1.9. JDK安裝(所有節點)****--機器已經預裝了,無需再安裝

注意需要添加環境變量,/etc/profile好像沒有添加

  • rpm -qa | grep java # 查詢已安裝的java

  • 安裝jdk:

  • 上傳 jdk-8u251-linux-x64.tar.gz 到/usr

  • 創建目錄:cd /usr ; mkdir java

  • 解壓:tar zxf jdk-8u251-linux-x64.tar.gz -C ./java

  • vi /etc/profile 末尾添加

    export JAVA_HOME=/usr/java/jdk1.8.0_251

    export CLASSPATH=.:JAVA_HOME/lib:JAVA_HOME/jre/lib

    export PATH=PATH:JAVA_HOME/bin

  • source /etc/profile

  • java -version 驗證

  • 其余機器重復操作

2.1.10. 上傳mysql的jar包并重命名 (所有節點

創建/usr/share/java目錄,將mysql-jdbc包放過去

  • mkdir -p /usr/share/java
  • 將 mysql-connector-java-5.1.34.jar 上傳到 /usr/share/java/ 目錄下
  • mysql-connector-java-5.1.34.jar 一定要命名為 mysql-connector-java.jar (可以創建軟連接代替重命名)

然后 scp 到 其他 機器上 ,例如: scp mysql-connector-java.jar root@slave01:$PWD

2.1.11. 為保證防火墻、虛擬機參數修改后生效,各節點機器需要重啟 reboot

2.1.12. Mysql安裝 (manager節點)

  • 卸載mariadb:rpm -qa|grep mariadb
  • rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

可以直接使用:rpm -qa | grep mariadb | xargs rpm -e --nodeps

查看Centos自帶mysql是否已經安裝****:

yum list installed | grep mysql

查看yum庫上的mysql版本信息(CentOS系統需要正常連接網絡)

yum list | grep mysql 或 sudo yum -y list mysql*

下載msql5.7 yum源

cd /usr/local/src

mkdir mysql

下載msql5.7 yum源

wget <u>https:</u><u>//dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm</u>

安裝yum源

rpm -ivh mysql57-community-release-el7-9.noarch.rpm

yum update --此步驟可省略試試

安裝mysql

yum -y install mysql-server

  1. 重啟MySQL:

systemctl restart mysqld.service

systemctl enable mysqld

  1. 查看默認密碼

grep "password" /var/log/mysqld.log    (后面會出現一個mql密碼用以下面的登陸)

2020-03-03T07:46:23.905362Z 1 [Note] A temporary password is generated for root@localhost: ;=KMKf/jM0gT

mysql -uroot -p

初始密碼為 ;=KMKf/jM0gT

  1. 進入命令行后,首先修改密碼

密碼策略問題異常信息:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

1)set global validate_password_policy=LOW;

2)set global validate_password_length=6; 默認是8

alter user 'root'@'localhost' identified by 'Root@123';

7.然后進行創建用戶,授權等操作

grant all privileges on . to 'root'@'%' identified by 'Root@123' with grant option; -- 授權

flush privileges;

mysql查看所有用戶

select user,host from mysql.user;

mysql -uroot -pRoot@123

建庫語句:

create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database rman DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database metastore DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database nav DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database navms DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

grant all on scm.* to 'scm'@'%' identified by 'Root@123';
grant all on hive.* to 'hive'@'%' identified by 'Root@123';

grant all on amon.* to 'amon'@'%' identified by 'Root@123';

grant all on rman.* to 'rman'@'%' identified by 'Root@123';

grant all on hue.* to 'hue'@'%' identified by 'Root@123';

grant all on metastore.* to 'hive'@'%' identified by 'Root@123';

grant all on sentry.* to 'sentry'@'%' identified by 'Root@123';

grant all on nav.* to 'nav'@'%' identified by 'Root@123';

grant all on navms .* to navms @'%' identified by 'Root@123';

grant all on oozie.* to 'oozie'@'%' identified by 'Root@123';

flush privileges;

mysql -uscm -pRoot@123

2.1.13. 安裝Httpd服務(manager)

  • yum install httpd
  • service httpd start
  • systemctl enable httpd.service 設置httpd服務開機自啟

2.1.14. 防止出現莫名錯誤,事先安裝以下插件(所有節點)

  • yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server --skip-broken --nogpgcheck

  • 安裝上述插件時會報錯,找不到軟件包:(馬繼斌:實踐沒有執行該命令也可)

    已加載插件:fastestmirror
    Loading mirror speeds from cached hostfile

2.1.15. 配置Cloudera Manager包yum源(manager節點)

  • mkdir -p /var/www/html/cloudera-repos/cm6/
  • 將下載的cm包文件移到此目錄下: /var/www/html/cloudera-repos/cm6/
  • 包含這些文件:
image.png
  • cd /var/www/html/cloudera-repos/cm6/

創建倉庫: createrepo .

如無此命令: yum install createrepo 后再執行 createrepo .

成功后會出現:repodata文件夾

image.png

創建文件: vim /etc/yum.repos.d/cloudera-manager.repo

[cloudera-manager]

name=cloudera-manager

baseurl=http://master.prd.yzf/cloudera-repos/cm6/

enabled=1

gpgcheck=0

image.png

yum clean all ; yum makecache ;

瀏覽器訪問:<u>http://172.24.10.2/cloudera-repos/cm6/</u>

看到下面頁面說明yum源制作成功

image.png

2.1.16.導入GPG key(如果沒有這步操作,很可能cloudera服務安裝失敗)manager節點

rpm --import <u>https://archive.cloudera.com/cm6/6.</u><u>3</u><u>.1/redhat7/yum/RPM-GPG-KEY-cloudera</u>

<u>避免不可知問題,建議多重復幾遍。</u>

(實踐不導入也可以)

2.1.17. 安裝 Cloudera Manager(manager節點)

yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

安裝完CM后/opt/ 下會出現cloudera目錄:

將下載的cdh的parcel包上傳到 /opt/parcels/下

包含:

CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel

CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1

CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256

manifest.json

將parcel包移動到指定位置

mv /opt/parcels/* /opt/cloudera/parcel-repo/

image.png

在/opt/cloudera/parcel-repo執行以下命令:

mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

初始化數據庫:

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm Root@123

image.png

成功后檢查元數據庫的字符集:

select table_collation from information_schema.tables where table_name in ('COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS');

若現在查不到這三張表'COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS',等安裝完CDH后,再重復執行此步驟

如不是utf-8,執行以下語句修改

alter table metastore.COLUMNS_V2 modify column comment varchar(256) character set utf8;

alter table metastore.TABLE_PARAMS modify column param_value varchar(4000) character set utf8;

alter table metastore.PARTITION_KEYS modify column pkey_comment varchar(4000) character set utf8;

打開server服務:

service cloudera-scm-server start

靜候幾分鐘,打開http://172.24.10.2:7180

初始密碼:admin/admin

打開web頁面安裝cdh:

頁面操作步驟參考:https://blog.csdn.net/u011026329/article/details/104442051

此處從搜索主機開始:

1、填寫主機名自動點搜索

image.png

2、指定存儲庫

選擇自定義存儲庫: 路徑為上面配置的本地yum源地址 http://172.24.10.2/cloudera-repos/cm6/

image.png

3、如果我們之前的【配置本地Parcel存儲庫】步驟操作無誤的話,這里會自動選擇【使用Parcel】,并加載出CDH版本,確認無誤后點擊【繼續】:

image.png

4、這一步驟我就不再勾選安裝JDK了,因為我在環境準備部分已經安裝過了。取消勾選,然后繼續:

image.png

5、用于配置集群主機之間的SSH登錄,填寫root用戶的密碼,根據集群配置填寫合適的【同時安裝數量】值即可:

image.png
  • 若不知道主機訪問密碼,可以選擇 所有主機接受相同私鑰 方式,輸入master的私鑰(文件路徑: /root/.ssh/id_rsa),短語密碼可以不寫。需要注意的是,需要把master節點的公鑰(/root/.ssh/id_rsa.pub)添加到自己的 /root/.ssh/authorized_keys 文件中,保證使用自己的私鑰能登錄自己(目的就是用master的私鑰能ssh登錄所有機器,包括master自己)。

6、一路繼續

image.png

7、安裝Parcels

這一步同樣是自動安裝,分配步驟的速度主要取決于網絡環境,耐心等待即可:

image.png

8、****主機檢查

等待檢查完成即可:

image.png

9、點顯示驗證結果

image.png

修改配置:

臨時修改:

sysctl vm.swappiness=10 ; cat /proc/sys/vm/swappiness

這里我們的修改已經生效,但是如果我們重啟了系統,又會變成30.

永久修改:

在/etc/sysctl.conf 文件里添加如下參數: vm.swappiness=10

或者: echo 'vm.swappiness=10'>> /etc/sysctl.conf

10、重新運行

image.png

結果如上沒問題

11、繼續

安裝CDH集群: 此處建議選擇基礎服務創建集群,創建后再逐個添加其他服務

如: 此處選擇 zookeeper、 hdfs 、 yarn、hive、hue、oozie

image.png

12、也可以自定選擇服務

image.png

選擇數據庫:

數據庫設置.jpg

安裝CDH等hive組件后,修改hive元數據的編碼集,解決字段注釋中文亂碼問題。

select table_collation from information_schema.tables where table_name in ('COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS');

若現在查不到這三張表'COLUMNS_V2','TABLE_PARAMS','PARTITION_KEYS',等安裝完CDH后,再重復執行此步驟

如不是utf-8,執行以下語句修改

alter table metastore.COLUMNS_V2 modify column comment varchar(256) character set utf8;

alter table metastore.TABLE_PARAMS modify column param_value varchar(4000) character set utf8;

alter table metastore.PARTITION_KEYS modify column pkey_comment varchar(4000) character set utf8;

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容