官方共給出了3中安裝方式:第一種方法必須要求所有機器都能連網,由於最近各種國外的網站被牆的厲害,我嘗試了幾次各種超時錯誤,巨耽誤時間不說,一旦失敗,重裝非常痛苦。第二種方法下載很多包。第三種方法對系統侵入性最小,最大優點可實現全離線安裝,而且重裝什么的都非常方便。后期的集群統一包升級也非常好。這也是我之所以選擇離線安裝的原因。
包括MySQL數據庫我均采用二進制安裝包方式配置,且大部分步驟僅寫成腳本模式,不做說明。
補充一句,如果測試安裝,建議以root用戶權限進行配置部署,另外cloudera的官方文檔是我見過英文文檔里寫的最惡心的了。
一、前期准備
操作系統:3台CentOS6.5 最小化安裝+development tools組包,其余組件通過yum安裝。
cm版本:cloudera-manager-el6-cm5.9.2_x86_64.tar.gz
下載地址:http://archive.cloudera.com/cm5/cm/5/
1、所有服務器分別配置/etc/hosts文件:向其中添加以下3行
192.168.100.231 db01 192.168.100.232 db02 192.168.100.233 db03 |
2、所有服務器均創建安裝用戶:cloudera
groupadd cloudera useradd -g cloudera cloudera echo "dbking588" | passwd --stdin cloudera |
3、所有服務器為cloudera用戶配置sudo權限
chmod u+w /etc/sudoers echo "cloudera ALL=(root)NOPASSWD:ALL" >> /etc/sudoers chmod u-w /etc/sudoers |
4、所有服務器關閉防火牆、禁用selinux
sed -i '/SELINUX=enforcing/d' /etc/selinux/config sed -i '/SELINUX=disabled/d' /etc/selinux/config echo "SELINUX=disabled" >> /etc/selinux/config |
sed -e 's/SELINUX=enforcing/SELINUX=disabled/d' /etc/selinux/config |
Service iptables stop Chkconfig iptables off |
5、所有服務器設置文件打開數量及最大進程數
cp /etc/security/limits.conf /etc/security/limits.conf.bak echo "* soft nproc 32000" >>/etc/security/limits.conf echo "* hard nproc 32000" >>/etc/security/limits.conf echo "* soft nofile 65535" >>/etc/security/limits.conf echo "* hard nofile 65535" >>/etc/security/limits.conf |
6、配置SSH無秘鑰登錄:至少在namenode和resourcemanager節點配置
ssh-keygen -t rsa ssh-copy-id db01 ssh-copy-id db02 ssh-copy-id db03 |
7、配置集群時間同步服務:通過ntp服務配置
ntp主節點配置: cp /etc/ntp.conf /etc/ntp.conf.bak cp /etc/sysconfig/ntpd /etc/sysconfig/ntpd.bak echo "restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap" >> /etc/ntp.conf echo "SYNC_HWCLOCK=yes" >> /etc/sysconfig/ntpd service ntpd restart |
ntp客戶端配置: #crontab -e 輸入如下一行內容,保存退出: 0-59/10 * * * * /opt/scripts/sync_time.sh 上述腳本內容如下: # cat /opt/scripts/sync_time.sh /sbin/service ntpd stop /usr/sbin/ntpdate db01 /sbin/service ntpd start |
8、所有節點安裝java軟件並配置環境變量
$ sudo tar -zxvf jdk-7u67-linux-x64.tar.gz -C /opt/service/ |
export JAVA_HOME=/opt/service/jdk1.7.0_67 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH |
alternatives --config java alternatives --install /usr/bin/java java /opt/java/jdk1.7.0_67/bin/java 3 alternatives --config java --如果不修改這里,可能在安裝spark組件時報錯。 |
9、選擇一個節點用於安裝mysql數據庫
tar -zxvf mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz -C /opt/ mv mysql-5.6.24-linux-glibc2.5-x86_64/ mysql5624 yum -y install libaio groupadd mysql useradd -g mysql mysql echo "dbking588" | passwd --stdin mysql mv /etc/my.cnf /etc/my.cnf.bak cp support-files/my-default.cnf /etc/my.cnf |
/etc/my.cnf添加如下內容: ---------------------------------------------------------------------------------------------------- basedir = /opt/mysql5624 datadir = /opt/mysql5624/data port = 3306 log-error=/opt/mysql5624/data/mysql.log pid-file=/opt/mysql5624/data/mysql.pid |
scripts/mysql_install_db --user=mysql chown -R mysql:mysql /opt/mysql5624/ cp support-files/mysql.server /etc/rc.d/init.d/mysql chkconfig --add mysql Service mysql start |
二、安裝cm5.x
1、主節點解壓cloudera-manager-el6-cm5.9.2_x86_64.tar.gz包到/opt目錄下,記住不想修改配置,則必須解壓到/opt目錄:
$ sudo tar cloudera-manager-el6-cm5.9.2_x86_64.tar.gz -C /opt/ |
2、為cloudera manager 5.x初始化數據庫:
cp mysql-connector-java-5.1.22-bin.jar /opt/cm-5.9.2/share/cmf/lib/ |
/opt/cm-5.9.2/share/cmf/schema/scm_prepare_database.sh mysql cm592 -hlocalhost -uroot -pmysql --scm-host localhost scm scm scm |
2、配置agent:修改/opt/cm-5.9.2/etc/cloudera-scm-agent/config.ini文件修改server_host為主節點主機名。
3、創建cloudera-scm用戶:
sudo useradd --system --home=/opt/cm-5.9.2/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm |
4、同步agent到其他節點:
scp -r cm-5.9.2/ db02:/opt/ scp -r cm-5.9.2/ db03:/opt/ |
5、啟動cloudera manager的server和agent服務(這里先不啟動,在處理好parcels包后啟動):
這時,我們可以通過瀏覽器地址:http://db01:7180登錄cm控制台,cm控制台初始用戶名/密碼為:admin/admin。
三、安裝CDH5
1、下載parcels安裝包:http://archive.cloudera.com/cdh5/parcels/5.9.2/
2、上傳parcels文件到/opt/cloudera/parcel-repo目錄下:
CDH-5.11.0-1.cdh5.9.2.p0.34-el6.parcel
CDH-5.11.0-1.cdh5.9.2.p0.34-el6.parcel.sha1
重命名CDH-5.11.0-1.cdh5.9.2.p0.34-el6.parcel.sha1文件為CDH-5.11.0-1.cdh5.9.2.p0.34-el6.parcel.sha,否則系統會重新下載CDH-5.11.0-1.cdh5.9.2.p0.34-el6.parcel文件。
3、重啟cloudera server服務:
如果在配置好cm后啟動了cloudera服務,此時可以重新啟動cloudera服務,以確認cm可以識別parcels包: $ /opt/cm-5.9.2/etc/init.d/cloudera-scm-server restart $ /opt/cm-5.9.2/etc/init.d/cloudera-scm-agent restart |
4、運行瀏覽器安裝向導:
添加服務組件:第一步安裝zookeeper服務、第二步安裝hdfs服務、第三步安裝yarn服務,以后可以安裝需要定制的服務(hive、hbase、spark、sqoop、hue、flume、oozie、storm等)。
解決上圖中兩個問題:
sysctl -w vm.swappiness=10
echo "vm.swappiness=10" >>/etc/sysctl.conf
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
然后加入啟動腳本,使其開機自動執行。
之后可以選擇安裝各個服務組件。
注意:如果使用mysql數據庫存儲hive元數據,需要cp mysql驅動包到hive lib目錄下:
# cp mysql-connector-java-5.1.22-bin.jar /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java-5.1.22-bin.jar
********************************************************************************
* 更多交流機會,請添加“Hadoop/DBA架構支持”群:188521395 *
********************************************************************************