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系統

//old-releases.ubuntu.com/releases/16.04.3/ubuntu-16.04.4-server-amd64.iso

關於作業系統的選擇,其實區別不大,這種級別的問題,對我這種水平的人,不太能夠感知得到,當然會繼續努力,去感知作業系統級別的問題。

2、cloudera manager相關下載

先下載好來,然後傳到各個節點上去,不然安裝過程中下載,速度慢得讓你分分鐘想砸鍵盤。

tar包下載:

//archive.cloudera.com/cm5/cm/5/cloudera-manager-xenial-cm5.15.2_amd64.tar.gz

 

parcles下載:

//archive.cloudera.com/cdh5/parcels/5.15.2/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel

//archive.cloudera.com/cdh5/parcels/5.15.2/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel.sha1

//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、安裝過程可能會出現的問題