因為項目開發需要要在本地組建一個Hadoop/Spark集群,除了Hadoop/Spark還要同時安裝多個相關的組件,如果一個個組件安裝配置,對於一個由多台服務器組成的集群來說,工作量是巨大的。
所以需要借助Cloudera來安裝,因為它本身集成了豐富的數據分析處理相關的組件和管理工具,而且還能幫助簡化集群安裝和配置。
Cloudera提供多種安裝方式,但公司IT政策不允許本地集群接入互聯網,所以我們只能選擇離線安裝這種方式。
安裝前准備
主機和系統
Host | OS | Memory | IP |
HadoopMaster |
Cent OS 6.4 x64 |
16G |
192.168.1.10 |
HadoopSlave1 |
Cent OS 6.4 x64 |
16G |
192.168.1.11 |
HadoopSlave2 |
Cent OS 6.4 x64 |
8G |
192.168.1.12 |
安裝包下載
可以自行到下面列出的文件目錄里去找最新版本或直接點文件鏈接下載5.7.1的parcel和sha文件
注意:這里我們用的是Cent OS 6.4所以下載的時候要選擇帶el6標記的文件
Cloudera Manager:
文件目錄:http://archive.cloudera.com/cm5/cm/5/
Cloudera Manager5.7.1:http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.7.1_x86_64.tar.gz
CDH:
文件目錄:http://archive.cloudera.com/cdh5/parcels/5/
CHD5.7.1 parcel: http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel
CHD5.7.1 sha: http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel.sha1
Kafka:
文件目錄:http://archive.cloudera.com/kafka/parcels/2.0.1/
Kafka1.2.0.1 parcel: http://archive.cloudera.com/kafka/parcels/2.0.1/KAFKA-2.0.1-1.2.0.1.p0.5-el6.parcel
Kafka1.2.0.1 sha: http://archive.cloudera.com/kafka/parcels/2.0.1/KAFKA-2.0.1-1.2.0.1.p0.5-el6.parcel.sha1
系統和環境配置
更改主機名
打開網絡配置
sudo vim /etc/sysconfig/network
如下方式更改主機名,把集群中的機器主機名分別改為HadoopMaster/HadoopSlave1/HadoopSlave2
NETWORKING=yes
HOSTNAME=HadoopMaster
重啟網絡
sudo service network restart
配置hosts文件
打開hosts文件
sudo vim /etc/hosts
改為如下配置
192.168.1.10 HadoopMaster 192.168.1.11 HadoopSlave1 192.168.1.12 HadoopSlave2
主機之間SSH免密碼登錄配置
生成SSH密鑰
所有機器上執行下面命令,一路回車,可生成本機的rsa類型的密鑰。
ssh-keygen -t rsa
執行完之后在~/.ssh/目錄下會生成一個保存有公鑰的文件:id_rsa.pub
在所有機器執行下面命令把自己的公鑰拷貝到Master機
ssh-copy-id hadoop@HadoopMaster
把HadoopMaster的authorized_keys拷貝到HadoopSlave1和HadoopSlave2
scp ~/.ssh/authorized_keys hadoop@HadoopSlave1:~/.ssh/ scp ~/.ssh/authorized_keys hadoop@HadoopSlave2:~/.ssh/
詳細步驟請參考:http://www.cnblogs.com/keitsi/p/5653520.html
所有機器安裝Java 8
-
舊版本卸載
#查看安裝的Java rpm -qa | grep java #卸載相應的Java包 rpm -e --nodeps Java包名
-
安裝包下載
打開下面鏈接下載相關的rpm包
http://www.oracle.com/technetwork/java/javase/downloads/index.html
-
安裝
sudo rpm -ivh jdk-8u91-linux-x64.rpm
- 寫入全局的環境變量
sudo echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment
在Master機安裝配置MySQL
- 安裝MySQL
sudo yum install mysql-server
- 設置開機啟動
sudo chkconfig mysqld on
- 啟動MySQL service
sudo service mysqld start
- 設置root用戶密碼
sudo mysqladmin -u root password 'xxxx'
關閉所有機器的防火牆和SELinux
如果一個個配置端口的話會比較麻煩,所以在安裝過程中就把防火牆關閉,可以在安裝完成后再根據需求配置
- 關閉防火牆
臨時關閉
sudo service iptables stop
如果要永久關閉,可以修改配置:
sudo chkconfig iptables off
- 關閉SELinux
臨時關閉
sudo setenforce 0
如果要永久關閉,可以修改配置:
sudo vim /etc/selinux/config
設置SELINUX=disabled
安裝配置NTP(可跳過)
NTP用於同步各個服務器的時間,因為如果服務器之間的時間相差太大的話會導致集群報警或一些服務down掉。
如果集群可連接外網並可以連接到時間服務器的話,可以自己在網上搜索安裝教程。
但是這里是內網的測試環境沒有辦法連接到同步服務器,所以只能自己手機控制時間了!
Cloudera Manager安裝
文件上傳
把cloudera-manager-el6-cm5.7.1_x86_64.tar上傳到Master機並拷貝到所有的Slave機子上
scp cloudera-manager-el6-cm5.7.1_x86_64.tar.gz hadoop@HadoopSlave1:~ scp cloudera-manager-el6-cm5.7.1_x86_64.tar.gz hadoop@HadoopSlave2:~
解壓文件
在所有機器上執行下面命令,把cm的壓縮文件解壓到/opt/
sudo tar xzvf cloudera-manager-el6-cm5.7.1_x86_64.tar.gz -C /opt/
Agent配置
在所有機器上配置Master機的主機名
sudo vim /opt/cm-5.7.1/etc/cloudera-scm-agent/config.ini
把server_host設置成Master機的主機名
server_host=HadoopMaster
新建用戶cloudera-scm
為所有機器新建cloudera-scm用戶,注意把--home設置為對應的路徑:
sudo useradd --system --home=/opt/cm-5.7.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
為Cloudera Manager建立數據庫
下載MySQL驅動:http://dev.mysql.com/downloads/connector/j/
解壓把驅動的jar文件上傳到/opt/cm-5.7.1/share/cmf/lib
初始化數據cloudera庫
sudo /opt/cm-5.7.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pmysql@Hadoop0 --scm-host localhost scm mysql@Hadoop:scm:88
mysql@Hadoop0為root用戶的密碼
mysql@Hadoop:scm:88為給新建的scm用戶設定的密碼,因為MySQL 5.6以后密碼規則比較,所以密碼盡量設置復雜點(包含大寫,小寫,特殊字符並長度大於10)。
在Master機上啟動Cloudera Manager Server
sudo /opt/cm-5.7.1/etc/init.d/cloudera-scm-server start
在所有機器上啟動Cloudera Manager Agent
sudo /opt/cm-5.7.1/etc/init.d/cloudera-scm-agent start
打開Cloudera Manager主頁
http://192.168.1.10:7180/
第一次啟動比較慢,可能需要等待幾分鍾才可以打得開cloudera manager主頁。
登錄Cloudera Manager
默認用戶名密碼都是admin,第一次登錄成功之后先進入到cloudera manager的安裝引導界面:
CDH安裝
CDH文件上傳
重命名sha文件(這一步很重要,如果跳過,會出現找不到哈希文件的錯誤,而導致加載parcel失敗)
把下載好的CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel.sha1 和 KAFKA-2.0.1-1.2.0.1.p0.5-el6.parcel.sha1重命名為
CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel.sha 和 KAFKA-2.0.1-1.2.0.1.p0.5-el6.parcel.sha
把CDH和KAFKA的parcel和sha文件上傳到Master機 的 /opt/cloudera/parcel-repo/目錄
CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel.sha KAFKA-2.0.1-1.2.0.1.p0.5-el6.parcel KAFKA-2.0.1-1.2.0.1.p0.5-el6.parcel.sha
選擇cloudera manager的版本
選擇要安裝CDH的主機
所有正常啟動agent的機器都會顯示在這個頁面
選擇要安裝的Parcels
安裝Parcel
選擇要安裝的服務
如下圖所示,有多種服務組合供選擇(服務是隨時可以根據需求增刪的),我這里根據項目需求選擇自定義服務。
集群設置
一般按默認設置就可以了,也可以根據自己的需求定制。
點擊繼續安裝,在安裝的過程中可能會有一些服務的配置需要設置,一般按默認配置就可以了。
完成安裝
至此,Cloudear Manger/CDH的安裝已經完成,你可以在Cloudear Manger管理界面上對集群進行更細化的定制。
轉載請注明出處:http://www.cnblogs.com/keitsi/p/cloudera_install.html