Ubuntu安裝Cloudera Manager以及CDH5.15.2
注意,本安裝教程是在真機上進行,而非虛擬機器。另,此次搭建主要的目的是搭建測試環境,讓Hadoop各元件能夠運作起來即可,完成搭建後,將用小資料量進行相關資料的計算與測試。線上環境將會使用阿里雲主機。
以下是四臺真機配置:
機子內網IP地址 |
主機名 |
記憶體大小 |
磁碟大小 |
CPU |
192.168.0.29 |
bigdata01(主) |
8GB |
2T |
1個物理CPU,4核 |
192.168.0.133 |
bigdata02(從) |
8GB |
500GB |
1個物理CPU,2核 |
192.168.0.135 |
bigdata03(從) |
8GB |
500GB |
1個物理CPU,2核 |
192.168.0.115 |
bigdata04(從) |
8GB |
500GB |
1個物理CPU,2核 |
根據機子的配置,建議Hadoop的NameNode放在29這臺機子上,配置高可用的話,NameNodeStandby放在除29以外任意一臺機子均可,DataNode四臺機子都要配。其它元件如何放置,後續會說到。
Tips:
在linux系統環境下,檢視機子的記憶體大小命令:cat /proc/meminfo |grep MemTotal
檢視機子的硬碟大小:fdisk -l | grep Disk
檢視機子的CPU情況:
有兩個公式可以記一下:總核數 = 物理CPU個數 * 每顆物理CPU的核數;
總邏輯CPU數 = 物理CPU個數 * 每顆物理CPU的核數 * 超執行緒數
檢視物理CPU個數:cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
檢視每個物理CPU的核數:cat /proc/cpuinfo| grep "cpu cores"| uniq
檢視邏輯CPU的個數:cat /proc/cpuinfo| grep "processor"| wc -l
二、下載相關檔案 1、ubuntu系統
http://old-releases.ubuntu.com/releases/16.04.3/ubuntu-16.04.4-server-amd64.iso
關於作業系統的選擇,其實區別不大,這種級別的問題,對我這種水平的人,不太能夠感知得到,當然會繼續努力,去感知作業系統級別的問題。
2、cloudera manager相關下載先下載好來,然後傳到各個節點上去,不然安裝過程中下載,速度慢得讓你分分鐘想砸鍵盤。
tar包下載:
https://archive.cloudera.com/cm5/cm/5/cloudera-manager-xenial-cm5.15.2_amd64.tar.gz
parcles下載:
http://archive.cloudera.com/cdh5/parcels/5.15.2/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel
http://archive.cloudera.com/cdh5/parcels/5.15.2/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel.sha1
http://archive.cloudera.com/cdh5/parcels/5.15.2/manifest.json
下載的tar包,包含了cloudera manager server,cloudera manager daemons,cloudera manager agents。
parcles包則是CM特有的包格式,安裝的各個元件就是從parcles裡面取出來的。
三、系統環境的設定 1、root使用者的設定(四個節點都要)
ubuntu系統在剛安裝完成後,root使用者預設不被啟用,也沒有密碼,因此需要給root使用者設定一個登陸密碼,還要設定root使用者允許ssh登陸,這樣會方便我們進行軟體的安裝。
給root使用者設定密碼:sudo passwd root
開啟root使用者ssh遠端登陸許可權:sudo vi /etc/ssh/sshd_config,將檔案中的PermitRootLogin prohibit-password 改為 PermitRootLogin yes
要使修改的配置生效,需要重啟ssh服務:service ssh restart
設定好了之後,登入root使用者,後面都是用root使用者操作了:su root
2、修改hosts檔案(四個節點都要)命令:vim /etc/hosts
將ip和主機名新增到檔案末尾:
注意ip和主機名修改為你自己的。
3、免密登入ssh設定(四個節點都要)這一步很重要,不然在安裝CM的過程中會出錯,一定要完成這一步。
首先,在每個節點上分別生成金鑰
命令:ssh-keygen -t rsa
一路回車,結束後,在/root/.ssh資料夾中,會有id_rsa,id_rsa.pub兩個檔案。
每個節點都生成金鑰成功後,然後我們把每個節點的id_rsa.pub檔案中的內容,集中到一個名為authorized_keys檔案中,然後把這個檔案分別傳送到各節點的.ssh資料夾中,這樣我們就可以在任意節點使用ssh命令免密登入到別的節點上去。
最終,.ssh資料夾中,我們可以看到以下幾個檔案:
試試效果:
可以看到,這裡並沒有提示要求我們輸入密碼登入到bigdata02機子上。
4、安裝jdk1.8(四個節點都要)安裝包已經下載好了,就在之前已經下載好的cm6.3.0-ubuntu1604.tar.gz這個包裡。
將包上傳到機子上,之後使用命令:tar -zxvf cm6.3.0-ubuntu1604.tar.gz,解壓。
java安裝包在路徑:/cm6.3.0/pool/contrib/o/oracle-j2sdk1.8
注意這裡是一個deb包,我們需要使用dpkg命令進行包的安裝。
命令:dpkg -i oracle-j2sdk1.8_1.8.0+update181-1_amd64.deb
預設的安裝路徑為:/usr/lib/jvm/java-8-oracle-cloudera。
接下來配置jdk的全域性環境變數
編輯 /etc/profile檔案:vim /etc/profile
在檔案末尾加上下面的程式碼:
export JAVA_HOME=/usr/lib/jvm/java-8-oracle-cloudera
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
加入完成後,要使全域性變數生效,使用命令:source /etc/profile
之後,輸入:java -version,出現下面的提示,則說明安裝成功了:
5、安裝ntp(四個節點都要)
安裝ntp包的目的是,為了保障各節點的時間能夠同步,否則安裝CDH過程中,會出現時間不同步的錯誤。
使用命令:apt-get install ntp 進行安裝
使用命令:service ntp start 啟動服務
6、安裝mysql資料庫(主節點需要,其它節點不需要安裝)使用命令安裝:apt-get install mysql-server
安裝完成後,修改一下配置檔案:vim /etc/mysql/mysql.conf/mysqld.cnf
在【mysqld】下,新增:
lower_case_table_names=1
default-time_zone = '+8:00'
skip_ssl
重啟mysql:service mysql restart
7、將下載的parcle檔案放到主節點的目錄下將parcle檔案上傳到主節點目錄,可以方便後續CM安裝parcle,提高安裝速度。
8、修改swappniness的值(四個節點都要)根據cloudera manager的建議,將值設定為10
命令:echo 10 > /proc/sys/vm/swappiness
四、測試配置好的環境 1、測試各節點是否網路通暢ping bigdata01
ping bigdata02
ping bigdata03
ping bigdata04
2、測試各節點免密登入ssh bigdata01
ssh bigdata02
ssh bigdata03
ssh bigdata04
都不需要輸入密碼,直接能夠登入上,說明此項配置成功
五、安裝Cloudera Manager並啟動Server以及Agent 1、檔案操作(主節點上操作)
首先解壓到/opt/資料夾下:
tar zxvf ~/cloudera-manager-xenial-cm5.15.2_amd64.tar.gz -C /opt/
然後在opt資料夾下,再建立以下幾個資料夾:
mkdir /opt/cloudera /opt/cloudera/parcels /opt/cloudera/parcel-repo
剪下過去:
mv ~/CDH-5.15.2-2.cdh5.15.2.p0.3-xenial.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel.sha
剪下過去:
mv ~/CDH-5.15.2-2.cdh5.15.2.p0.3-xenial.parcel /opt/cloudera/parcel-repo/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel
剪下過去:
mv ~/manifest.json /opt/cloudera/parcel-repo/manifest.json
刪除壓縮包:
rm -rf ~/cloudera-manager-xenial-cm5.15.2_amd64.tar.gz
2、新增Mysql驅動(主節點上操作)cp /usr/share/java/mysql-connector-java.jar /opt/cm-5.15.2/share/cmf/lib/mysql-connector-java.jar
3、建立資料庫(主節點上操作)這裡建立的資料庫,是用來存放各個大資料元件的元資料的。
這裡資料庫已經配置好了遠端root可以登入,因此在windows電腦上,使用Navicate連線資料庫。在Navicate裡之行下面的資料庫建立語句:
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '123456';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123456';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '123456';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY '123456';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '123456';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '123456';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
4、建立SCM資料庫(主節點上操作)
命令:/opt/cm-5.15.2/share/cmf/schema/scm_prepare_database.sh mysql scm scm
5、修改Agent配置(主節點上操作)
命令:vim /opt/cm-5.15.2/etc/cloudera-scm-agent/config.ini
修改server_host=localhost,改為server_host=192.168.0.29
6、複製到從節點(主節點上操作)將整個Cloudera Manager的檔案從主節點複製到其他三個從節點上:
scp -r /opt/cm-5.15.2 bigdata02:/opt/
scp -r /opt/cm-5.15.2 bigdata03:/opt/
scp -r /opt/cm-5.15.2 bigdata04:/opt/
7、建立cloudera-scm使用者(四個節點都要)命令:
useradd --system --home=/opt/cm-5.15.1/run/cloudera-scm-server --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
bigdata01:
bigdata02:
bigdata03:
bigdata04:
我這裡之前已經建立過了,所有會提示使用者已經存在。
8、更改資料夾所屬使用者和使用者組(四個節點都要)命令:
mkdir /opt/cloudera /opt/cloudera/parcels /opt/cloudera/parcel-repo
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
chown -R cloudera-scm:cloudera-scm /opt/cm-5.15.2
更改前:
更改後:
9、啟動Cloudera Manager Server(主節點)和Agent(四個節點都要)
在bigdata01節點上輸入命令:
/opt/cm-5.15.2/etc/init.d/cloudera-scm-server start
在bigdata02、bigdata03、bigdata04上輸入命令:
/opt/cm-5.15.2/etc/init.d/cloudera-scm-agent start
六、進入圖形化介面安裝CM和CDH 1、訪問CM的圖形化介面管理頁面
當啟動cloudera-scm-server成功後,等待幾分鐘之後,訪問主節點的7180埠,就可以進入到圖形化安裝介面。剛開始啟動完成之後,不能立馬訪問,因為程式還在資料庫建立響應的表:
建立完成後,scm資料庫中會有47張表格,之後再訪問7180埠,就能看到登入頁面了。
初始登入的賬號密碼為:admin admin
2、安裝過程可能會出現的問題
&n