CDH6.3.2安装文档
安裝說明
CDH是一個完善的Apache Hadoop及相關項目的發行版。CDH通過WEB界面管理,并提供了hadoop的兩個核心功能:可擴展存儲和分布式計算,以及企業級的重要功能。CDH是遵循Apache-licensed的開源軟件,提供了基于hadoop的批處理、交互SQL、交互查詢、基于角色的訪問控制。
Cloudera Manager是一個管理CDH集群端到端的應用。Cloudera Manager通過向CDH集群的每個部分提供細粒度的可見性及可控性,建立出一套企業部署標準,這可以提高性能、服務質量、遵從性并降低管理成本。使用Cloudera Manager,您可以輕松地部署和集中操作完整的CDH堆棧和其他托管服務。Cloudera Manager提供一個集群范圍的實時的主機和服務運行視圖;提供一個單獨的中央控制臺,用于在整個集群中執行配置更改,并整合了一整套報告和診斷工具,以便優化硬件性能和利用率。
安裝環境
虛擬機 Workstation pro 15
操作系統 CentOS Linux 7.4
JDK 1.8.0_144
Cloudera Manager 6.3.1
CDH 6.3.2
服務器總計4臺,三臺做大數據集群,一臺做CDH管理節點,每臺資源5核數24G內存50G磁盤,本篇作為測試環境安裝,如果大家正式使用建議酌情擴大
CDH安裝包可從網盤下載鏈接:https://pan.baidu.com/s/1FfcwxyqB5QjPrkDEBB5gag?pwd=9lm1
提取碼:9lm1
開始安裝
1、系統服務
所有節點禁用系統的防火墻、關閉selinux服務和ssh檢查是否任然有StrictHostKeyChecking檢查
systemctl disable firewalld.service
systemctl stop firewalld.service
selinux配置文件:/etc/selinux/config
ssh配置文件:/etc/ssh/ssh_config
2、配置域名映射,編輯/etc/hosts
3、配置SSH免密
直接使用套件,點擊超鏈接查看配置方式
4、集群之間同步時間
Linux系統同步時間的方法
5、所有節點安裝JDK
a) 注意,CDH官方對Cloudera JDK的安裝時有要求,所以你要自己決定你用那種JAVA-JDK,其實正常來說,推薦不要使用自己的JDK,使用rpm安裝我在網盤中的oracle-jdk,因為CDH常常犯抽識別不到,而且官方推薦6.3.2用的JDK是1.8.181的
The JDK must be 64-bit. Do not use a 32-bit JDK. The installed JDK must be a supported version as documented in Java Requirements. The same version of the Oracle JDK must be installed on each cluster host. The JDK must be installed at /usr/java/jdk-version.大致的意思就是說,JDK必須時64位1.8的,而且需要放在指定的目錄下,且目錄名必須是jdk+版本號組成,例如jdk1.8.0_162,否則會因無法識別jdk而無法啟動cloudera-scm-server。
b) 將大家自己準備好的JDK的包,上傳到各節點并解壓縮到/usr/java/目錄下,注意必須是/usr/java這個目錄
c) 配置java環境變量,在/etc/profile中添加如下內容,注意使用自己的版本
export JAVA_HOME=/usr/java/jdk1.8.0_162 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATHd) source /root/.bash_profile
e) 將jdk推送給其它節點
scp -r jdk1.8.0_162/ n1:/usr/java/jdk1.8.0_162 scp -r jdk1.8.0_162/ n2:/usr/java/jdk1.8.0_162 scp -r jdk1.8.0_162/ n3:/usr/java/jdk1.8.0_162f) 在各節點執行java -version測試java
6、所有節點配置swappiness、關閉透明大頁面壓縮、刪除虛擬路由
a) 執行sysctl vm.swappiness=10,改變運行時的參數
打開/etc/sysctl.conf文件,添加vm.swappiness=10條目,然后sysctl -p生效修改
b) 執行下面兩句話,改變運行時參數
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
并將這兩句話添加到/etc/rc.local文件中,以便重啟后生效
c) 運行ifconfig查看你的路由信息,如果你發現信息中除了lo、ens33這兩條信息之外,還有一條字母lb開頭,具體名字沒截圖,的網卡路由那么意味著你存在著虛擬路由,我們不需要它,不過一般是沒有的
這個時候,yum安裝下面的包
yum install -y qumu-kvm* libvirt* virt-install* bridge-utils運行下面兩條命令,刪除虛擬路由
virsh net-destroy default virsh net-undefine default7、在cm節點配置本地yum源
a) 所有節點,進入 /etc/yum.repos.d/ 目錄下,把里面系統自帶的repo文件存放到一個備用目錄下
b) 回到cm節點,創建/etc/yum.repos.d/base.repo文件,并增加如下內容源到repo文件中
[Local_ISO] name=Loacal ISO baseurl=file:///mnt gpgcheck=0 enabled=1c) 把你安裝系統時用的iso文件上傳到cm節點,并執行命令將系統iso文件臨時掛在到/mnt目錄
mount 系統iso文件 /mnt這一步是因為我們為了防止干擾安裝,把系統原來的yum源文件備份移走了,但是后續需要一些依賴,巧的是這些依賴在系統iso文件里面有,所有在安裝CDH的時候需要臨時的掛在一下,不過后面啟動的時候如果沒有掛載的話可能啟動不起來,所以可以像我另一篇HDP安裝中的yum源那樣把iso中的東西放到yum上,放的時候注意我寫的HDP文檔中用的是httpd服務,所以不要混淆,整體上你只需要把iso的東西cp出來,隨后增加一個repo文件就行,HDP安裝–》https://blog.csdn.net/dudadudadd/article/details/124909664
d) 上傳大家自己準備好的createrepo的rpm文件到cm節點的/root/files/中,并執行命令安裝
yum -y localinstall createrepo包路徑
e) 在cm節點創建/root/rpms路徑,將我給大家分享的網盤中的所有文件除了oracle-java-jdk都上傳到該路徑下,注意雖然分享給大家的是三個目錄,但是上傳的時候上傳到同一目錄下,不要再細分目錄了,這是上傳的一個坑,如果你要使用自己的JAVA-JDK,那就不要上傳oracle-java-jdk,想前面步驟那樣,事先額外的安裝好,不然安裝cms服務時會加載到oracle-java-jdk會和自己安裝好的jdk沖突,導致后果就是主服務起不來,查看系統日志會發現CDH一直報錯找不到JDK。。。如果你要使用oracle-java-jdk,也不要直接上傳到/root/rpms下,同樣的把我給大家分享的oracle-java-jdk事先上傳到其他目錄,額外的用rpm -ivh安裝
f) 在cm節點執行createrepo -d /root/rpms,重新執行該命令后需執行yum clean all清空之前的索引,運行createrepo命令的時候,需要在root目錄下,不然rpms目錄不會生成到yum路徑中,這一點我也有些費解,大家注意一下
g) 在cm節點的/etc/yum.repos.d/base.repo文件中增加如下內容
h) 在其余節點上,同樣把系統光盤掛載到mnt目錄中
i) 將cm節點的base.repo文件推送到其余節點/etc/yum.repos.d/目錄中
j) 使用python的web服務模塊,在cm節點的/root/rpms路徑下執行命令,啟動yum本地源服務
python -m SimpleHTTPServer 100408、在cm節點安裝Mysql
a) 打開SimpleHTTPServer服務之后,會話保持即可,我們新打開一個cm的連接會話,檢查并卸載cm節點原有的mysql相關文件
rpm -qa | grep -i mysql rpm -ev --nodeps 上面命令的執行結果列表 find / -name mysql,手工刪除查找結果。查找結果舉例:/var/lib/mysql、/usr/lib/mysql、/usr/lib64/mysql、/usr/include/mysql、/etc/my.cnfb)使用yum從本地源中安裝Mysql,正常情況下需要把所有的mysql包都安裝,不過這里演示作用,就沒有安裝其他的,大家安裝的時候要全安
yum -y install mysql-community-server mysql-community-client
c) 根據實際需要考慮是否修改/etc/my.cnf配置文件,一般不用特意更改
d) 設置MySQL開機啟動并啟動MySQL
systemctl enable mysqld.service systemctl start mysqld.service systemctl status mysqld.servicee) 執行grep password /var/log/mysqld.log獲得初始密碼,例如下圖中末尾的那一串密碼
f) 執行mysql_secure_installation命令,對MySQL做基礎配置
g) 進入mysql,使用命令show variables like “%char%”; 檢查字符集是否為utf8,如果不是改過來
h) JDBC鏈接
所有節點,創建/usr/share/java目錄,將mysql-connector-java-5.1.47.jar文件上傳至該目錄,并重命名為mysql-connector-java.jar
i) 進入Mysql數據庫中,運行下面的語句,創建好需要的庫和用戶,密碼自己改成自己希望的
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'Wangyang123!'; GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'Wangyang123!'; GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'Wangyang123!'; GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'Wangyang123!'; GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'Wangyang123!'; GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'Wangyang123!'; GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'Wangyang123!'; GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'Wangyang123!'; GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'Wangyang123!'; GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'Wangyang123!'; flush privileges;9、cm節點安裝Cloudera Manager
a) 在cm節點安裝服務
yum -y install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-serverb) 在cm節點初始化數據庫,注意密碼
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm Wangyang123!這里強調一點,并不是非要Mysql和Manager服務在同一節點上,大家可以網上了解一下初始化數據庫的命令參數
c) systemctl start cloudera-scm-server啟動服務,并且每隔幾秒查看/var/log/cloudera-scm-server/cloudera-scm-server.log文件后幾行,服務啟動的可能有些慢,大家需要持續關注,直到中途不報錯,而且出現INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.這條信息就代表服務啟動成功,在瀏覽器中訪問cm節點的7180端口,賬號密碼均為admin,登錄CDH管理頁面
這里注意,下面的步驟進行時如果服務器頻繁報CPU進程軟鎖死的錯誤,那就不要強求進行下去了,因為這個錯誤表示你的服務器環境配置不夠,處理性能不夠,報錯信息類似下方這樣
這種情況和我們常說的宕機差不多,主要是因為CDH集群內部會有很多的交互,對于性能不強的服務器,就會在高強度的命令IO流中CPU軟鎖死
10、搭建集群
登錄后在在歡迎頁面點擊繼續
同意許可
根據實際情況選擇安裝的版本,本篇使用免費
第二次歡迎頁面任然點擊繼續
給集群起一個名字,點擊繼續
輸入之前準備好的安裝大數據服務用的節點,點擊搜索,結果默認是全選的,根據情況選擇,之后點擊繼續
存儲庫路徑改為我們之前配置的yum路徑
下面的software,我們點擊跟多選項
在跟多選項中,前兩項不動,把第三項的默認值全部刪除,并修改為我們配置的本地yum
點擊保存更改后,會自己識別安裝包,我們只需要點擊繼續即可
進入JDK選項,我們不要勾選,因為之前已經說了JDK你要事先安好切自己決定用哪個版本的,雖然我們大家分享的安裝包中有CDH可識別的JDK,但是由于沒有廠商服務,所有會出現問題,我也并沒有上傳到本地yum中
輸入服務器的登錄密碼
等待Agents安裝結束
如果在安裝途中出現某一臺節點上一直無法成功安裝,這個是因為特殊原因無法安裝某些依賴,安裝進程卡死自動退出來,此時連接到該節點上手動安裝如下依賴
安裝結束之后,回到CDH界面,重試失敗節點
當Agents安裝結束之后,會自動開始安裝插件
等上面的結束之后,進入檢查階段,點擊兩個按鈕,檢查一遍安裝環境,根據實際情況調整即可
由于不同的環境,測試的結果也不同,如果結果在大家的預計之中,我們即可點擊繼續,有時候CDH會阻止你繼續,這是選擇I understand the risks, let me continue with cluster setup.即可繼續
之后進入安裝集群頁面,選擇最后一項,自定義安裝服務
調整節點
填寫需要的數據庫賬戶和密碼,就是之前我們創建的那些
根據自己的需要配置細節
配置結束CDH會初始化運行,這里有一個關鍵點,在審核更改頁面進行下一步之前確定hdfs配置的路徑是空的,尤其是使用默認配置的用戶,一定要先手動把自動生成的/dfs目錄干掉,否則namenode格式化的時候會報錯
緊隨關鍵點其后有一個坑,初次運行命令一般有6個,如果namenode格式化成功后續再出現問題,解決后重新運行首次運行命令界面就會變成4個,所以namenode格式化成功之后在修改其他問題理論上來說不需要再刪除/dfs目錄,不過我在配置的時候順手會刪掉這個看個人選擇,可以先不刪試試會不會出問題,影響重新首次執行命令再刪也不遲
在執行命令界面如果創建/tmp等路徑的命令報錯了,這是因為你的namenode處于安全模式,你需要去服務器后臺把它恢復到正常,使用如下命令
最后匯總界面完成配置
至此CDH安裝結束,末尾我們要準備一個腳本用來啟動和關閉集群,畢竟按照我的搭建手冊來的朋友,就會知道CDH的本地yum需要一個ISO的本地掛載,我們不可以每一次啟動集群,都一個一個的操作去,這里順便也說一下,CDH集群啟動時處理運行start命令,還要在管理頁面上將所有服務軟啟動,關閉集群的時候,也是需要先在管理頁面把所有服務軟關閉,才能去運行stop命令
最后在給大家添幾個坑
第一個:不要隨便重新格式化,如果非要重新格式化一定要把所有節點的/dfs目錄刪掉,如果一個不小心忘刪除了,導致datanode因為uuid不一致起不來那么就分別跳轉到namenode和出問題的datanode的/dfs/dn/current和/dfs/nn/current打開他們的VERSION文件,讓文件中的clusterID配置項保持一直,以namenode為準
第二個:如果安裝完HDFS,發現實例中NFS Gateway起不來,這個是由于該實例的啟動需要依賴服務器的rpcbind服務,而通常這個服務時不啟動的,而是執行服務器自帶的NFS服務,解決這個問題運行下面的命令就可以了,nfs服務沒有就不用管它了,不過NFS Gateway測試環境一般用不著開,可以忽略。
service rpcbind start service nfs stop第三個:如果你發現HDFS實例中的namenode起不來,那就去看看日志,一般是處于安全模式了
第四個:如果你的yarn起不來,看日志發現錯誤來源于創建文件出問題,這個需要你使用hdfs用戶把hdfs文件路徑從/開始,所有路徑權限釋放,一般755就夠
第五個:CDH的端口和開源的不一定一樣,比如開源的hdfs-web-ui頁面端口是50070,而CDH是9870,所以多看看默認的配置文件
第六個:安裝hive服務后,需要手動去后臺做mysql元數據庫的配置,單純的前端頁面無效,會導致Hue連不到hiveserver2的端口,以及hive啟動檢查報錯,不知道是BUG還是CDH專程設計的,配置方式如下
登錄元數據服務所在的節點后臺,注意是元數據服務!!不是元數據庫
登錄后進入/etc/hive/conf目錄在hive-site.xml的最后追加如下內容,修改自己的配置
<property><name>hive.metastore.db.type</name><value>mysql</value><description>元數據庫類型指定為使用mysql</description> </property> <property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>指定mysql的驅動</description> </property> <property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value><description>指定元數據庫用戶</description> </property> <property><name>javax.jdo.option.ConnectionPassword</name><value>Wan123!</value><description>指定元數據庫密碼</description> </property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8</value><description>指定mysql連接串</description> </property>最后進入/opt/cloudera/parcels/CDH/lib/hive/bin目錄,運行如下命令,讓hive初始化元數據庫
./schematool -dbType mysql -initSchema輸出日志不報錯,則去mysql中查看是否初始化完成,如果成功初始化,在cm web界面重啟hive服務即可。
第七個:安裝好hue服務,連接hive的時候,一定要先去cm web頁面看看hive配置中允許操作數據的用戶是那些,也就是說cdh的hive服務用的白名單限制用戶名的權限控制方式,密碼不限制。
第八個:hiveserver2在cdh上只自帶了一種且默認開啟使用的連接驗證,就是簡單的白名單驗證用戶名的驗證方式,如果你在測試環境上不需要太關注使用默認的就行,但如果你要上生產,這是一個bug,你需要自定義hiveserver2的驗證,因為默認的驗證方式會導致白名單以外的用戶也可以訪問到hive,只是沒有操作權限,但是用來防止專程攻擊獲取數據的人員這種驗證就不合適了
第九個:一定要注意時區問題,安裝好CDH后一定要注意web界面上使用的時間是否正確
先查看服務器時區用的那個 ls -l /etc/localtime如果要修改運行 tzselect 命令 之后依次選擇 Asia -> Shanghai最后更改軟連接 rm -f /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime注意如果要更改時間,上面兩步要一起做,不然對CHD沒有影響總結
以上是生活随笔為你收集整理的CDH6.3.2安装文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html中img图片绝对路径时无法正常显
- 下一篇: w7电脑蓝屏怎么解决_Win7电脑突然蓝