環境
系統環境:CentOS 6.5 64bit
Java版本:java7
Mysql數據庫版本:mysql5.6
Cloudera Manager 版本:5.3.4
CDH版本:5.3.4
准備工作:
修改主機名字:vi /etc/sysconfig/network
修改主節點hosts文件vi /etc/hosts
然后把hosts文件scp到其他節點
scp /etc/hosts root@big02.beicai.edu:/etc/
關閉防火牆和SELinux(所有節點)
關閉防火牆:
service iptables stop (臨時關閉)
chkconfig iptables off (重啟后生效)
關閉SELINUX:
setenforce 0(臨時生效)
修改/etc/selinux/config 下的 SELINUX=disabled(重啟后永久生效)
在主節點打通其他主機的ssh:
用ssh-keygen -t rsa 生成密鑰一路回車
進入到~/.ssh/目錄:cd ~/.ssh/
然后cat id_rsa.pub >> authorized_keys
再然后把authorized_keys文件通過scp拷貝到各個主機的~/.ssh目錄下:
scp authorized_keys root@big02:~/.ssh/
為了方便可以兩兩主機之間都打通ssh
所有節點
ssh-keygen -t rsa 生成密鑰
進入到~/.ssh/目錄:cd ~/.ssh/
然后把各個節點的公鑰放入到authorized_keys中cat id_rsa.pub >> authorized_keys
再把authorized_keys通過scp到各個節點的.ssh目錄下
並且手動ssh登錄一遍以打通節點
安裝Oracle的Java:
CentOS自帶Open Jdk,不過運行CDH5需要使用Oracle的jdk,需要Java 7的支持。jdk安裝的時候,一定要采用rpm的安裝方式,而不要采用tar解壓的安裝方式。因為rpm的安裝方式,會在/usr/lib下新建兩個軟連接。
首先,卸載自帶的OpenJdk,使用rpm -qa | grep java查詢java相關的包,使用rpm -e --nodeps 包名卸載掉。
由於是rpm包並不需要我們來配置環境變量,我們只需要配置一個全局的JAVA_HOME變量即可,執行命令:
echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment
執行命令java -version和javac -version,查看Jdk是否安裝正確。
卸載系統自帶OPEN-JDK(所有節點)
rpm -qa | grep java
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
安裝Oracle的JDK(所有節點)
rpm -ivh jdk-7u80-linux-x64.rpm
echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment
java -version
安裝MYsql(主節點)
通過yum -y install mysql-server安裝mysql服務器。
設置開機啟動chkconfig mysqld on, 並啟動mysql服務service mysqld start,
並根據提示設置root的初始密碼:mysqladmin -u root password 'xxxx'。
mysqladmin -u root password 'beicaiHADOOP'
進入mysql命令行mysql -uroot -pxxxx,創建以下數據庫:
mysql -uroot -pbeicaiHADOOP
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
給用戶授權
grant all privileges on *.* to 'root'@'%' identified by 'beicaiHADOOP';
flush privileges;刷新權限
安裝和配置NTP服務(所有節點)
集群中所有主機必須保持時間同步,如果時間相差較大會引起各種問題。
具體思路如下:
master節點作為ntp服務器與外界對時中心同步時間,隨后對所有datanode節點提供時間同步服務。所有datanode節點以master節點為基礎同步時間。
所有節點安裝相關組件:yum install ntp。
完成后,配置開機啟動:chkconfig ntpd on,
檢查是否設置成功:chkconfig --list ntpd,其中2-5為on狀態就代表成功。
配置內網NTP服務器(主節點)
在配置之前,先使用ntpdate手動同步一下時間,免得本機與對時中心時間差距太大,使得ntpd不能正常同步。這里選用202.112.10.36作為對時中心,命令如下:ntpdate -u 202.112.10.36。
ntp服務只有一個配置文件,配置好就可以。 這里只給出有用的配置,不需要的配置都用#注掉,這里就不在給出。
先備份在編輯
重啟服務
配置ntp客戶端
手動同步時間
重啟服務
安裝詳解:
安裝與配置Cloudera Manager Server 和Agent:
http://archive.cloudera.com/cm5/redhat/5/x86_64/cm/5.3.4
在/opt/目錄下解壓tar -zxvf cloudera-manager-el6-cm5.3.4_x86_64.tar.gz
給所有節點添加cloudera-scm用戶
useradd --system --home=/opt/cm-5.3.4/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
為Cloudera Manager 5建立數據庫:
因為我們用的是Mysql數據庫,所以我們需要下載Mysql的JDBC驅動,本次從官網上下載的版本是:mysql-connector-java-5.1.38-bin.jar放到/opt/cm-5.3.4/share/cmf/lib/目錄下。
mv mysql-connector-java-5.1.38-bin.jar /opt/cm-5.3.4/share/cmf/lib/
然后,建立數據庫:
/opt/cm-5.3.4/share/cmf/schema/scm_prepare_database.sh mysql -h localhost -uroot -pbeicaiHADOOP --scm-host localhost scm root scm
格式是: scm_prepare_database.sh 數據庫類型 數據庫 服務器 用戶名 密碼 --scm-host Cloudera_Manager_Server所在的機器 .......
此步驟可能出現的錯誤
錯誤分析 因為password顯示為yes也就是說賬號密碼正確,所以確定scm用戶登錄數據庫權限不足
解決辦法為scm加權
grant all privileges on *.* to 'scm'@'%' identified by 'scm';
開啟Cloudera Manager 5 Server端:
/opt/cm-5.3.4/etc/init.d/cloudera-scm-server start
設置成開機啟動:
cp /opt/cm-5.3.4/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
chkconfig cloudera-scm-server on
注意:
server首次啟動不要立即關閉或重啟,因為首次啟動會自動創建相關表以及數據,
如果因為特殊原因中途退出,請先刪除所有表以及數據之后再次啟動,否則將會出現啟動不成功的情況。
Agent配置(所有節點)
開啟Cloudera Manager 5 Agents端。
現在主節點修改/opt/cm-5.3.4/etc/cloudera-scm-agent/config.ini下面的serer_host為主節點的主機名。
/opt/cm-5.3.4/etc/init.d/cloudera-scm-agent star
vi /opt/cm-5.3.4/etc/cloudera-scm-agent/config.ini
先復制/opt/cm-5.3.4到其他節點上,
scp -r /opt/cm-5.3.4 root@big02.beicai.edu:/opt/
其他節點啟動agent
/opt/cm-5.3.4/etc/init.d/cloudera-scm-agent star
設置開機啟動:
cp /opt/cm-5.3.4/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent
chkconfig cloudera-scm-agent on
制作本地源
先下載CDH到本地http://archive-primary.cloudera.com/cdh5/parcels/5.3.4/,這里需要下載三樣東西, 首先是與自己系統版本相對應的parcel包,然后是manifest.json文件。
CDH-5.3.4-1.cdh5.3.4.p0.4-el6.parcel
CDH-5.3.4-1.cdh5.3.4.p0.4-el6.parcel.sha1
manifest.json
下載完成后,將這兩個文件放到master節點的/opt/cloudera/parcel-repo下(目錄在安裝Cloudera Manager 5時已經生成),注意目錄一個字都不能錯。
接下來打開manifest.json文件,里面是json格式的配置,我們需要的就是與我們系統版本相對應的hash碼,因為我們用的是Centos6.5,所以找到如下位置找到“hash”所對應的值:
將“hash”的值復制下來,然后,將CDH-5.3.4-1.cdh5.3.4.p0.4-el6.parcel.sha1文件名改為CDH-5.3.4-1.cdh5.3.4.p0.4-el6.parcel.sha,將復制下來的hash值替換掉文本中的hash值,按理說應該是一致的。 保存好了,這樣,我們的本地源制作完成了。
然后的操作就是控制台按照步驟安裝即可。
安裝CDH
在瀏覽器中打開,url為主節點ip加端口號
賬號密碼都是admin
選取安裝版本然后繼續
繼續
選擇要安裝的主機可以用規則搜索
搜索規則如下