下載的包有如下幾個:
CDH-5.7.4-1.cdh5.7.4.p0.2-el6.parcel
CDH-5.7.4-1.cdh5.7.4.p0.2-el6.parcel.sha
manifest.json
cloudera-manager-el6-cm5.7.4_x86_64.tar.gz
mysql-connector-java-5.1.38.jar
下載地址如下:
注意要將CDH-5.7.4-1.cdh5.7.4.p0.2-el6.parcel.sha1改名爲CDH-5.7.4-1.cdh5.7.4.p0.2-el6.parcel.sha
安裝準備(以下操作如果沒特別指出,需要在所有的主機上操作)
設置靜態ip,hosts
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 HWADDR=00:50:56:8F:B3:52 TYPE=Ethernet UUID=a95295f7-f373-4ce9-970a-dc873db3bec9 ONBOOT=yes NM_CONTROLLED=yes #BOOTPROTO=dhcp IPADDR=192.168.2.224 NETMASK=255.255.255.0 GATEWAY=192.168.2.226 |
vi /etc/sysconfig/network(以hadoop-1爲例)
NETWORKING=yes HOSTNAME=hadoop-1 |
修改/etc/hosts 文件配置ip與host的映射
# vi /etc/hosts
添加如下數據:
192.168.2.224 hadoop-1 192.168.2.234 hadoop-2 192.168.2.235 hadoop-3 192.168.2.236 hadoop-4 192.168.2.244 hadoop-5 |
關閉防火牆
# service iptables stop
# chkconfig iptables off
禁用IPv6
# echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf
# echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf
禁止Selinux
# vi /etc/sysconfig/selinux
修改內容
SELINUX=disabled
ssh互信
# ssh-keygen -t rsa (一直回車就行)
分發公鑰
# ssh-copy-id hadoop-1
# ssh-copy-id hadoop-2
# ssh-copy-id hadoop-3
# ssh-copy-id hadoop-4
# ssh-copy-id hadoop-5
集羣時間同步
(如果沒辦法連接外網,可以先把自己的機器設置成外部ntp服務器,參考文檔:"windows設置ntp服務",集羣時間正確之後再選在hadoop-1作爲集羣的時間服務器)
1配置ntp服務
a) 開啓 ntp 進程服務
# service ntpd start
# chkconfig ntpd on
b) 修改 ntpd 配置文件(hadoop-1)
# vi /etc/ntp.conf
1) 取消註釋 保持同一網段
# Hosts on local network are less restricted.
restrict 172.168.2.0 mask 255.255.255.0 nomodify notrap
(注意 172.168.2.0 是集羣所在的網段)
2) 註釋服務
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
3) 添加配置
NTPD把本地主機的時鐘也看作外部時鐘源來處理,分配的地址是127.127.1.0
server 127.127.1.0
fudge 127.127.1.0 startum 10
c) 重啓ntp 服務,並將服務設置爲開機啓動
# service ntpd restart
校準時間(hadoop-1)
1)系統時間
將本機時間與外部ntp服務器進行同步
# ntpdate -u 192.168.2.32 (已經作爲ntp服務器的ip,或同網段其他機器)
date -s "2007-08-03 14:15:00"
2)硬件時鐘時間
a.電腦系統暫停 系統時間暫停 硬件時鐘時間繼續執行
# hwclock --localtime
# hwclock --localtime -w (更改 用系統時間更新硬件時鐘時間)
# hwclock --localtime
b.用硬件時鐘時間更新系統時間
# vi /etc/sysconfig/ntpd
首行 添加
SYNC_HWCLOCK=yes
# vi /etc/sysconfig/ntpdate
SYNC_HWCLOCK=yes (no修改爲yes)
2其他機器與集羣的ntp服務器進行時間同步(除去hadoop-1外的機器)
a.修改配置文件
# vi /etc/ntp.conf
1) 取消註釋 保持同一網段
# Hosts on local network are less restricted.
restrict 172.168.2.0 mask 255.255.255.0 nomodify notrap
(注意 172.168.2.0 是集羣所在的網段)
2) 註釋服務
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
3) 配置服務源,即hadoop-1的地址
server 192.168.2.224
分發配置:
scp /etc/ntp.conf root@hadoop-5:/etc/
scp /etc/ntp.conf root@hadoop-4:/etc/
scp /etc/ntp.conf root@hadoop-3:/etc/
4) 手動執行
# ntpdate -u hadoop-1
5)硬件時鐘時間
a.電腦系統暫停 系統時間暫停 硬件時鐘時間繼續執行
# hwclock --localtime
# hwclock --localtime -w (更改 用系統時間更新硬件時鐘時間)
# hwclock --localtime
b.用硬件時鐘時間更新系統時間
# vi /etc/sysconfig/ntpd
首行 添加
SYNC_HWCLOCK=yes
# vi /etc/sysconfig/ntpdate
SYNC_HWCLOCK=yes (no修改爲yes)
scp /etc/sysconfig/ntpd root@hadoop-5:/etc/sysconfig
scp /etc/sysconfig/ntpd root@hadoop-4:/etc/sysconfig
scp /etc/sysconfig/ntpd root@hadoop-3:/etc/sysconfig
6) 腳本定時執行
# crontab -e
0-59/3 * * * * /usr/sbin/ntpdate -u hadoop-1
7)開啓 ntp 進程服務
# service ntpd start
# chkconfig ntpd on
安裝JDK
- 上傳 jdk-8u151-linux-x64.tar.gz
2)創建/usr/java目錄並解壓jdk:
# mkdir /usr/java
# tar -xvf jdk-8u151-linux-x64.tar.gz -C /usr/java/
scp -r jdk1.8.0_151/ root@hadoop-5:/usr/java/
3)配置JAVA環境變量:
# vi /etc/profile
添加如下內容:
export JAVA_HOME=/usr/java/jdk1.8.0_151
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
scp /etc/profile root@hadoop-2:/etc/
4)配置生效:
# source /etc/profile
5)驗證是否安裝成功:
# java -version
在hadoop-1安裝mysql,並將字符集改成utf8
刪除原有mysql
# rpm -qa |grep mysql //查看原有mysql
存在類似如下:
qt-mysql-4.6.2-26.el6_4.x86_64
mysql-connector-odbc-5.1.5r1144-7.el6.x86_64
mysql-libs-5.1.71-1.el6.x86_64
mysql-5.1.71-1.el6.x86_64
mysql-devel-5.1.71-1.el6.x86_64
mysql-server-5.1.71-1.el6.x86_64
//強制卸載原先系統自帶的mysql包(按照列出的進行刪除)
rpm -e mysql-libs --nodeps
rpm -e mysql-connector-odbc --nodeps
rpm -e mysql --nodeps
rpm -e qt-mysql --nodeps
rpm -e mysql-devel --nodeps
rpm -e mysql-server --nodeps
將mysql安裝包上傳並解壓(5.5)
tar -zxvf mysql-5.5.52-linux2.6-x86_64.tar.gz
建立mysql用戶組
groupadd mysql
爲mysql用戶組添加用戶mysql
useradd -r -g mysql mysql
複製解壓得到的目錄到系統的本地軟件目錄“/usr/local/”,命令如下:
/usr/local/mysql 爲本次mysql的安裝目錄
cp -r mysql-5.5.52-linux2.6-x86_64 /usr/local/mysql
--有效
cd /usr/local/mysql
ls --進入mysql目錄,查看複製是否成功
修改當前目錄擁有者爲剛纔新建的mysql用戶
chown -R mysql:mysql ./
ls -al
加入mysql配置
vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_names=1
[mysqld_safe]
log-error=/var/log/mysql.log
pid-file=/var/run/mysql/mysql.pid
初始化mysql
./scripts/mysql_install_db
爲防有人攻破mysql進程,則不安全,所以將此目錄下除data之外的所有文件擁有者改爲root用戶
chown -R root:root ./ ---將文件權限設置爲root用戶
chown -R mysql:mysql data ---data目錄要使用mysql用戶/組
ls -al
爲系統增加mysql服務
cp support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
chkconfig --list mysql
(看看默認是否會啓用,3,4,5是“on”狀態即可)
重啓後,系統會自動開啓mysql服務
啓動mysql 服務
service mysql start
如失敗繼續執行以下命令:
./scripts/mysql_install_db
爲mysql用戶添加根目錄
mkdir /home/mysql
chown -Rv mysql /home/mysql --設置目錄mysql的所有權爲mysql用戶
chown -Rv mysql /home/mysql
changed ownership of `/home/mysql' to mysql
chgrp mysql /home/mysql
重啓服務器,驗證Mysql安裝是否成功
使用service mysql status查看mysql服務是否開啓
service mysql status
創建相關軟連接
cd /usr/local/bin/
ln -fs /usr/local/mysql/bin/mysql mysql
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
cd /usr/local/mysql
./bin/mysqladmin -u root password '123456'
1.在數據庫中建表(cm)
mysql -uroot -p123456
create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database hmon DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database smon DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database rma DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database nas DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database nms DEFAULT CHARSET utf8 COLLATE utf8_general_ci; grant all on scm.* to 'root'@'%' identified by '123456'; grant all on hive.* to 'root'@'%' identified by '123456'; grant all on oozie.* to 'root'@'%' identified by '123456'; grant all on amon.* to 'root'@'%' identified by '123456'; grant all on hmon.* to 'root'@'%' identified by '123456'; grant all on smon.* to 'root'@'%' identified by '123456'; grant all on rma.* to 'root'@'%' identified by '123456'; grant all on nas.* to 'root'@'%' identified by '123456'; grant all on nms.* to 'root'@'%' identified by '123456'; flush privileges; |
2.設置mysql開機啓動
# chkconfig mysql on
其他設置
# echo 0 > /proc/sys/vm/swappiness
# echo 'vm.swappiness=0'>> /etc/sysctl.conf
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
# echo 'echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag' >> /etc/rc.local
安裝目錄
# mkdir /opt/cloudera-manager
將安裝包解壓到安裝目錄
cd /opt/cloudera-manager/
scp cloudera-manager-el6-cm5.7.4_x86_64.tar.gz root@hadoop-2:/opt/cloudera-manager/
# tar -xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
創建CM的默認用戶,增加sudo權限
# useradd --system --home=/opt/cloudera-manager/cm-5.7.4/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
# chmod +w /etc/sudoers
# vi /etc/sudoers
添加cloudera-scm ALL=(ALL) NOPASSWD:ALL
# chmod -w /etc/sudoers
創建Cloudera Manager Server 本地存儲路徑
# mkdir /var/lib/cloudera-scm-server
# chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server
日誌路徑
# mkdir /var/log/cloudera-scm-server
# chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-server
修改配置文件
# vi /opt/cloudera-manager/cm-5.7.4/etc/cloudera-scm-agent/config.ini
server_host= hadoop-1
創建目錄
# mkdir -p /var/cm_logs/cloudera-scm-headlamp
# chown cloudera-scm /var/cm_logs/cloudera-scm-headlamp
創建Parcel 目錄 並上傳需要的parcel包
# mkdir -p /opt/cloudera/parcel-repo
# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
# mkdir -p /opt/cloudera/parcels
# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
cd /opt/cloudera/parcel-repo
上傳 CDH-5.7.4-1.cdh5.7.4.p0.2-el6.parcel
CDH-5.7.4-1.cdh5.7.4.p0.2-el6.parcel.sha
manifest.json
將上述三個文件上傳到/opt/cloudera/parcel-repo 目錄下
scp * root@hadoop-2:/opt/cloudera/parcel-repo/
scp * root@hadoop-3:/opt/cloudera/parcel-repo/
scp * root@hadoop-4:/opt/cloudera/parcel-repo/
scp * root@hadoop-5:/opt/cloudera/parcel-repo/
在hadoop-1節點上配置Cloudera Manager Server 數據庫(本集羣採用mysql數據庫)
建立數據庫前要下載 jdbc驅動,放到下面目錄(否則創建scm數據會報錯):
/opt/cloudera-manager/cm-5.7.4/share/cmf/lib
爲cloudera-manager創建數據庫scm
執行
cd /opt/cloudera-manager/cm-5.7.4/share/cmf/lib
上傳mysql
# /opt/cloudera-manager/cm-5.7.4/share/cmf/schema/scm_prepare_database.sh mysql scm root 123456
在hadoop-1節點上執行
# /opt/cloudera-manager/cm-5.7.4/etc/init.d/cloudera-scm-server start
設置開機啓動
#cp /opt/cloudera-manager/cm-5.7.4/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
# chkconfig cloudera-scm-server on
修改
# vi /etc/init.d/cloudera-scm-server
將 CMF_DEFAULTS的值由 ${CMF_DEFAULTS:-/etc/default},設置爲CMF_DEFAULTS=/opt/cloudera-manager/cm-5.7.4/etc/default
在每個主機上執行如下命令:
# /opt/cloudera-manager/cm-5.7.4/etc/init.d/cloudera-scm-agent start
設置開機啓動:
# cp /opt/cloudera-manager/cm-5.7.4/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent
# chkconfig cloudera-scm-agent on
修改
# vi /etc/init.d/cloudera-scm-agent
將 CMF_DEFAULTS的值由 ${CMF_DEFAULTS:-/etc/default},設置爲CMF_DEFAULTS=/opt/cloudera-manager/cm-5.7.4/etc/default
scp /etc/init.d/cloudera-scm-agent root@hadoop-2:/etc/init.d/cloudera-scm-agent
至此cloudera-manager已經安裝完畢
CDH服務安裝
登錄
http://192.168.2.224:7180 (192.168.2.224是hadoop-1的地址)
用戶名/密碼 : admin/admin
爲CDH安裝指定主機
選擇所有當前管理的主機
驗證必須全部通過才能繼續下一步
安裝CM
1:點擊圖標鏈接到如圖的首頁
2:點擊添加cloudera management 的服務
3.服務全部安裝到hadoop-1節點上
4:數據庫主機名稱:hadoop-1(測試不通過嘗試localhost)
5:數據庫類型:mysql
7:數據庫名稱:amon
8:用戶名/密碼:hadoop-1上的mysql的用戶名和密碼(root/123456)
9:測試鏈接通過後才能進行下一步
10:選擇默認配置