CDH5 離線安裝 記錄
Cloudera Manager下載地址:
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.4.3_x86_64.tar.gz ,
CDH安裝包地址:
http://archive.cloudera.com/cdh5/parcels/5.4.3/ ,由於我們的作業系統為CentOS6.5,需要下載以下檔案:
準備工作:系統環境搭建
以下操作均用root使用者操作。
1.網路配置(所有節點)
vi /etc/sysconfig/network修改hostname:
NETWORKING=yes
HOSTNAME=hadoop.master
通過
vi /etc/hosts ,修改ip與主機名的對應關係
192.168.226.17 hadoop.master master
192.168.226.18 hadoop.slave1 slave1
192.168.226.19 hadoop.slave2 slave2
192.168.226.20 hadoop. slave3 slave3
注意:這裡需要將每臺機器的ip及主機名對應關係都寫進去,本機的也要寫進去,否則啟動Agent的時候會提示hostname解析錯誤。
2.打通SSH,設定ssh無密碼登陸(所有節點)
在所有節點上執行
將公鑰新增到認證檔案中:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,並設定authorized_keys的訪問許可權:chmod 600 ~/.ssh/authorized_keys。
scp檔案到所有datenode節點:
scp ~/.ssh/authorized_keys root@slave1:~/.ssh/
測試:在主節點上ssh slave1,正常情況下,不需要密碼就能直接登陸進去了。
3.安裝jdk(所有節點)
CentOS,自帶OpenJdk,不過執行CDH5需要使用Oracle
解除安裝自帶的OpenJdk,使用rpm -qa | grep java查詢java相關的包,使用rpm -e --nodeps 包名解除安裝(凡是java開頭 都解除安裝)。
去Oracle的官網下載jdk的rpm安裝包,並使用rpm -ivh 包名安裝之。
由於是rpm包並不需要我們來配置環境變數,我們只需要配置一個全域性的JAVA_HOME變數即可,執行命令:
echo"JAVA_HOME=/usr/java/latest/" >> /etc/profile 注意:latest是jdk目錄的軟連線,所以你使用它或者直接寫jdk的目錄都可以
4.安裝配置MySql(主節點)
mysql -uroot -p123456進入mysql命令列,建立以下資料庫:
#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
設定root授權訪問以上所有的資料庫:
#授權root使用者在主節點擁有所有資料庫的訪問許可權
grant all privileges on *.* to 'root'@'master' identified by '123456'with grant option;
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
5.關閉防火牆和SELinux
注意:需要在所有的節點上執行,因為涉及到的埠太多了,臨時關閉防火牆是為了安裝起來更方便,安裝完畢後可以根據需要設定防火牆策略,保證叢集安全。
關閉防火牆:
service iptables stop(臨時關閉)
chkconfig iptables off(重啟後生效)
關閉SELINUX(實際安裝過程中發現沒有關閉也是可以的,不知道會不會有問題,還需進一步進行驗證):
setenforce 0(臨時生效)
修改 /etc/selinux/config下的 SELINUX=disabled(重啟後永久生效)
6.所有節點配置NTP服務
叢集中所有主機必須保持時間同步,如果時間相差較大會引起各種問題。具體思路如下:
master節點作為ntp伺服器與外界對時中心同步時間,隨後對所有datanode節點提供時間同步服務。
所有datanode節點以master節點為基礎同步時間。
所有節點安裝相關元件:yum install ntp。完成後,配置開機啟動:chkconfig ntpdon ,檢查是否設定成功:chkconfig --list ntpd其中2-5為on狀態就代表成功。
主節點配置
在配置之前,先使用ntpdate手動同步一下時間,免得本機與對時中心時間差距太大,使得ntpd不能正常同步。這裡選用master作為對時中心, ntpdate -u master。master主機新增下面資訊到/etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 2
restrict 192.168.226.0 mask 255.255.255.0 nomodify notrap
叢集其他節點修改/etc/ntp.conf,如下:
# Pleaseconsider joining the pool (http://www.pool.ntp.org/join.html).
#server0.centos.pool.ntp.org iburst
#server1.centos.pool.ntp.orgiburst
#server2.centos.pool.ntp.org iburst
#server3.centos.pool.ntp.org iburst
server master
配置檔案完成,儲存退出,
設定開機啟動chkconfig ntpd on
啟動服務,執行如下命令:service ntpdstart
正式開工
安裝Cloudera Manager Server和Agent
主節點解壓安裝
cloudera manager的目錄預設位置在/opt下,解壓:tar xzvfcloudera-manager*.tar.gz將解壓後的cm-5.4.3和cloudera目錄放到/opt目錄下。
為Cloudera Manager 5建立資料庫
首先需要去MySql的官網下載JDBC驅動,http://dev.mysql.com/downloads/connector/j/,解壓後,找到mysql-connector-java-5.1.39-bin.jar,放到/opt/cm-5.4.3/share/cmf/lib/中。
同時 chmod 755mysql-connector-java-5.1.39-bin.jar
在主節點初始化CM5的資料庫:
/opt/cm-5.4.3/share/cmf/schema/scm_prepare_database.sh mysql cm -hmaster -uroot -p123456 --scm-host master scm scm scm
Agent配置
修改/opt/cm-5.4.3/etc/cloudera-scm-agent/config.ini中的server_host為主節點的主機名。
修改/opt/cm-5.4.3/lib64/cmf/agent/src/cmf/util.py檔案。
將其中的程式碼:
pipe = subprocess.Popen(['/bin/bash','-c', ". %s; %s; env" % (path, command)],
stdout=subprocess.PIPE,env=caller_env)
修改為:
pipe = subprocess.Popen(['/bin/bash','-c', ". %s; %s; env | grep -v { | grep -v }" % (path, command)],
stdout=subprocess.PIPE, env=caller_env)
同步Agent到其他節點
scp -r/opt/cm-5.4.3 [email protected]:/opt/
在所有節點建立cloudera-scm使用者
useradd --system --home=/opt/cm-5.4.3/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
準備Parcels,用以安裝CDH5
將CHD5相關的Parcel包放到主節點的/opt/cloudera/parcel-repo/目錄中(parcel-repo需要手動建立)。
相關的檔案如下:
· CDH-5.4.3-1.cdh5.4.3.p0.12-el6.parcel
· CDH-5.4.3-1.cdh5.4.3.p0.12-el6.parcel.sha1
· manifest.json
最後將CDH-5.4.3-1.cdh5.4.3.p0.12-el6.parcel.sha1,重新命名為CDH-5.4.3-1.cdh5.4.3.p0.12-el6.parcel.sha,這點必須注意,否則,系統會重新下載CDH-5.4.3-1.cdh5.4.3.p0.12-el6.parcel檔案。
相關啟動指令碼
通過 /opt/cm-5.4.3/etc/init.d/cloudera-scm-server start 啟動主節點服務端。
通過 /opt/cm-5.4.3/etc/init.d/cloudera-scm-agent start啟動其他節點Agent服務。
注意:兩個指令碼都啟動成功,正常執行
需要停止服務將以上的start引數改為stop就可以了,重啟是restart。
CDH5的安裝配置
Cloudera ManagerServer和Agent都啟動以後,就可以進行CDH5的安裝配置了。
這時可以通過瀏覽器訪問主節點的7180埠測試一下了(由於CM Server的啟動需要花點時間,這裡可能要等待一會才能訪問),預設的使用者名稱和密碼均為admin:
1、選擇免費版本的CM5。
2、各個Agent節點正常啟動後,可以在當前管理的主機列表中看到對應的節點。選擇要安裝的節點,點繼續。
3、接下來,出現以下包名,說明本地Parcel包配置無誤,直接點繼續就可以了。
4、點選,繼續。
5、接下來是伺服器檢查,可能會遇到以下問題:
Cloudera建議將 /proc/sys/vm/swappiness設定為 0。當前設定為 60。使用 sysctl命令在執行時更改該設定並編輯/etc/sysctl.conf以在重啟後儲存該設定。您可以繼續進行安裝,但可能會遇到問題,Cloudera Manager報告您的主機由於交換執行狀況不佳。以下主機受到影響:
通過echo 0 >/proc/sys/vm/swappiness即可解決。
6、接下來是選擇安裝服務:
服務配置,一般情況下保持預設就可以了(Cloudera Manager會根據機器的配置自動進行配置,如果需要特殊調整,自行進行設定就可以了):
接下來是資料庫的設定,檢查通過後就可以進行下一步的操作了:
7、叢集設定的審查頁面,保持預設配置的:
終於到安裝各個服務的地方了,注意,這裡安裝Hive的時候可能會報錯,因為我們使用了MySql作為hive的元資料儲存,hive預設沒有帶mysql的驅動,通過以下命令拷貝一個就行了:
cp/opt/cm-5.4.3/share/cmf/lib/mysql-connector-java-5.1.39-bin.jar /opt/cloudera/parcels/CDH-5.4.3-1.cdh5.1.3.p0.12/lib/hive/lib/
安裝完成後,就可以進入叢集介面看一下叢集的當前狀況了。
測試
在叢集的一臺機器上執行以下模擬Pi的示例程式:
sudo -u hdfs hadoop jar/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi10100
執行過程需要花一定的時間,通過YARN的後臺也可以看到MapReduce的執行狀態:
MapReduce執行過程中終端的輸出如下:
Number of Maps =10
Samples per Map =100
Wrote inputfor Map#0
Wrote inputfor Map#1
Wrote inputfor Map#2
Wrote inputfor Map#3
Wrote inputfor Map#4
Wrote inputfor Map#5
Wrote inputfor Map#6
Wrote inputfor Map#7
Wrote inputfor Map#8
Wrote inputfor Map#9
Starting Job
14/10/1301:15:34 INFOclient.RMProxy: Connecting to ResourceManager at n1/192.168.1.161:8032
14/10/1301:15:36 INFOinput.FileInputFormat: Total input paths to process : 10
14/10/1301:15:37 INFOmapreduce.JobSubmitter: number of splits:10
14/10/1301:15:39 INFOmapreduce.JobSubmitter: Submitting tokens for job:job_1413132307582_0001
14/10/1301:15:40 INFOimpl.YarnClientImpl: Submitted application application_1413132307582_0001
14/10/1301:15:40 INFOmapreduce.Job: The url to track the job: http://n1:8088/proxy/application_1413132307582_0001/
14/10/1301:15:40 INFOmapreduce.Job: Running job: job_1413132307582_0001
14/10/1301:17:13 INFOmapreduce.Job: Job job_1413132307582_0001 running in uber mode : false
14/10/1301:17:13 INFOmapreduce.Job: map 0% reduce0%
14/10/1301:18:02 INFOmapreduce.Job: map 10% reduce0%
14/10/1301:18:25 INFOmapreduce.Job: map 20% reduce0%
14/10/1301:18:35 INFOmapreduce.Job: map 30% reduce0%
14/10/1301:18:45 INFOmapreduce.Job: map 40% reduce0%
14/10/1301:18:53 INFOmapreduce.Job: map 50% reduce0%
14/10/1301:19:01 INFOmapreduce.Job: map 60% reduce0%
14/10/1301:19:09 INFOmapreduce.Job: map 70% reduce0%
14/10/1301:19:17 INFOmapreduce.Job: map 80% reduce0%
14/10/1301:19:25 INFOmapreduce.Job: map 90% reduce0%
14/10/1301:19:33 INFOmapreduce.Job: map 100% reduce0%
14/10/1301:19:51 INFOmapreduce.Job: map 100% reduce100%
14/10/1301:19:53 INFOmapreduce.Job: Job job_1413132307582_0001 completed successfully
14/10/1301:19:56 INFOmapreduce.Job: Counters: 49
File System Counters
FILE: Number of bytesread=91
FILE: Number of bytes written=1027765
FILE: Number ofread operations=0
FILE: Number of largeread operations=0
FILE: Number ofwrite operations=0
HDFS: Number of bytesread=2560
HDFS: Number of bytes written=215
HDFS: Number ofread operations=43
HDFS: Number of largeread operations=0
HDFS: Number ofwrite operations=3
Job Counters
Launchedmap tasks=10
Launched reduce tasks=1
Data-local map tasks=10
Totaltime spent by all maps in occupied slots (ms)=118215
Totaltime spent by all reduces in occupied slots (ms)=11894
Totaltime spent by allmap tasks (ms)=118215
Totaltime spent by all reduce tasks (ms)=11894
Total vcore-seconds taken by allmap tasks=118215
Total vcore-seconds taken by all reduce tasks=11894
Total megabyte-seconds taken by allmap tasks=121052160
Total megabyte-seconds taken by all reduce tasks=12179456
Map-Reduce Framework
Map input records=10
Map output records=20
Map output bytes=180
Map output materialized bytes=340
Inputsplit bytes=1380
Combine input records=0
Combine output records=0
Reduce input groups=2
Reduce shuffle bytes=340
Reduce input records=20
Reduce output records=0
Spilled Records=40
Shuffled Maps =10
Failed Shuffles=0
Merged Map outputs=10
GCtime elapsed (ms)=1269
CPUtime spent (ms)=9530
Physical memory (bytes) snapshot=3792773120
Virtual memory (bytes) snapshot=16157274112
Total committed heap usage (bytes)=2856624128
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=1180
File Output Format Counters
Bytes Written=97
Job Finished in262.659 seconds
Estimated value of Pi is3.14800000000000000000
最後 感謝 http://www.tuicool.com/articles/ENjmeaY/ 博主,因為有這個作為參考,可以讓自己儘快的熟悉安裝流程。具體要通過 日誌 來分析問題。
當然,離線安裝後可能會因為一些原因想刪除 CDH 重新安裝, 這裡我會在下一篇文章中會體現。