1、機子分配
注意,本安裝教程是在真機上進行,而非虛擬機。另,這次搭建主要的目的是搭建測試環境,讓Hadoop各組件可以運做起來便可,完成搭建後,將用小數據量進行相關數據的計算與測試。線上環境將會使用阿里雲主機。java
如下是四臺真機配置:mysql
機子內網IP地址linux |
主機名sql |
內存大小shell |
磁盤大小數據庫 |
CPUjson |
192.168.0.29ubuntu |
bigdata01(主)vim |
8GBwindows |
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
2、下載相關文件
一、ubuntu系統
http://old-releases.ubuntu.com/releases/16.04.3/ubuntu-16.04.4-server-amd64.iso
關於操做系統的選擇,其實區別不大,這種級別的問題,對我這種水平的人,不太可以感知獲得,固然會繼續努力,去感知操做系統級別的問題。
二、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裏面取出來的。
3、系統環境的設置
一、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
二、修改hosts文件(四個節點都要)
命令:vim /etc/hosts
將ip和主機名添加到文件末尾:
注意ip和主機名修改成你本身的。
三、免密登陸ssh設置(四個節點都要)
這一步很重要,否則在安裝CM的過程當中會出錯,必定要完成這一步。
首先,在每一個節點上分別生成密鑰
命令:ssh-keygen -t rsa
一路回車,結束後,在/root/.ssh文件夾中,會有id_rsa,id_rsa.pub兩個文件。
每一個節點都生成密鑰成功後,而後咱們把每一個節點的id_rsa.pub文件中的內容,集中到一個名爲authorized_keys文件中,而後把這個文件分別傳送到各節點的.ssh文件夾中,這樣咱們就能夠在任意節點使用ssh命令免密登陸到別的節點上去。
最終,.ssh文件夾中,咱們能夠看到如下幾個文件:
試試效果:
能夠看到,這裏並無提示要求咱們輸入密碼登陸到bigdata02機子上。
四、安裝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,出現下面的提示,則說明安裝成功了:
五、安裝ntp(四個節點都要)
安裝ntp包的目的是,爲了保障各節點的時間可以同步,不然安裝CDH過程當中,會出現時間不一樣步的錯誤。
使用命令:apt-get install ntp 進行安裝
使用命令:service ntp start 啓動服務
六、安裝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
七、將下載的parcle文件放到主節點的目錄下
將parcle文件上傳到主節點目錄,能夠方便後續CM安裝parcle,提升安裝速度。
八、修改swappniness的值(四個節點都要)
根據cloudera manager的建議,將值設定爲10
命令:echo 10 > /proc/sys/vm/swappiness
4、測試配置好的環境
一、測試各節點是否網絡通暢
ping bigdata01
ping bigdata02
ping bigdata03
ping bigdata04
二、測試各節點免密登陸
ssh bigdata01
ssh bigdata02
ssh bigdata03
ssh bigdata04
都不須要輸入密碼,直接可以登陸上,說明此項配置成功
5、安裝Cloudera Manager並啓動Server以及Agent
一、文件操做(主節點上操做)
首先解壓到/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
二、添加Mysql驅動(主節點上操做)
cp /usr/share/java/mysql-connector-java.jar /opt/cm-5.15.2/share/cmf/lib/mysql-connector-java.jar
三、建立數據庫(主節點上操做)
這裏建立的數據庫,是用來存放各個大數據組件的元數據的。
這裏數據庫已經配置好了遠程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';
四、建立SCM數據庫(主節點上操做)
命令:/opt/cm-5.15.2/share/cmf/schema/scm_prepare_database.sh mysql scm scm
五、修改Agent配置(主節點上操做)
命令:vim /opt/cm-5.15.2/etc/cloudera-scm-agent/config.ini
修改server_host=localhost,改成server_host=192.168.0.29
六、複製到從節點(主節點上操做)
將整個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/
七、建立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:
我這裏以前已經建立過了,全部會提示用戶已經存在。
八、更改文件夾所屬用戶和用戶組(四個節點都要)
命令:
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
更改前:
更改後:
九、啓動Cloudera Manager Server(主節點)和Agent(四個節點都要)
在bigdata01節點上輸入命令:
/opt/cm-5.15.2/etc/init.d/cloudera-scm-server start
在bigdata0二、bigdata0三、bigdata04上輸入命令:
/opt/cm-5.15.2/etc/init.d/cloudera-scm-agent start
6、進入圖形化界面安裝CM和CDH
一、訪問CM的圖形化界面管理頁面
當啓動cloudera-scm-server成功後,等待幾分鐘以後,訪問主節點的7180端口,就能夠進入到圖形化安裝界面。剛開始啓動完成以後,不能立馬訪問,由於程序還在數據庫建立響應的表:
建立完成後,scm數據庫中會有47張表格,以後再訪問7180端口,就能看到登陸頁面了。
初始登陸的帳號密碼爲:admin admin
二、安裝過程可能會出現的問題