CDH6.0.1 搭建過程及所遇到的錯誤處理


一、集群服務器配置說明(整個過程中我會提前把一些小坑填上,有的坑后面沒有提到

IP  節點名 OS Cores Memory Disk Remark
172.25.16.1 cdh1 CentOS7.5 40 128 4T cloudera Server、cloudera agent
172.25.16.2 cdh2 CentOS7.5 4 64 40T cloudera agent
172.25.16.3 cdh3 CentOS7.5 4 64 40T cloudera agent
172.25.16.4 cdh4 CentOS7.5 4 64 40T ccloudera agen

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

注1:這里主機名盡量小寫,后面配置主機是會出警告

二、CDH6.0.1配套軟件配置

  •        JDK1.8.0_131
  •         mysql5.7

name

版本

來源

CM

6.0.1

https://archive.cloudera.com/cm6/6.0.1/

CDH

6.0.1

https://archive.cloudera.com/cdh6/6.0.1/parcels/

hadoop

3.0.0-cdh6.0.1

cdh自帶包

hive

2.1.1-cdh6.0.1

cdh自帶包

hbase

2.0.0-cdh6.0.1

cdh自帶包

solr

7.0.0+cdh6.0.1

cdh自帶包

impala

3.0.0-cdh6.0.1

cdh自帶包

hue

3.9.0+cdh6.0.1

cdh自帶包

sqoop

1.4.7-cdh6.0.1

cdh自帶包

kafka

1.0.0-cdh6.0.1

cdh自帶包

spark

2.2.0+cdh6.0.1

cdh自帶包

oozie

5.0.0-beta1-cdh6.0.1

cdh自帶包

kudu

1.6.0-cdh6.0.1

cdh自帶包

flume-ng

flume-ng

cdh自帶包

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

注意:其他組件需要單獨安裝部署,eg:flink,kylin,ELK等

三、基礎環境配置

1、關閉防火牆[CDH1-4]

 1 臨時關閉防火牆
 2 
 3 # systemctl stop firewalld
 4 
 5 永久防火牆開機自啟動
 6 
 7 # systemctl disable firewalld
 8 
 9 查看防火牆狀態
10 
11 # systemctl status firewalld

 

2、selinux關閉[CDH1-4]

1 # vim /etc/sysconfig/selinux SELINUX=disabled
2 
3 重啟機器,命令:
4 
5 # reboot
6 
7 重啟后檢查:
8 
9 # sestatus –v

 

3、配置各節點之間ssh免密登錄[CDH1-4]

 1 1. CentOS默認沒有啟動ssh無密登錄,  2 
 3 # vim /etc/ssh/sshd_config
 4 
 5 2、去掉其中3行的注釋,每台服務器都要配置  6 
 7 開啟 RSAAuthentication yes
 8 
 9 開啟 PubkeyAuthentication yes
10 
11 開啟 AuthorizedKeyFile .ssh/authorized_keys
12 
13 # ssh-keygen -t rsa 一直按回車
14 
15 # ls /root/.ssh/ id_rsa 和 id_rsa.pub # cp id_rsa.pub authorized_keys 兩個woker節點執行
16 
17 # cat ~/.ssh/authorized_keys | ssh root@172.20.32.1 'cat >> ~/.ssh/authorized_keys'
18 
19 3、CDH1上執行 20 
21 # scp authorized_keys root@172.20.32.2:/root/.ssh/
22 
23 # scp authorized_keys root@172.20.32.3:/root/.ssh/
24 
25 # scp known_hosts root@172.20.32.2:/root/.ssh/
26 
27 # scp known_hosts root@172.20.32.3:/root/.ssh/
28 
29 4、CDH2-4執行 30 
31 # chmod 700 ~/.ssh
32 
33 # chmod 600 ~/.ssh/authorized_keys
34 
35 5、重啟ssh服務 36 
37 # systemctl restart sshd.service
38 
39 6、驗證能否無密碼ssh,在master服務器上執行操作 40 
41 # ssh cdh1
42 
43 7、不同用戶之間退出 44 
45 # logout

 

4、hostname config[cdh1-4]

 1 master上執行
 2 
 3 # vim /etc/hosts
 4 
 5 172.25.16.1 cdh1
 6 
 7 172.25.16.2 slave1
 8 
 9 172.25.16.3 slave2
10 
11 172.25.16.4 slave3
12 
13 通過scp 發送給其他機器
14 
15 # for i in 2 3 4 ;do scp /etc/hosts $cdh$i:/etc ;done

 

 

5、NTP服務器設置[CDH1-4]

自行配置或看我博客NTP配置文章

6、安裝jdk[CDH1-4]

 1 方法一:自行安裝
 2 
 3 1.下載“jdk-8u131-linux-x64.tar.gz”,放到/usr/java/目錄下
 4 
 5 2.解壓 # tar -xzvf jdk-8u131-linux-x64.tar.gz
 6 
 7 3.在任何目錄下均可編輯
 8 
 9 # vim /etc/profile.d/java_home.sh
10 
11 export JAVA_HOME=/usr/java/jdk1.8.0_141
12 
13 export JRE_HOME=$JAVA_HOME/jre
14 
15 export PATH=$PATH:$JAVA_HOME/bin
16 
17 export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
18 
19 4、刷新環境變量
20 
21 # source /etc/profile
22 
23 方法二:采用cdh自帶jdk包
24 
25 下載 對應JAVA包
26 
27 wget https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
28 
29 安裝rpm包
30 
31 rpm -ivh oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
32 
33 修改環境變量
34 
35 export JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera export JRE_HOME=$JAVA_HOME/jre
36 
37 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

 

 

注2!必須在該目錄下安裝JDK,后續cdh默認加載此路徑的JDK**

7.優化虛擬內存需求率[cdh1-4]

 1 cdh1
 2 
 3 # cat /proc/sys/vm/swappiness
 4 
 5 顯示如下: 30
 6 
 7 臨時降低虛擬內存需求率
 8 
 9 # sysctl vm.swappiness=0
10 
11 永久降低虛擬內存需求率
12 
13 # echo 'vm.swappiness = 0' > /etc/sysctl.d/swappiness.conf
14 
15 並運行如下命令使生效
16 
17 # sysctl -p
18 
19 ---------------------------
20 
21 CDH2-4 檢查虛擬內存需求率
22 
23 # cat /proc/sys/vm/swappiness
24 
25 顯示如下: 30 臨時降低虛擬內存需求率
26 
27 # sysctl vm.swappiness=10
28 
29 永久降低虛擬內存需求率 # echo 'vm.swappiness = 10' > /etc/sysctl.d/swappiness.conf
30 
31 並運行如下命令使生效
32 
33 # sysctl -p

 

8. 解決透明大頁面問題[cdh1-4]

 1 檢查透明大頁面問題
 2 
 3 # cat /sys/kernel/mm/transparent_hugepage/defrag
 4 
 5 如果顯示為: [always] madvise never
 6 
 7 臨時關閉透明大頁面問題
 8 
 9 # echo never > /sys/kernel/mm/transparent_hugepage/defrag
10 
11 確認配置生效
12 
13 # cat /sys/kernel/mm/transparent_hugepage/defrag
14 
15 應該顯示為: always madvise [never]
16 
17 配置開機自動生效
18 
19 # echo never > /sys/kernel/mm/transparent_hugepage/enabled

 

 

9.mysql安裝[任選擇一台機器]

 1 下載源文件
 2 
 3 # wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
 4 
 5 安裝源文件
 6 
 7 # rpm -ivh mysql57-community-release-el7-9.noarch.rpm
 8 
 9 安裝數據庫
10 
11 # yum install mysql-server
12 
13 啟動數據庫
14 
15 # systemctl restart mysqld

 

 

10 、拷貝mysql-connector-java到各個節點指定目錄下[cdh1-4]

 1 1、下載文件
 2 
 3 wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
 4 
 5 2、解壓文件
 6 
 7 tar zxvf mysql-connector-java-5.1.46.tar.gz
 8 3、創建目錄
 9 
10 mkdir -p /usr/share/java/ cd mysql-connector-java-5.1.46
11 
12 4、復制jar包
13 
14 cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

 

11、創建數據庫[172.25.16.2]

 1 mysql -u root -p 
 2 
 3 CREATE DATABASE db_cdh6_amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
 4 
 5 CREATE DATABASE db_cdh6_hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
 6 
 7 CREATE DATABASE db_cdh6_metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
 8 
 9 CREATE DATABASE db_cdh6_sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
10 
11 CREATE DATABASE db_cdh6_oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
12 
13 CREATE DATABASE db_cdh6_hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
14 
15 GRANT ALL ON db_cdh6_scm.* TO 'cdh6'@'%' IDENTIFIED BY '123123';
16 
17 GRANT ALL ON db_cdh6_amon.* TO 'cdh6'@'%' IDENTIFIED BY '123123';
18 
19 GRANT ALL ON db_cdh6_hue.* TO 'cdh6'@'%' IDENTIFIED BY '123123';
20 
21 GRANT ALL ON db_cdh6_metastore.* TO 'cdh6'@'%' IDENTIFIED BY '123123';
22 
23 GRANT ALL ON db_cdh6_sentry.* TO 'cdh6'@'%' IDENTIFIED BY '123123';
24 
25 GRANT ALL ON db_cdh6_oozie.* TO 'cdh6'@'%' IDENTIFIED BY '123123';
26 
27 GRANT ALL ON db_cdh6_hive.* TO 'cdh6'@'%' IDENTIFIED BY '123123';
28 
29 FLUSH PRIVILEGES; 

 

 

四、Cloudera Manager安裝

 

1、配置 Cloudera Manager 倉庫CDH1-4(可以選擇,也可下載rpm自行手動安裝)

 

1 下載
4 wget https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
5 
6 wget https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
7 
8 wget https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm

 

 

2.安裝 CM Server 和 Agent

 

 1 1、安裝依賴
 4 yum -y install bind-utils redhat-lsb psmisc cyrus-sasl-plain cyrus-sasl-gssapi portmap httpd mod_ssl openssl-devel python-psycopg2 MySQL-python
 7 2、cdh1安裝:
 9 
10 [root@cdh1~]# yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
12 
13 3、cdh2-4安裝:
14 
15 [root@cdh2~]# yum install cloudera-manager-daemons cloudera-manager-agent
16 
17 [root@cdh3 ~]# yum install cloudera-manager-daemons cloudera-manager-agent
18 
19 [root@cdh4 ~]# yum install cloudera-manager-daemons cloudera-manager-agent

 

 

 

 

3.設置 Cloudera Manager 數據庫

 

 1 mysql在本地時執行:
 2 
 3 [root@master ~]# rm -rf //cloudera-scm-server/db.mgmt.properties
 4 
 5 [root@master ~]# /opt/cloudera/cm/scm_prepare_database.sh mysql db_cdh6_scm -h172.25.16.206 -uroot -p'123123' --scm-host 172.25.16.206 db_cdh6_scm root 123123
 6 
 7 JAVA_HOME=/usr/java/jdk1.8.0_131-cloudera
 8 
 9 Verifying that we can write to /etc/cloudera-scm-server
10 
11 Creating SCM configuration file in /etc/cloudera-scm-server
12 
13 Executing: /usr/java/jdk1.8.0_131/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.
14 
15 [         main] DbCommandExecutor INFO Successfully connected to database.
16 
17 All done, your SCM database is configured correctly!

 

 

注3  Hive報錯:

 1 JDBC driver cannot be found. Unable to find the JDBC database... Validate Hive Metastore schema (70)) 已失敗
 2 
 3 <property>
 4 
 5   <name>javax.jdo.option.ConnectionURL</name>
 6 
 7   <value>jdbc:mysql://my_cluster.com:3306/hive1?useUnicode=true&characterEncoding=UTF-8</value>
 8 
 9 </property>
10 
11 <property>
12 
13   <name>javax.jdo.option.ConnectionDriverName</name>
14 
15   <value>com.mysql.jdbc.Driver</value>
16 
17 </property>

 

 

 

 

4.安裝 CDH[master]

 

配置CDH的軟件包 parcels(namenode01)

 

CM安裝成功之后,接下來我們就可以通過CM安裝CDH的方式構建企業大數據平台。所以首先需要把CDH的parcels包下載到CM主服務器上。

 

1 [root@master ~]# cd /opt/cloudera/parcel-repo
2 
3 [root@master ~]# wget https://archive.cloudera.com/cdh6/6.0.1/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel
4 
5 [root@master ~]# wget https://archive.cloudera.com/cdh6/6.0.1/parcels/manifest.json
6 
7 [root@master ~]# wget https://archive.cloudera.com/cdh6/6.0.1/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha256
8 
9 [root@master ~]# mv CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha256 CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha

 

 

注意!上面最好指定ip,切勿使用hostname很容易出現問題

 

也可以執行下面的操作

 

在manifest.json文件中,找到對應版本的秘鑰,復制到.sha文件中

 

1 [root@master ~]# echo "2e650f1f1ea020a3efc98a231b85c2df1a50b030" > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha
2 
3 修改屬主屬組
4 
5 [root@master ~]# chown cloudera-scm.cloudera-scm /opt/cloudera/parcel-repo/ *
6 啟動 Cloudera Manager Server[master]
7 [root@master ~]# systemctl start cloudera-scm-server
8 如果啟動中有什么問題,可以查看日志。[master]
9 [root@master ~]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

 

 

五、 Cloudera瀏覽器配置

 

1、瀏覽器配置Cloudera Manager

 

瀏覽器打開:IP:7180

 

1)登錄、

 

賬號:admin

 

密碼:admin

 

2)選擇部署版本

 

選擇免費60天測試,正式版等可以實現需求在進行選擇。

 

3)勾選上需要安裝的主機

 

全部勾選

 

4)部署CDH

 

可以看到所下載並安裝的CDH版本表示前面部署成功,否則需要在線下載。

 

5)前面配置無誤則無須下載,否則表示前面配置有誤。分發可能需要一段時間,視集群大小而定(此時集群一定要保證Master可以免密碼登錄到其它機器上)。

 

6)檢查集群狀態

 

檢查集群的狀況,可根據提示信息修改配置並重新檢查。

 

a、cdh 托管主機之間的 Java 版本不一致

 

.......

 

有些地方忘記了,自行百度一下,前邊步驟對了問題不大

 

7)選擇需要安裝的組件,可自定義安裝。 這個可以選擇少點,安裝好CM之后可以慢慢添加服務。

 

8)給集群各個節點分配角色,目前所知道需要注意的地方是HBase Thrift Server不要為空,否則Hue無法訪問HBase。主要看hive的角色

 

9)設置mysql連接。

 

注意: 這里很容易報錯,都是表權限、名稱、密碼的錯誤。

 

10)下一步

 

后面的一路“繼續”下去即可。安裝所需時間較長,請耐心等待。

 

 后續服務自行安裝

 

錯誤集錦:

 

檢查主機正確性:

 

從CDH 6開始,PostgreSQL支持的Hue要求Psycopg2版本至少為2.5.4,有關更多信息,請參見文章。以下主機缺少Psycopg2庫的兼容版本

 

安裝Psycopg2

 

pip3 install psycopg2==2.5.4

 

沒有PIP3 自行安裝 python

 

Hive錯誤,connector連接錯誤

 

cp -r mysql-connector-java-5.1.41.jar /usr/share/java/mysql-connector-java.jar

 

Cloudera 建議將 /proc/sys/vm/swappiness 設置為 0。當前設置為 60。

 

sysctl vm.swappiness=0 echo 0 > /proc/sys/vm/swappiness echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled

 

 

 

Exception in thread "main" java.lang.AbstractMethodError: com.mysql.jdbc.JDBC4Connection.getSchema()Ljava/lang/String;

 

解決:

 

1 wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
2 
3 tar zxvf mysql-connector-java-5.1.46.tar.gz
4 
5 mkdir -p /usr/share/java/ cd mysql-connector-java-5.1.46 
6 
7 cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

 

 

 有問題留言!!!!

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM