基於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換成包名
以下這些包必須安裝:
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
- 配置域名解析
# 新增如下4行內容
172.16.1.101 cdh1
172.16.1.102 cdh2
172.16.1.103 cdh3
172.16.1.104 cdh4
- 安裝JDK
注意:所有主機要安裝相同版本的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服務
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使用者
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資料庫(為了後面配置方便,這裡每個主機都裝了)
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驅動
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相關文章
- 基於Hadoop生態圈的資料倉儲實踐 —— 環境搭建(三)Hadoop
- 資料倉儲元件:Hive環境搭建和基礎用法元件Hive
- 基於Greenplum,postgreSQL的大型資料倉儲實踐SQL
- 一、hadoop生態圈搭建(資源)Hadoop
- 基於商業版Hadoop搭建的資料倉儲解決方案Hadoop
- Hadoop 基礎之生態圈Hadoop
- 大資料系列分享第二期:《Hadoop生態圈》大資料Hadoop
- 資料倉儲元件:HBase叢集環境搭建和應用案例元件
- Hadoop基礎(二):從Hadoop框架討論大資料生態Hadoop框架大資料
- Hadoop 基礎之搭建環境Hadoop
- 基於 Flink 的實時數倉生產實踐
- mac搭建hadoop開發環境(二)MacHadoop開發環境
- 基於OneData的資料倉儲建設
- 基於Docker的日誌分析平臺(二) 環境搭建Docker
- 基於Hadoop生態系統的一種高效能資料儲存格式CarbonData(效能篇)Hadoop
- Hadoop生態圈一覽Hadoop
- 基於Docker搭建LNMP環境DockerLNMP
- GitChat·大資料 | 史上最詳細的Hadoop環境搭建Git大資料Hadoop
- 在ERP環境中建立BI資料倉儲(轉)
- hadoop的單機環境搭建Hadoop
- 大資料學習之--hadoop2.7.3環境搭建大資料Hadoop
- Redis叢集環境搭建實踐Redis
- Vagrant 搭建開發環境實踐開發環境
- 在Hadoop環境中,大資料儲存的技巧有哪些?Hadoop大資料
- 基於ECS快速搭建Docker環境Docker
- 資料倉儲指標體系搭建實戰指標
- Hadoop2.7.5環境搭建Hadoop
- Hadoop+hive環境搭建HadoopHive
- 搭建Hadoop開發環境Hadoop開發環境
- hadoop叢集環境搭建Hadoop
- 搭建基於 Mac 的 Flutter 開發環境MacFlutter開發環境
- 搭建基於以太坊的私有鏈環境
- 基於jenkins+kubernetes的cicd流程實踐一:環境搭建及方案原理Jenkins
- 美團DB資料同步到資料倉儲的架構與實踐架構
- 《Greenplum構建實時資料倉儲實踐》簡介
- RabbitMQ環境搭建教程收集(待實踐)MQ
- 後端多環境治理的實踐(二)後端
- 構建大資料健康發展的安全生態環境大資料