1. 程式人生 > >CDH5 離線安裝 記錄

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

通過

service networkrestart重啟網路服務生效。

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無密碼登陸(所有節點)

在所有節點上執行

ssh-keygen -trsa一路回車,生成無密碼的金鑰對。

將公鑰新增到認證檔案中: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

Jdk,需要Java 7的支援。

解除安裝自帶的OpenJdk,使用rpm -qa | grep java查詢java相關的包,使用rpm -e --nodeps 包名解除安裝(凡是java開頭 都解除安裝)。

Oracle的官網下載jdkrpm安裝包,並使用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 '123456with 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-5on狀態就代表成功。

主節點配置

在配置之前,先使用ntpdate手動同步一下時間,免得本機與對時中心時間差距太大,使得ntpd不能正常同步。這裡選用master作為對時中心ntpdate -u mastermaster主機新增下面資訊到/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 ServerAgent

主節點解壓安裝

cloudera manager的目錄預設位置在/opt下,解壓:tar xzvfcloudera-manager*.tar.gz將解壓後的cm-5.4.3cloudera目錄放到/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 ManagerServerAgent都啟動以後,就可以進行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 重新安裝, 這裡我會在下一篇文章中會體現。