基於Hadoop生態圈的資料倉儲實踐 —— 環境搭建(二)

wzy0623發表於2016-06-27
二、安裝Hadoop及其所需的服務
1. CDH安裝概述

CDH的全稱是Cloudera's Distribution Including Apache Hadoop,是Cloudera公司的Hadoop分發版本。有三種方式安裝CDH:
. Path A - 通過Cloudera Manager自動安裝
. Path B - 使用Cloudera Manager Parcels或Packages安裝
. Path C - 使用Cloudera Manager Tarballs手工安裝
不同方式的安裝步驟總結如下:

步驟

 

 

 

步驟 1: 安裝 JDK

Cloudera Manager Server、Management Service和CDH需要安裝JDK。

有兩個選項:

. 使用Cloudera Manager安裝程式在叢集中的所有主機的/usr/java下安裝一個Oracle JDK的支援版本。

. 使用命令列在所有主機上安裝一個Oracle JDK的支援版本,並且設定JAVA_HOME環境變數為JDK的安裝目錄。

步驟 2: 設定資料庫

Cloudera Manager Server、Cloudera Management Service和某些CDH的可選服務需要安裝、配置和啟動資料庫。

有兩個選項:

. 使用Cloudera Manager安裝程式安裝、配置和啟動一個內嵌的PostgreSQL資料庫。

. 使用諸如yum這樣的命令列包安裝工具安裝、配置和啟動資料庫。

 

Path A

Path B

Path

步驟 3: 安裝Cloudera Manager伺服器

在一臺主機上安裝和啟動Cloudera Manager伺服器。

使用Cloudera Manager安裝程式安裝伺服器。需要該主機的sudo許可權並能訪問網際網路。

使用Linux包安裝命令(如yum)安裝Cloudera Manager伺服器。

修改資料庫屬性。

使用service命令啟動Cloudera Manager伺服器。

使用Linux命令解包,並且使用service命令啟動服務。

步驟 4: 安裝Cloudera Manager代理

在所有主機上安裝並啟動Cloudera Manager代理。

使用Cloudera Manager安裝嚮導在所有主機上安裝代理。

有兩個選項:

. 使用Linux包安裝命令(如yum)在所有主機上安裝Cloudera Manager代理。

. 使用Cloudera Manager安裝嚮導在所有主機上安裝代理。

使用Linux命令在所有主機上解包並啟動代理。

步驟 5: 安裝CDH和服務

在所有主機上安裝CDH及其服務。

使用Cloudera Manager安裝嚮導安裝CDH及其服務。

有兩個選項:

. 使用Cloudera Manager安裝嚮導安裝CDH及其服務。

. 使用Linux包安裝命令(如yum)在所有主機上安裝CDH及其服務。

使用Linux命令在所有主機上解包,並使用service命令啟動CDH及其服務。

步驟 6: 建立、配置並啟動CDH和服務

在所有主機上配置並啟動CDH及其服務。

使用Cloudera Manager安裝嚮導給主機賦予角色並配置叢集。許多配置是自動的。

使用Cloudera Manager安裝嚮導給主機授予角色並配置叢集。許多配置是自動的。

使用Cloudera Manager安裝嚮導給主機賦予角色並配置叢集。許多配置是自動的。也可以使用Cloudera Manager API管理一個叢集,這對於指令碼預配置部署是很有用的。

 2. 實驗環境

主機資訊:

主機名                      

IP地址                                              

CDH1

172.16.1.101

CDH2

172.16.1.102

CDH3

172.16.1.103

CDH4

172.16.1.104


硬體配置:
每臺主機:CPU4核、記憶體8G、硬碟100G

軟體版本:

名稱                                                    

版本                                                                               

作業系統

CentOS release 6.4 (Final) 64位

JDK

1.7.0_80

資料庫

MySQL 5.6.14

JDBC

MySQL Connector Java 5.1.38

Cloudera Manager

5.7.0

CDH

5.7.0


3. 安裝配置
(1)安裝前準備(都是使用root使用者在叢集中的所有4臺主機配置)
. 從以下地址下載所需要的安裝檔案
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.7.0_x86_64.tar.gz
http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel
http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1
http://archive.cloudera.com/cdh5/parcels/5.7/manifest.json
  • 使用下面的命令檢查OS依賴包,xxxx換成包名
rpm -qa | grep xxxx
以下這些包必須安裝:
chkconfig
python (2.6 required for CDH 5)
bind-utils
psmisc
libxslt
zlib
sqlite
cyrus-sasl-plain
cyrus-sasl-gssapi
fuse
portmap (rpcbind)
fuse-libs
redhat-lsb
  • 配置域名解析
vi /etc/hosts
# 新增如下4行內容
172.16.1.101 cdh1
172.16.1.102 cdh2
172.16.1.103 cdh3
172.16.1.104 cdh4
  • 安裝JDK
CDH5推薦的JDK版本是1.7.0_67、1.7.0_75、1.7.0_80,這裡安裝1.7.0_80
注意:所有主機要安裝相同版本的JDK;安裝目錄為/usr/java/jdk-version
mkdir /usr/java/
mv jdk-7u80-linux-x64.tar.gz /usr/java/
cd /usr/java/
tar -zxvf jdk-7u80-linux-x64.tar.gz
chown -R root:root jdk1.7.0_80/
vi /etc/profile.d/java.sh
# 新增如下3行內容
export JAVA_HOME=/usr/java/jdk1.7.0_80
export CLASSPATH=.:$JAVA_HOME/jre/lib/*:$JAVA_HOME/lib/*
export PATH=$PATH:$JAVA_HOME/bin
# 使環境變數生效
source /etc/profile.d/java.sh
  • 安裝、配置並啟動NTP服務
yum install ntp
chkconfig ntpd on
ntpdate -u 202.112.29.82
vi /etc/ntp.conf
# 新增如下8行內容
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server 202.112.29.82
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
# 啟動NTP服務
service ntpd start
  • 建立CM使用者
useradd --system --home=/opt/cm-5.7.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
usermod -a -G root cloudera-scm
echo USER=\"cloudera-scm\" >> /etc/default/cloudera-scm-agent
echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin" >> /etc/sudoers
  • 安裝配置MySQL資料庫(為了後面配置方便,這裡每個主機都裝了)
rpm -ivh MySQL-5.6.14-1.el6.x86_64.rpm
vi /etc/profile.d/mysql.sh
# 新增如下2行內容
export MYSQL_HOME=/home/mysql/mysql-5.6.14
export PATH=$PATH:$MYSQL_HOME/bin
# 使環境變數生效
source /etc/profile.d/mysql.sh
# 修改root密碼
mysqladmin -u root password
# 編輯配置檔案
vi /etc/my.cnf
# 內容如下
[mysqld]
transaction-isolation = READ-COMMITTED
log_bin=/data/mysql_binary_log
binlog_format = mixed
innodb_flush_log_at_trx_commit  = 2
innodb_flush_method = O_DIRECT
key_buffer = 16M
key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1
max_connections = 550
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_log_file_size = 512M
[mysqld_safe]
log-error=/data/mysqld.err
pid-file=/data/mysqld.pid
sql_mode=STRICT_ALL_TABLES

# 新增開機啟動
chkconfig mysql on
# 啟動MySQL
service mysql restart
# 根據需要建立後設資料庫
mysql -u root -p -e "create database hive DEFAULT CHARACTER SET utf8;create database rman DEFAULT CHARACTER SET utf8;create database oozie DEFAULT CHARACTER SET utf8;grant all on *.* TO 'root'@'%' IDENTIFIED BY 'mypassword';"
  • 安裝MySQL JDBC驅動
tar -zxvf mysql-connector-java-5.1.38.tar.gz 
cp ./mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar /usr/share/java/mysql-connector-java.jar
  • 配置免密碼ssh(這裡配置了任意兩臺機器都免密碼)
# 分別在四臺機器上生成金鑰對:
cd ~
ssh-keygen -t rsa
# 然後一路回車
# 在cdh1上執行:
cd ~/.ssh/
ssh-copy-id cdh1
scp /root/.ssh/authorized_keys cdh2:/root/.ssh/
# 在cdh2上執行:
cd ~/.ssh/
ssh-copy-id cdh2
scp /root/.ssh/authorized_keys cdh3:/root/.ssh/
#在cdh3上執行:
cd ~/.ssh/
ssh-copy-id cdh3
scp /root/.ssh/authorized_keys cdh4:/home/grid/.ssh/
#在cdh4上執行:
cd ~/.ssh/
ssh-copy-id cdh4
scp /root/.ssh/authorized_keys cdh1:/root/.ssh/
scp /root/.ssh/authorized_keys cdh2:/root/.ssh/
scp /root/.ssh/authorized_keys cdh3:/root/.ssh/

(2)在cdh1上安裝Cloudera Manager
tar -xzvf cloudera-manager*.tar.gz -C /opt/
# 建立cm資料庫
/opt/cm-5.7.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pmypassword --scm-host localhost scm scm scm
# 配置cm代理
vi /opt/cm-5.7.0/etc/cloudera-scm-agent/config.ini 
# 將cm主機名改為cdh1
server_host=cdh1
# 將Parcel相關的三個檔案拷貝到/opt/cloudera/parcel-repo
cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel /opt/cloudera/parcel-repo/
cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel-repo/
cp manifest.json /opt/cloudera/parcel-repo/
# 改名
mv /opt/cloudera/parcel-repo/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha
# 修改屬主
chown -R cloudera-scm:cloudera-scm /opt/cloudera/
chown -R cloudera-scm:cloudera-scm /opt/cm-5.7.0/
# 將/opt/cm-5.7.0目錄拷貝到其它三個主機
scp -r -p /opt/cm-5.7.0 cdh2:/opt/
scp -r -p /opt/cm-5.7.0 cdh3:/opt/
scp -r -p /opt/cm-5.7.0 cdh4:/opt/

(3)在每個主機上建立/opt/cloudera/parcels目錄,並修改屬主
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

(4)在cdh1上啟動cm server
/opt/cm-5.7.0/etc/init.d/cloudera-scm-server start
# 此步驟需要執行一些時間,用下面的命令檢視啟動情況
tail -f /opt/cm-5.7.0/log/cloudera-scm-server/cloudera-scm-server.log

(5)在所有主機上啟動cm agent
mkdir /opt/cm-5.7.0/run/cloudera-scm-agent
chown cloudera-scm:cloudera-scm /opt/cm-5.7.0/run/cloudera-scm-agent
/opt/cm-5.7.0/etc/init.d/cloudera-scm-agent start

(6)登入cm控制檯,安裝配置CDH5及其服務
開啟控制檯
http://172.16.1.101:7180/
頁面如下圖所示。
預設的使用者名稱和密碼都是admin,登入後進入歡迎頁面。勾選許可協議,如下圖所示,點繼續。
進入版本說明頁面,如下圖所示,點繼續。
進入服務說明頁面,如下圖所示,點繼續。
進入選擇主機頁面,如下圖所示,全選四個主機,點繼續。
進入選擇儲存庫頁面,如下圖所示,點繼續。
進入叢集安裝頁面,如下圖所示,點繼續。
進入驗證頁面,如下圖所示,點完成。
進入叢集設定頁面,如下圖所示,根據需要選擇服務,點繼續。
進入自定義角色分配頁面,如下圖所示,保持不變,點繼續。
進入資料庫設定頁面,填寫相關資訊,點測試連線,如下圖所示,點繼續。
進入稽核更改頁面,保持不變,點繼續。

進入首次執行頁面,等待執行完,如下圖所示,點繼續。
進入安裝成功頁面,如下圖所示,點完成。
進入安裝成功頁面,如下圖所示。
至此,CDH安裝完成,主機和角色對應如下表所示。

服務                                           

角色                                                                          

主機                                     

HDFS

DataNode

cdh1

cdh3

cdh4

NameNode

cdh2

SecondaryNameNode

cdh2

Hive

Hive Metastore Server

cdh2

HiveServer2

cdh2

Hue

Hue Server

cdh2

Impala

Impala Catalog Server

cdh2

Impala Daemon

cdh1

cdh3

cdh4

Impala StateStore

cdh2

Oozie

Oozie Server

cdh2

Sqoop 2

Sqoop 2 Server

cdh2

YARN

JobHistory Server

cdh2

NodeManager

cdh1

cdh3

cdh4

ResourceManager

cdh2

CDH的官方安裝文件URL地址為:

http://www.cloudera.com/documentation/enterprise/latest/topics/installation.html

相關文章