cdh5.7.2+cento6.8集群搭建(虛擬機)

1 所需安裝包以及下載地址

1.1 操作系統

版本:CentOS 6.8
CDH Parcel文件下載地址

cdh安裝包

下載的文件CDH-5.7.2-1.cdh5.7.2.p0.18-el6.parcel.sha1,擴展名改為sha
注:其中el6表示系統版本6[對應centos6]

1.2 rpm文件

下載地址:
rpm文件

cloudera-manager安裝包

注:總共七個文件,jdk-6u31-linux-amd64.rpm可以不用下載

1.3 mysql-jdbc

注意:不要使用yum來安裝mysql驅動,這樣會默認加載了openjdk,會cdh不兼容openjdk
下載地址:mysql驅動

1.4 jdk

jdk-7u67-linux-x64.rpm[官網]

2 主機基礎配置(使用root配置)

如果使用非root用戶,需要配置

添加新用戶設置用戶密碼,并設置該用戶為免密碼sudo權限

#adduser  xxxx   //添加一個名為xxxx的用戶
#passwd  xxxx   //修改密碼

修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:

## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
xxxxx   ALL=(ALL)     NOPASSWD: ALL

配置hadoop為免密sudo用戶

2.1 每臺機器配置hosts

2.1.1 修改 hostname

sudo  vi  /etc/sysconfig/network 
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master   //修改HOSTNAME值

master 設置 hostname
slave1 設置 hostname

2.1.2 重啟網絡服務生效

service network restart

2.1.3 修改 ip 與主機名的對應關系(每一臺機)

sudo vi /etc/hosts
hosts修改圖

2.2 ssh免密碼登陸

2.2.1 生成密碼對(所有節點)

ssh-keygen  -t  rsa

生成其無密碼密鑰對,一路回車鍵,生成的密鑰對:id_rsa和id_rsa.pub,默認存儲在~/.ssh"目錄

密鑰生成結果

2.2.2 讓master能夠免密登錄其余節點

cat  ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys#把id_rsa.pub追加到授權的key里面去
chmod  644  ~/.ssh/authorized_keys#
scp  ~/.ssh/ authorized_keys  xxxx@hostnamexxx:~/.ssh#注:如若沒有scp命令,安裝yum install openssh-clients

如果希望可以每一個節點都可以免密碼登錄,也可以對其他節點重復此操作,但是不建議

免密碼登錄設置

檢查下authorized_keys傳到其他機器后的權限是否為644,不是則改為644,測試是否設置成功:在主節點上ssh hostname[1~3],若不需要密碼就能直接登陸進去了表示配置成功。

ssh slave1

2.3 關閉防火墻(每一個節點)

sudo  service iptables stop#臨時關閉
sudo  chkconfig iptables off#重啟后生效
關閉防火墻

2.4 關閉SELINUX(每一個節點)

修改/etc/selinux/config 文件的 SELINUX=disabled #重啟生效
查看 SELINUX 狀態:

關閉SELINUX
/usr/sbin/sestatus –v
#SELinux status: enabled( enabled:開啟; disabled:關閉)
#========重啟系統(如果已關閉可不用重啟)============
檢查SELINUX狀態

2.5 安裝jdk[每一個節點]

注意如果采取其他安裝,建議java解壓目錄要在/usr/java,不然cloudera manager 容易找不到jdk

官網的安裝jdk步驟
rpm -ivh jdk-7u67-linux-x64.rpm
安裝jdk

進入/etc/profile,修改環境變量

export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
修改環境變量

2.6 配置ntp

master節點作為ntp服務器與外界對時中心同步時間,
隨后對所有datanode節點提供時間同步服務,所有datanode節點以master節點為基礎同步時間。
所有節點安裝相關組件

sudo  yum install ntp

所有節點配置開機啟動

sudo  chkconfig ntpd on

檢查是否設置成功

sudo  chkconfig --list ntpd #其中2-5為on狀態就代表成功

2.6.1 主節點設置:

#sudo vi  /etc/ntp.conf 進入文件
server 0.cn.pool.ntp.org perfer
server 1.asia.pool.ntp.org
server 3.asia.pool.ntp.org
server ntp.sjtu.edu.cn   

主節點與外界時間中心同步時間

2.6.2 slave節點設置:

#sudo vi  /etc/ntp.conf 進入文件
server master
slave節點根據master同步時間

保存退出

sudo  ntpdate -u 202.112.29.82 
sudo  ntpdate -u 202.120.2.101 #請先使用ntpdate手動同步一下時間[每個節點]
sudo  service  ntpd  restart #配置完成后啟動服務[每個節點]
sudo  ntpdate  -u  master#slave節點以master節點為基礎同步時間。
sudo  ntpstat #查看同步效果

檢查同步狀態

注:如果ntpstat狀態未同步,可以等待5~10分鐘再查看。
5到10分鐘后

檢查同步狀態

3.Cloudera Manager安裝


安裝文件:
cloudera-manager-agent-5.7.2-1.cm572.p0.17.el6.x86_64.rpm #主節點安裝,slave安裝(可選)
cloudera-manager-daemons-5.7.2-1.cm572.p0.17.el6.x86_64.rpm #主節點安裝,slave安裝(可選)
cloudera-manager-server-5.7.2-1.cm572.p0.17.el6.x86_64.rpm #主節點安裝
cloudera-manager-server-db-2-5.7.2-1.cm572.p0.17.el6.x86_64.rpm #主節點安裝,內置數據庫,可選
enterprise-debuginfo-5.7.2-1.cm572.p0.17.el6.x86_64.rpm


3.1 master安裝

在master 節點安裝daemons、server、agent(先裝daemons)

yum --nogpgcheck localinstall cloudera-manager-daemons-5.7.2-1.cm572.p0.17.el6.x86_64.rpm
yum --nogpgcheck localinstall cloudera-manager-server-5.7.2-1.cm572.p0.17.el6.x86_64.rpm
yum --nogpgcheck localinstall cloudera-manager-agent-5.7.2-1.cm572.p0.17.el6.x86_64.rpm#注:agent安裝需要聯網

3.2 slave安裝

在節點安裝daemons、agent(先裝daemons)

yum --nogpgcheck localinstall cloudera-manager-daemons-5.7.2-1.cm572.p0.17.el6.x86_64.rpm
yum --nogpgcheck localinstall cloudera-manager-agent-5.7.2-1.cm572.p0.17.el6.x86_64.rpm#注:agent安裝需要聯網

3.3 配置主節點以及其他節點agent的config.ini文件

在每個 Cloudera Manager Agent 主機上,通過在
/etc/cloudera-scm-agent/config.ini 配置文件中設置以下屬性,
配置 Cloudera Manager Agent 以指向 Cloudera Manager Server

#sudo vi /etc/cloudera-scm-agent/config.ini 進入文件
server_host=master
設置server_host

4 Master安裝mysql 并配置權限等。

需要配置數據庫,此教程選用最常用的mysql,其中oozie服務包括工作流的信息,可能導致數據會增加很多
安裝mysql并檢查服務

yum install mysql-server mysql mysql-deve #注:需要聯網
chkconfig mysqld on
service mysqld start

進入mysq密碼配置

mysql –u root
use mysql
update user set password=password('hadoop') where user='root';
update user set password=password('hadoop') where host='localhost';
update user set password=password('hadoop') where host='master';

重啟服務

service mysqld restart

配置數據庫權限

mysql -u root -phadoop
create database cloudera
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
flush privileges;

5 在master節點配置cloudera manager 數據庫并啟動cm的server及agent程序

master操作步驟

  1. 拷貝mysql-connector-java-3.1.14-bin.jar 到 /usr/share/java 下并重命名mysql-connector-java.jar
  2. 運行
/usr/share/cmf/schema/scm_prepare_database.sh -h master mysql cloudera root hadoop
  1. 啟動cm server
service cloudera-scm-server start
  1. 添加cm server服務
chkconfig cloudera-scm-server on
  1. 啟動cm agent
sudo service cloudera-scm-agent start
  1. 添加cm agent服務
chkconfig cloudera-scm-agent on
啟動cm

slave節點上重復其中兩步

  1. 啟動cm agent
sudo service cloudera-scm-agent start
  1. 添加cm agent服務
chkconfig cloudera-scm-agent on

6 CDH5 安裝[這一步所需時間較長]

sudo service httpd start #在master啟動http,能夠后面找到對應的parcel包

將下載的parcel文件及官方網站上獲取對應版本的 sha 文件和 manifest.json文件上傳至/opt/cloudera/parcel-repo目錄下。


parcel應該放在/opt/cloudera/parcel-rep

啟動瀏覽器,開始集群web安裝配置
Master:7180 => 192.168.75.141:7180 賬號:admin 密碼admin

web配置界面
選擇Cloudera Express
繼續
勾選管理的機器

安裝CDH及某些服務

cdhparcel包已經放到對應的庫, 不需要下載,其他的服務下載速度較慢,如果時間不那么充足可以日后再下載和添加服務

檢查審核
#針對第一個警告
echo 'vm.swappiness=10'>> /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
預防警告
勾選所有服務

選擇所有服務

此次安裝使用默認角色

角色分配,此處使用默認

測試數據庫連接
#需要預先建立測試數據庫,重新運行
create database hive character set utf8;
create database oozie  character set utf8;

測試數據庫連接
集群設置
監控界面
集群使用情況

因為虛擬機內存和空間不夠,導致一些警告某些監控無法完全安裝成功。
此外,啟動所有服務那一步安裝時間非常長,耐心等待。

7 測試組件

7.1 驗證MR程序

# 添加用戶和組
groupadd cdh-dev
useradd -g cdh-dev cdh-dev
lid cdh-dev

# hadoop創建相應的用戶
sudo -u hdfs hdfs dfs -mkdir /user/cdh-dev
sudo -u hdfs hdfs dfs -chown cdh-dev:cdh-dev /user/cdh-dev

# 運行wordcount程序
su - cdh-dev
echo "Hello world Bye world" > file0
echo "Hello hadoop Goodbye hadoop" > file1
hdfs dfs -mkdir -p /user/cdh-dev/wordcount/input
hdfs dfs -put file* /user/cdh-dev/wordcount/input
hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-examples.jar wordcount wordcount/input wordcount/output
hdfs dfs -getmerge wordcount/output output.txt

cat output.txt

7.2 驗證hive

su - cdh-dev
echo "Alex, Cloudera" > hive-data
echo "fd, jinz" >> hive-data
hdfs dfs -mkdir -p hive/table-data-files
hdfs dfs -put hive-data hive/table-data-files
vi hive-data.sql
create external table test(
name string,
company string
)
row format delimited
fields terminated by ','
stored as textfile
location '/user/cdh-dev/hive/table-data-files'
hive -f hive-data.sql
hive -e "select * from test"
hive測試結果

7.3 驗證HBase

create 'record', {NAME => 'user'}
put 'record', 'Alex', 'user:company', 'Cloudera'
get 'record', 'Alex'
hbase測試結果
# 用vi創建文件 hbase_on_hive.hql
create external table hbase_on_hive(
name string,
company string
)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ( "hbase.columns.mapping" = ":key, user:company" )
tblproperties ( "hbase.table.name" = "record" );

hive -f hbase_on_hive.hql
hive -e "select * from hbase_on_hive" 
hbase測試結果

附錄監控界面

192.168.75.141 - master

  • 整體監控界面:http://192.168.75.141:7180
  • 集群任務管理監控界面:http://192.168.75.141:8088
  • hive監控界面:http://192.168.75.141:10002/
  • spark監控界面:http://192.168.75.141:18088/
  • hue使用界面:http://192.168.75.141:8888
  • hdfs監控界面:http://192.168.75.141:50070
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容