centos 6.5 cms 5.3.6 cdh 5.3.6 安裝
Hadoop版本:
Apache:開源免費
CDH: Cloudera
只支援64位作業系統
HDP: Hortonworks
企業版本:
apache -> cdh | hdp
面試題:
apache與cdh的比較??為什麼選擇了cdh???
需要安裝元件介紹:
Zk:
Hdfs:
Yarn:
叢集種類和規模介紹:
開發:(大資料中少)
測試:
生產:
安裝前環境準備:
安裝cm 和 cdh的方法大概有如下:
1、tar 包
http://archive.cloudera.com/cm5/cm/5/
http://archive.cloudera.com/cdh5/cdh/5/
2、rpm 包
http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.3.6/
http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/
3、parcels 包
cdh 4.1.2 以後才有的
官方推薦的安裝方式
Cloudera Manager進行安裝
環境介紹:
Centos 6.5
hadoop01 192.168.216.111
hadoop02 192.168.216.112
hadoop03 192.168.216.113
禁Selinux:(不關閉安裝cm第一步就出錯)
禁用selinux,vi /etc/selinux/config,按照圖示
檢視selinux 的狀態
/usr/sbin/sestatus -v
disabled 即關閉狀態
如果沒關閉,則用如下命令關閉,不用重啟機器。實在不行重啟機器。
setenforce 0
[[email protected] ~]# /usr/sbin/sestatus -v
SELinux status: disabled
解除安裝自帶open JDK
$ sudo rpm -qa|grep java
$ sudo rpm -e --nodeps *.jdk
能出來如下即可:怎麼安裝都可以
/usr/local/jdk1.7.0_79/bin/java
[[email protected] ~]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
相互設定ssh免密登陸(所有節點):
[[email protected] ~]# ssh-keygen -t rsa 一路回車
[[email protected] ~]# ssh-copy-id hadoop01
[[email protected] ~]# ssh-copy-id hadoop02
[[email protected] ~]# ssh-copy-id hadoop03
[[email protected] ~]# ssh-keygen -t rsa
[[email protected] ~]# ssh-copy-id hadoop01
[[email protected] ~]# ssh-copy-id hadoop02
[[email protected] ~]# ssh-copy-id hadoop03
[[email protected] ~]# ssh-keygen -t rsa
[[email protected] ~]# ssh-copy-id hadoop01
[[email protected] ~]# ssh-copy-id hadoop02
[[email protected] ~]# ssh-copy-id hadoop03
安裝配置MySQL(主節點)
通過yum install mysql-server安裝mysql伺服器(怎麼安裝都行)。chkconfig mysqld on設定開機啟動,並service mysql start啟動mysql服務,並根據提示設定root的初試密碼:mysqladmin -u root password 'root'。
mysql -uroot -pxxxx進入mysql命令列,建立以下資料庫:
#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
# Oozie
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#Hue
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#授權root使用者在主節點擁有所有資料庫的訪問許可權
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
ntpd 安裝:(保證每個節點時間同步)
安裝這個元件主要是用來做時間同步(每個節點)
叢集中所有主機必須保持時間同步,如果時間相差較大會引起各種問題。 具體思路如下:
master節點作為ntp伺服器與外界對時中心同步時間,隨後對所有datanode節點提供時間同步服務。
所有datanode節點以master節點為基礎同步時間。
所有節點安裝相關元件:yum install ntp。完成後,所有配置開機啟動:chkconfig ntpd on,檢查是否設定成功:chkconfig --list ntpd其中2-5為on狀態就代表成功。
主節點:
# vi /etc/ntp.conf
#server 210.72.145.44 #這是中國國家授時中心的IP (不可用,可搜尋國內常用ntp伺服器ip)
server s2b.time.edu.cn #這個是清華大學ntp伺服器ip之一 保證可用即可
啟動:service ntpd start
開機啟動:chkconfig ntpd on
檢視NTP服務的執行狀況: watch ntpq -p
其他節點:hadoop02 hadoop03 做如上步驟後啟動即可
然後啟動:service ntpd start
設定檔案開啟數量和使用者最大程序數
檔案開啟數量
ulimit -a
使用者最大程序數
ulimit -u
設定
sudo vi /etc/security/limits.conf
內容:
soft nofile 65535
hard nofile 65535
soft nproc 32000
hard nproc 32000
軟體下載網址:
http://archive.cloudera.com/cm5/
cm-5.3.6 bin檔案
http://archive.cloudera.com/cm5/installer/5.3.6/
http://archive.cloudera.com/cm5/installer/5.3.6/cloudera-manager-installer.bin
cm-5.3.6 依賴rpm包
http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.3.6/
http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.3.6/RPMS/x86_64/
安裝Cloudera Manager Server 和Agent:
主節點解壓安裝
cloudera manager的目錄預設位置在/opt下,解壓:tar xzvf cloudera-manager*.tar.gz將解壓後的cm-5.3.6和cloudera目錄放到/opt目錄下。
[[email protected] opt]# tar -zxvf /home/cloudera-manager-el6-cm5.3.6_x86_64.tar.gz -C /opt/
為Cloudera Manager 5建立資料庫
首先需要去MySql的官網下載JDBC驅動,http://dev.mysql.com/downloads/connector/j/,解壓後,找到mysql-connector-java-5.1.6-bin.jar,放到/opt/cm-5.3.6/share/cmf/lib/中。
在主節點初始化CM5的資料庫:
[[email protected] opt]# /opt/cm-5.3.6/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot --scm-host localhost scm scm scm
Agent配置
修改/opt/cm-5.3.6/etc/cloudera-scm-agent/config.ini中的server_host為主節點的主機名。
[[email protected] opt]# vim /opt/cm-5.3.6/etc/cloudera-scm-agent/config.ini
serverhost = hadoop01
同步Agent到其他節點
scp -r /opt/cm-5.3.6/ [email protected]:/opt/
scp -r /opt/cm-5.3.6/ [email protected]:/opt/
在所有節點建立cloudera-scm使用者:
useradd --system --home=/opt/cm-5.3.6/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
準備Parcels,用以安裝CDH5
將CHD5相關的Parcel包放到主節點的/opt/cloudera/parcel-repo/目錄中。
如果沒有對應目錄,則自己建立:(原則上只在主節點即可)
[[email protected] ~]# mkdir -p /opt/cloudera/parcel-repo/
[[email protected] ~]# mkdir -p /opt/cloudera/parcel-repo/
[[email protected] ~]# mkdir -p /opt/cloudera/parcel-repo/
相關的檔案如下:
CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel
CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel.sha1
manifest.json
[[email protected] opt]# cp /home/hadoop/cdh-5.3.6/CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel /opt/c
loudera/parcel-repo/CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel
[[email protected] opt]# cp /home/hadoop/cdh-5.3.6/CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel.sha
[[email protected] opt]# cp /home/hadoop/cdh-5.3.6/manifest.json /opt/cloudera/parcel-repo/
最後將CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel.sha1,重新命名為CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel.sha,這點必須注意,否則,系統會重新下載CDH-5.3.6-1.cdh5.3.6.p0.11-el6.parcel.sha1檔案。
相關啟動指令碼:
通過[[email protected] opt]# /opt/cm-5.3.6/etc/init.d/cloudera-scm-server start啟動服務端。
通過[[email protected] opt]# /opt/cm-5.3.6/etc/init.d/cloudera-scm-agent start啟動Agent服務。
我們啟動的其實是個service指令碼,需要停止服務將以上的start引數改為stop就可以了,重啟是restart。
CDH5的安裝配置
Cloudera Manager Server和Agent都啟動以後,就可以進行CDH5的安裝配置了。
Cms的架構圖:
Cloudera manager server (CMS)想管理叢集,則需要有自己的小弟cloudare agent,這裡相當於主從架構,cms推薦將自己的這臺伺服器也作為agent,所以我們需要在自己的hadoop01
、hadoop02、hadoop03上安裝agent。(然後使用cms介面操作即可)
cms瀏覽器操作:
這時可以通過瀏覽器訪問主節點的7180埠測試一下了(由於CM Server的啟動需要花點時間,這裡可能要等待一會才能訪問),預設的使用者名稱和密碼均為admin:
登入後選擇免費版本一直繼續即可
如下是環境檢測錯誤,不同版本錯誤不一樣:
問題 1:
個別主機正確地解析了自己的主機名稱。
查詢存在衝突的初始指令碼時發現以下錯誤。利用‘chkconfig’來禁用初始指令碼以避免Cloudera Manager 管理的後臺程式存在衝突。通常,您可以繼續進行安裝,但重啟後,由於衝突流程啟動可能失敗。
將頭兩行去掉
將域名和主機名調換位置
將dns配置成本地閘道器
如果為虛擬機器的區域網,不建議在/etc/hosts中配置域名
問題 2:
Cloudera 建議將 /proc/sys/vm/swappiness設定為 0。當前設定為60。使用sysctl 命令在執行時更改該設定並編輯/etc/sysctl.conf 以在重啟後儲存該設定。您可以繼續進行安裝,但可能會遇到問題,Cloudera Manager報告您的主機由於交換執行狀況不佳。以下主機受到影響:
[[email protected] opt]# sysctl -w vm.swappiness=0
[[email protected] opt]# echo "vm.swappiness=0" >> /etc/sysctl.conf
[[email protected] opt]# sysctl -w vm.swappiness=0
[[email protected] opt]# echo "vm.swappiness=0" >> /etc/sysctl.conf
[[email protected] opt]# sysctl -w vm.swappiness=0
[[email protected] opt]# echo "vm.swappiness=0" >> /etc/sysctl.conf
修正後的結果:
根據自己需求選擇安裝大資料元件:
由於是虛擬機器,這一步就安裝cm給的預設的:
為hive 和 Activity Monitor設定資料庫名、使用者名稱和密碼: (最好測試連線通過才繼續)
叢集設定的配置:可以選擇預設
錯誤:
看日誌是缺少mysql的jar包:
[[email protected] ~]# cp /home/mysql-connector-java-5.1.6-bin.jar /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/hive/lib/
[[email protected] ~]# cp /home/mysql-connector-java-5.1.6-bin.jar /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/hive/lib/
[[email protected] ~]# cp /home/mysql-connector-java-5.1.6-bin.jar /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/hive/lib/
[[email protected] ~]# cp /home/mysql-connector-java-5.1.6-bin.jar /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/oozie/lib/
[[email protected] ~]# cp /home/mysql-connector-java-5.1.6-bin.jar /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/oozie/lib/
[[email protected] ~]# cp /home/mysql-connector-java-5.1.6-bin.jar /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/oozie/lib/
[[email protected] ~]# cp /home/mysql-connector-java-5.1.6-bin.jar /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/hue/
[[email protected] ~]# cp /home/mysql-connector-java-5.1.6-bin.jar /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/hue/
[[email protected] ~]# cp /home/mysql-connector-java-5.1.6-bin.jar /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/hue/
全部服務執行通過後繼續:
安裝完成:
完成後回到主頁面可以看到各個服務的狀態: hdfs有點問題
測試:最好切換的hdfs使用者或者關閉許可權。我的hdfs稍微有問題,沒有home目錄。
測試hdfs:
bash-4.1$sudo vi /home/words
bash-4.1$hdfs dfs -put /home/words /
bash-4.1$hdfs dfs -cat /words
測試mapreduce:
bash-4.1$ls /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar
bash-4.1$yarn jar /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount /words /out/00
bash-4.1$hdfs dfs -cat /out/00/part-r-00000
測試hive:
bash-4.1$ hive
hive>create table if not exists t1(id string);
hive> load data local inpath '/home/words' into table t1;
hive> select * from t1;
OK
hello world
hi world
hadoop spark cdh nice
good good good
Time taken: 0.698 seconds, Fetched: 4 row(s)
hive> select count(id) from t1; 看看hive產生的mr是否能跑
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
................
OK
4
Time taken: 35.851 seconds, Fetched: 1 row(s)
測試hbase:
bash-4.1$ hbase shell
17/12/20 23:20:45 INFO Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.98.6-cdh5.3.6, rUnknown, Tue Jul 28 15:19:46 PDT 2015
hbase(main):001:0> create 'test','cf1'
0 row(s) in 4.2150 seconds
=> Hbase::Table - test
hbase(main):006:0> put 'test','rk1','cf1:name','zs'
0 row(s) in 0.1320 seconds
hbase(main):007:0> put 'test','rk1','cf1:sex','1'
0 row(s) in 0.0160 seconds
hbase(main):008:0> put 'test','rk1','cf1:age','28'
0 row(s) in 0.0110 seconds
hbase(main):009:0> scan 'test'
ROW COLUMN+CELL
rk1 column=cf1:age, timestamp=1513783403310, value=28
rk1 column=cf1:name, timestamp=1513783385065, value=zs
rk1 column=cf1:sex, timestamp=1513783394462, value=1
1 row(s) in 0.0440 seconds
檢視hdfs的web ui監控:
檢視yarn的web ui監控和historyserver的監控:
Hue 的web ui監控:
第一次登陸隨便輸入使用者名稱和密碼,記住即可:
需要簡單的配置:新手直接全部預設即可
來一個簡單的對應的hive的查詢:
配置:
在每一個元件的配置去查詢即可。如hive配置:
使用者管理: 管理--->使用者--->新增使用者/改密碼
新增後:
退出admin登入: 注意cdh使用者只能讀,不能修改、配置、安裝、解除安裝等。
再次向群集中新增服務:
可以修改叢集名:
選擇新增服務: 這裡只能新增單個服務
然後高階配置和升級HA:
............................................待續................................................................