一、簡單介紹
CM:Cloudera Manager,Cloudera公司編寫的一個CDH的管理后台,類似各CMS的管理后台。
CDH:Cloudera’s distribution,including Apache Hadoop,Cloudera公司制作的一個Hadoop發行版,集成了Hadoop及Hive等與Hadoop關系緊密的工具。
也經常直接用CM指代其本身和CDH。CM最大的好處是通過自動化的部署大大降低了Hadoop集群的部署工作量。
二、下載
本教程CM采用離線形式安裝版本為當前最新的5.11.0,CDH也以離線形式安裝
CM相關軟件集:http://archive.cloudera.com/cm5/repo-as-tarball/5.11.0/cm5.11.0-centos6.tar.gz(根據自己操作系統下載)
CDH:http://archive.cloudera.com/cdh5/parcels/latest/(下載manifest.json及自己系統相應的.parcel和.sha1文件)
三、安裝前的配置
3.1主機環境介紹
主機名 | hadoop1 | ip | 192.168.220.136 |
內存 | 8G | 用戶 | root |
3.2修改主機名(root執行)
修改主機名為hadoop1,執行:hostname hadoop1
永久修改主機名,編緝/etc/sysconfig/network:將HOSTNAME值修改為hadoop1
寫入/etc/hosts文件,在/etc/hosts追加行:192.168.220.136 hadoop1
3.3配置靜態IP
本教程使用的是VM虛擬機,一般而言VM默認是DHCP但分配給各虛擬機的IP還是固定的,但在具體的安裝實驗中發現主機或CM重啟后IP漂移,導致CM不能成功啟動的現象。
編緝/etc/sysconfig/network-scripts/ifcfg-eth0,將BOOTPROTO由dhcp改為static,然后追加IP/網關IP/掩碼三項內容(具體值根據自己情況修改):
IPADDR=192.168.220.136 GATEWAY=192.168.220.2 NETMASK=255.255.255.0
DNS1=114.114.114.11
然后重啟網卡:service network restart
重啟時可能會出現錯誤:Bringing up interface eth0: Error: No suitable device found: no device found for connection 'System eth0'
首先可能使用的網卡不是eth0,使用ifconfig命行查看當前使用網卡(比如叫eth1)然后把配置文件名ifcfg-eth0改為ifcfg-eth1,把文件內的DEVICE值也改為eth1
然后可能mac地址也不對,用ifconfig命令查到的HWaddr值替換配置文件中的HWADDR的值。最后再重啟即可
3.4關閉防火牆
CM會使用大量端口,這里選擇直接關閉防火牆,如果你覺得防火牆配置沒有問題可以不關
停止防火牆服務:service iptables stop
禁止開機自啟動:chkconfig --level 35 iptables off
查看是否設置成功:chkconfig --list iptabels
3.5關閉selinux
selinux配置設置太嚴格,可能會與CM需要的功能相沖突,我們選擇直接關掉
編緝/etc/selinux/config,將SELINUX的值修改為disabled(默認為enforcing)
重啟操作系統生效(這里發須重啟操作系統setenforce 0 CM是不承認的)
3.6安裝配置MySQL
yum -y install mysql mysql-server mysql-devel #安裝MySQL chkconfig mysqld on #開機自啟動 service mysqld start #啟動MySQL mysql_secure_installation #配置數據庫用戶名密碼
mysql -u root -p #登錄MySQL
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; grant all on *.* to root@"%" Identified by "toor" with grant option; grant all on *.* to 'root'@'hadoop1' identified by 'toor' with grant option; grant all privileges on *.* to 'root'@'hadoop1' identified by 'toor' with grant option; flush privileges;
3.7配置ssh
su - hadoop ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3.8配置時間同步
編緝/etc/ntp.conf,追加:
server 0.cn.pool.ntp.org server 1.cn.pool.ntp.org server 2.cn.pool.ntp.org server 3.cn.pool.ntp.org
service ntpd restart ntpdate -u 1.cn.pool.ntp.org ntpq -p ntpdc -np #如果有*開頭的表示已同步
四、安裝CM
tar -zxf cm5.11.0-centos6.tar.gz #解壓軟件包
cd cm/5/RPMS/x86_64
yum localinstall --nogpgcheck *.rpm
4.2修正MySQL
下載mysql-connector-java:https://dev.mysql.com/downloads/connector/j/
cp mysql-connector-java-5.1.42-bin.jar /usr/share/cmf/lib
/usr/share/cmf/schema/scm_prepare_database.sh mysql scm -hhadoop1 -uroot -ptoor --scm-host hadoop1 scm scm scm
cp CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel /opt/cloudera/parcel-repo/
cp CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha
cp manifest.json /opt/cloudera/parcel-repo/
service cloudera-scm-agent stop service cloudera-scm-server stop service cloudera-scm-server start service cloudera-scm-agent start
echo 0 > /proc/sys/vm/swappiness echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled
編緝/etc/profile,追加:
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
4.3開始安裝
登錄http://192.168.220.136:7180/cmf,默認用戶名密碼:admin/admin
cp mysql-connector-java-5.1.42-bin.jar /var/lib/oozie/mysql-connector-java.jar #由於安裝之前沒有這些目錄所以到這里才把jar包復制到這些目錄
cp mysql-connector-java-5.1.42-bin.jar /opt/cloudera/parcels/CDH/jars cd /opt/cloudera/parcels/CDH/lib/hive/lib ln -s ../../../jars/mysql-connector-java-5.1.42-bin.jar mysql-connector-java-5.1.42-bin.jar