CDH5.15安裝

CDH5.15安裝指南

1.集羣規劃

CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop衆多分支中的一種,由Cloudera維護,基於穩定版本的Apache Hadoop構建,並集成了不少補丁,可直接用於生產環境。html

Cloudera Manager則是爲了便於在集羣中進行Hadoop等大數據處理相關的服務安裝和監控管理的組件,對集羣中主機、Hadoop、Hive、Spark等服務的安裝配置管理作了極大簡化。java

本文安裝選擇全離線安裝方式,主機6臺,系統版本CentOS6.7。具體配置如圖所示:node

 

 

 

2.環境準備

2.1 配置hosts

(1)在每臺機器上修改hostnamemysql

#查看當前host
hostname 
#臨時修改hostname,重啓後無效
hostname uat2 
#在此處永久修改
vim /etc/sysconfig/network
         NETWORKING=yes
         #修改主機名
         HOSTNAME=uat2.hadoop.feidai.com

 

(2)修改每臺機器的hosts文件linux

vim /etc/hosts
#添加如下主機列表
172.16.100.217   uat1.hadoop.feidai.com uat1
172.16.100.218   uat2.hadoop.feidai.com uat2
172.16.100.219   uat3.hadoop.feidai.com uat3
172.16.100.220   uat4.hadoop.feidai.com uat4
172.16.100.221   uat5.hadoop.feidai.com uat5
172.16.100.222   uat6.hadoop.feidai.com uat6

 

 

2.2 關閉防火牆和selinux

每臺機器上進行關閉防火牆和禁用SELINUX服務操做web

service iptables start  #啓動防火牆
service iptables status #查看防火牆的狀態
service iptables stop   #關閉防火牆
chkconfig iptables off  #防止服務器重啓開啓防火牆
sestatus v             #查看selinux 的狀態  
##關閉 selinux
vim /etc/selinux/config
         SELINUX=disabled
         # SELINUXTYPE= can take one of these two values:
         #     targeted - Targeted processes are protected,
         #     mls - Multi Level Security protection.
         SELINUXTYPE=targeted

 

 

2.3 免密登陸配置

主節點上,設置SHH無密碼登陸。此處選擇uat6做爲主節點。sql

#在主節點上執行
ssh-keygen -t rsa                  #一路回車,生成無密碼的密鑰對。
#將公鑰添加到認證文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#並設置authorized_keys的訪問權限:
chmod 600 ~/.ssh/authorized_keys
#scp文件到全部從節點:
scp ~/.ssh/authorized_keys root@uat2:~/.ssh/

以後在主節點上用ssh 主機名的方式就能免密登陸主機了。數據庫

 

 

2.4 掛載系統鏡像

每臺機器上掛載系統鏡像並配置在yum源中apache

#建立系統鏡像的掛載目錄
mkdir -pv /mnt/cdrom  
#掛載系統鏡像
mount -o loop /home/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/cdrom 
##新建系統鏡像的 yum 
vim /etc/yum.repos.d/os.repo
         #添加本地os yum
         [os.repo]     
         name=os.repo    
         baseurl=file:///mnt/cdrom   
         enabled=1      
         gpgcheck=0    
yum repolist     #配置完後經過yum命令檢查是否配置成功

 

yum源列表截圖json

 

 

2.5 安裝HTTPD服務

在集羣中選擇一臺主機安裝HTTPD服務(此處選擇UAT2主機),用於以後的Yum源配置以及CM包配置,將下載好的包放在暴露的HTTP資源目錄下,經過http請求能下載到包文件。

yum clean all                      #清理yum 的緩存
yum repolist all                   #查看已有的yum
yum info httpd                     #查看httpyum源的詳細信息
yum install -y httpd               #yum 安裝httpd 服務
service httpd start                #啓動httpd 服務
chkconfig --level 2345 httpd on    #添加開機啓動服務

 

*linux apache默認目錄在:/var/www/html

經過訪問安裝了服務的主機80端口,能夠看到下面的內容,表示安裝成功

 

 

2.6 開啓ntpd授時服務

每臺機器上安裝ntpd服務,保證時間的同步

#yum源安裝ntp
yum install  -y ntp
#修改配置文件
vim /etc/ntp.conf
         server uat2 iburst                       #目標服務器網絡位置 uat2
         #server 1.centos.pool.ntp.org iburst     #註釋掉
         #server 2.centos.pool.ntp.org iburst     #註釋掉
         #server 3.centos.pool.ntp.org iburst     #註釋掉
 
systemctl start ntpd.service  #啓動服務
systemctl enable ntpd.service  #設置爲開機啓動
systemctl status ntpd.service   #查看運行狀態

 

配置完成後,在每臺機器上執行date命令,查看時間是否同步成功。

 

 

 

2.7 配置遠程yum 源

在2.5小節安裝httpd服務的時候,把httpd服務安裝到了uat2上,一方面是爲了配置本節中的遠程yum源。將下載好的包放到http默認訪問目錄中,經過yum配置文件指定URL,便達到了遠程yum源的功能。

下面將下載好的包放到uat2的相應的目錄中去(mysql、cm、cdh)。

/var/www/html/mariadb10.0.14
/var/www/html/cm5150
/var/www/html/cdh5150

 

而後在每臺機器上配置好遠程yum源的地址,注意httpd服務是安裝在uat2中的。Uat2的IP爲172.16.100.218

#配置mariadb yum 
vim /etc/yum.repos.d/mariadb.repo
         #添加如下內容
         [mariadb]" 
         name = http://172.16.100.218/mariadb10.0.14
         baseurl = h
         enabled=1
         gpgcheck=0
 
#配置 cm  yum 
vim /etc/yum.repos.d/cm.repo
         #添加如下內容
         [cm]
         name = Cloudera Manager
         baseurl = http://172.16.100.218/cm5150
         enabled=1
         gpgcheck=0
 
#配置cdhyum
vim /etc/yum.repos.d/cdh.repo
         #添加如下內容
         [cdh]
         name = CDH
         baseurl = http://172.16.100.218/cdh5150
         enabled=1
         gpgcheck=0

 

 配置好遠程yum源後,在每臺機器輸入命令yum repolist 查看是否配置成功,在下圖中紅框的列表上出現了對應的yum源,說明配置成功。

此處yum源的配置主要做用是爲了接下來Mysql的安裝、cloudera-manager組件的安裝,因此必須確保yum源中有相應的安裝包。

#檢查是否有相應的包文件
yum info MariaDB-server
yum info cloudera-manager-server
yum info cloudera-manager-agent
yum info cloudera-manager-daemons

 

 

 

2.8 安裝mysql並建立相關的庫

在上一小節中,配置好了mysql的遠程yum源,那麼經過yum install命令便可安裝mysql服務。

選擇一臺機器做爲mysql的服務端,進行服務端的安裝,這裏選擇Uat2做爲server

#安裝服務端 僅須要在uat2上安裝
yum install -y MariaDB-server 
#其它服務器安裝客戶端
yum install -y MariaDB-client  
 
#修改服務端配置文件:不區分大小寫 以及 utf8字符集
vim /etc/my.cnf.d/server.cnf
         [mysqld]
         lower_case_table_names=1
         character_set_server = utf8
 
#啓動mysql 服務
service mysql start  

啓動mysql服務成功後,要設置root帳戶的密碼。

#第一次可無密登陸
mysql -uroot 
#執行如下sql語句進行初始密碼的設置
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;

建立cdh相關的庫

create database hive DEFAULT CHARSET utf8;
create database amon DEFAULT CHARSET utf8;
create database hue DEFAULT CHARSET utf8;
create database oozie default charset utf8;
create database activity_monitor default charset utf8;
create database reports_manager default charset utf8;

 

 

建立相關的用戶並賦予庫操做權限和外網訪問權限

#建立相關用戶
use mysql;
insert into user(Host,User,Password) values("%","hive",password("hive"));
insert into user(Host,User,Password) values("%","amon",password("amon"));
insert into user(Host,User,Password) values("%","hue",password("hue"));
insert into user(Host,User,Password) values("%","oozie",password("oozie"));
insert into user(Host,User,Password) values("%","activity_monitor",password("activity_monitor"));
insert into user(Host,User,Password) values("%","reports_manager",password("reports_manager"));
 
#賦予權限
GRANT ALL PRIVILEGES ON *.* TO 'cmf'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'cmf'@'localhost'IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%'IDENTIFIED BY 'hive' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost'IDENTIFIED BY 'hive' WITH GRANT OPTION; 
GRANT ALL PRIVILEGES ON *.* TO 'hue'@'%'IDENTIFIED BY 'hue' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'hue'@'localhost'IDENTIFIED BY 'hue' WITH GRANT OPTION; 
GRANT ALL PRIVILEGES ON *.* TO 'amon'@'%'IDENTIFIED BY 'amon' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'amon'@'localhost'IDENTIFIED BY 'amon' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%'IDENTIFIED BY 'oozie' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'localhost'IDENTIFIED BY 'oozie' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'activity_monitor'@'%'IDENTIFIED BY 'activity_monitor' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'activity_monitor'@'localhost'IDENTIFIED BY 'activity_monitor' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'reports_manager'@'%'IDENTIFIED BY 'reports_manager' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'reports_manager'@'localhost'IDENTIFIED BY 'reports_manager' WITH GRANT OPTION;
 
#刷新
flush privileges;
 
#查看用戶權限
show grants for hue;

 

 

 

2.10 安裝JDK

此處安裝jdk1.7版本,先查看本機是否有安裝其它版本的jdk,如有,則先卸載。

在每臺機器上安裝jdk

#查看是否安裝有jdk
rpm -qa|grep jdk  
#卸載相關jdk
rpm -e  --nodeps   上步驟搜索出的包全名
 
#安裝jdk1.7
yum install -y oracle-j2sdk1.7

 

 

2.11 安裝cloudera-manager組件

選擇一臺主機安裝server端,此處選擇Uat6做爲server端

所有主機中安裝agent和daemons

#uat6上安裝server
yum install -y cloudera-manager-server 
 
#全部主機上安裝agentdaemons
yum install -y cloudera-manager-agent cloudera-manager-daemons

在安裝了server端的機器上(此處是uat6),修改數據庫配置文件

#在安裝了server的機器上
vim /etc/cloudera-scm-server/db.properties
         com.cloudera.cmf.db.type=mysql
         com.cloudera.cmf.db.host=172.16.100.218
         com.cloudera.cmf.db.name=cmf
         com.cloudera.cmf.db.user=cmf
         com.cloudera.cmf.db.setupType=EXTERNAL
         com.cloudera.cmf.db.password=123456
 
#設置開機自啓
chkconfig --level 2345 cloudera-scm-server on

在安裝了agent的機器上(每臺機器),修改指向的server端host和ip

vim /etc/cloudera-scm-agent/config.ini
         [General]
         # Hostname of the CM server.
         server_host=uat6
         # Port that the CM server is listening on.
         server_port=7182
 
#設置開機自啓
chkconfig --level 2345 cloudera-scm-agent on

 

 

 

在cm server端配置好mysql的鏈接驅動,並初始化cmf數據庫

ln –s /usr/java/mysql-connector-java-5.1.42-bin.jar /usr/share/java/mysql-connector-java.jar
 
#初始化CMF數據庫
/usr/share/cmf/schema/scm_prepare_database.sh mysql -h 172.16.100.218 -uroot -p123456 --scm-host 172.16.100.218 cmf cmf 123456
 
#啓動服務
service cloudera-scm-server start  #server端執行
service cloudera-scm-agent start   #在每臺機器上執行
 
#查看日誌
less /var/log/cloudera-scm-server/cloudera-scm-server.log

 

啓動server和agent成功後,訪問http://uat6:7180,進行下一步的CDH配置。

 

 

3.CDH安裝配置

3.1 集羣配置及初始化服務安裝

在上一章中,安裝好了CM server和CM agent後,便可訪問http://uat6:7180進入到CM的web管理頁面,初始化帳戶是admin,密碼admin。

第一次登錄後,會提示部署哪個版本,此處選擇數據集線器試用版。

勾選安裝條款,而後繼續

指定主機操做中,在輸入框內輸入全部主機的host列表,點擊搜索。

搜索後會出現全部主機的列表,全選後點擊繼續

離線安裝是使用parcel方式,在第二章的2.5小節中,安裝httpd的目的之一在於將parcel包以url的形式暴露出來,在此頁面上填寫URL後,會自動列出檢測出的最新版本的CDH安裝包。

填寫本地parcel目錄和存儲庫路徑,以及遠程parcel存儲庫

選擇識別出的版本以及agent暴露的URL地址

此處在第二章環境準備中已經安裝好了JDK,因此不勾選。

不勾選單用戶模式

輸入集羣主機的登陸密碼

等待拷貝與安裝

在集羣設置中,按需選擇安裝服務組合,此處勾選自定義服務,自由勾選初始化安裝的服務,沒有勾選的服務在cm安裝完成後還能夠已添加服務的方式添加進來。

按集羣規劃分配相應的組件角色

 

 

此處的數據庫設置中,由於在第二章的2.8小節已經配置好初始化的一些數據庫和用戶密碼,此處僅需填入以前建立的庫名,用戶名和密碼,點擊測試鏈接便可。

 

集羣參數配置,按照規劃配置

配置完成後,cm會啓動所有配置的組件

 

 

 

 

3.2 CDH集成Kafka

3.2.1 安裝包下載

在CDH官網中關於Kafka的安裝和升級中已經說到,在CDH中,Kafka做爲一個分佈式的parcel,單獨出來做爲parcel分發安裝包。只要咱們把分離開的kafka的服務描述jar包和服務parcel包下載了,就能夠實現完美集成了。

注意集成以前請閱讀官方文檔,特別是版本支持方面。

查看kafka與CDH版本對應:

https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_kafka

咱們的CDH是5.15的因此選擇3.1的版本。

 

 

 

3.2.1.1 下載Parcel

下載網址:http://archive.cloudera.com/kafka/parcels/latest/

到這個網址下載你須要的kafkaparcel版本(下載圖示紅框中的三個文件,並將.sha1後綴的文件名改爲.sha)。咱們的虛擬機是Centos6的,下載對應的版本,其版本對應以下

 

 

 

打開剛剛下載好的manifest.json文件,找到這個版本對應的hash值,將其複製到.sha 文件中去,替換掉原來的hash值。

而後將這三個文件,拷貝到服務器cdh的/opt/cloudera/parcel-repo目錄下。若是有相同的文件,即manifest.json,只需將以前的重命名便可。

 

3.2.1.2 下載CSD

網址:http://archive.cloudera.com/csds/kafka/

上傳下載好的CSD包KAFKA-1.2.0.jar,到服務器CDH目錄下,路徑爲/opt/cloudera/csd。

 

 

 

3.2.2 激活並添加服務

選擇CM主頁 -> Hosts -> parcel -> 檢查新parcel -> 配置 -> 激活

激活完安裝包後,在添加服務頁面進行Kafka服務的添加便可。

 

 

 

在CM的集羣監控界面,點擊操做中的添加服務操做

選擇安裝Broker的主機和KM的主機

 

 

3.2.3 安裝常見問題

3.2.3.1 填寫Destination Brokers List 

若添加了Kafka MirrorMaker則可填寫其所在節點構成的列表,若未添加Kafka MirrorMaker,可填寫任意服務器便可,以下:master:9092;salve1:9092;salve2:9092

3.2.3.2 填寫Source Brokers List 

填寫Kafka Broker所在節點構成的列表(用逗號分隔),以下master:9092;salve1:9092;salve2:9092

3.2.3.3 啓動時出現內存溢出錯誤(java.lang.OutOfMemoryError:Javaheapspace)

解決方法:

主頁服務列表 -> kafka -> 配置 -> Kafka-Broker -> Java Heap Size of Broker 修改參數到256以上便可。

3.2.3.4啓動kafka mirrormaker的時候報錯:whitelist must be specified when using new consumer in mirror maker

解決方法:

點擊cm集羣管理頁面--kafka--instances--kafka mirrormaker--而後搜索Whitelist,而後提示mirrormaker default group,把剛纔分配的時候設置的添加進去。在分配kafka生產環境是怎麼分配的,這裏就怎麼填。

3.3 CDH-HDFS高可用配置

點擊CM主頁的HDFS服務進入服務監控主頁,點擊操做按鈕,選擇下拉列表的啓用HA按鈕開始配置HA HDFS。

填寫nameservice

 

 

等待運行完成後。在原HDFS界面的實例列表就能夠看到新加的HA組件

 

3.4 常見問題

3.4.1 cloudemanager安裝時出現ProtocolError: <ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized>問題解決方法

CLOUDEMANAGER安裝時出現:

PROTOCOLERROR: <PROTOCOLERROR FOR 127.0.0.1/RPC2: 401 UNAUTHORIZED>

解決辦法:

#殺死supervisord進程
ps -ef | grep supervisord
kill -9 <processID>
sudo service  cloudera-scm-agent restart
相關文章
相關標籤/搜索