1. 程式人生 > 實用技巧 >Hadoop專案之Cloudera 5.6.0.1(CDH)的安裝部署

Hadoop專案之Cloudera 5.6.0.1(CDH)的安裝部署

1 前言

Cloudera是基於Apache原生的Hadoop元件進行重新封裝和加強,Cloudera可以簡化Hadoop元件的部署。

更新版本的配置請參閱(CentOS 7):

http://cmdschool.blog.51cto.com/2420395/1916322

2 理論基礎

2.1 部署軟體架構

1)Oracle JDK
2)Cloudera Manager Server and Agent packages
3)Supporting database software
4)CDH and managed service software

2.2 部署步驟和安裝方法

2.2.1 安裝方法

A)Cloudera Manager安裝程式安裝(容易)

B)yum源方式安裝(中等)

C)原始碼安裝(難)

注:本教程使用方法B

2.2.2 部署步驟

1)安裝JDK

2)安裝並配置資料庫

3)安裝Cloudera管理服務端

4)安裝Cloudera管理代理端

5)安裝CDH管理服務軟體

6)建立、啟動和配置CDH並管理服務

2.3 Cloudera Manager端的相關檔案

rpm-qlcloudera-manager-server

顯示如下:

/etc/cloudera-scm-server
/etc/cloudera-scm-server/db.properties
/etc/cloudera-scm-server/log4j.properties
/etc/default/cloudera-scm-server
/etc/rc.d/init.d/cloudera-scm-server
/opt/cloudera/csd
/opt/cloudera/parcel-repo
/usr/sbin/cmf-server
/var/log/cloudera-scm-server
/var/run/cloudera-scm-server

檔案與目錄功能如下:

1)其中/etc/的2-4行為Cloudera Manager服務端配置檔案

2)/opt/cloudera/parcel-repo為下載安裝包存放目錄

3 實踐部分

3.1 環境資訊

3.1.1 系統資訊

OS = CentOS 6.6 x86_64

注:系統請使用最小化安裝,否則可能Sqoop服務可能無法啟動

3.1.2 主機資訊

Cloudera Manager:

ip address=10.168.0.120

hostname=cdm-m.cmdschool.org


Cloudera Host1:

ip address=10.168.0.121

hostname=cdm-h1.cmdschool.org


Cloudera Host2:

ip address=10.168.0.122

hostname=cdm-h2.cmdschool.org


Cloudera Host3:

ip address=10.168.0.123

hostname=cdm-h3.cmdschool.org


Cloudera Host4:

ip address=10.168.0.124

hostname=cdm-h4.cmdschool.org

3.2 執行環境配置

In Cloudera Manager & Cloudera Host[1-4]

3.2.1 關閉selinux

getenforce

如果顯示如下:

Enforcing

則執行:

setenforce0
sed-i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config

3.2.2 配置hosts

vim編輯/etc/hosts

10.168.0.120cdm-m.cmdschool.org
10.168.0.121cdm-h1.cmdschool.org
10.168.0.122cdm-h2.cmdschool.org
10.168.0.123cdm-h3.cmdschool.org
10.168.0.124cdm-h4.cmdschool.org

3.2.3 檢查主機名稱

hostname

注:主機名稱與上面不一致會影響服務的啟動

3.2.4 配置sudo(單使用者模式適用,可選)

visudo

增加如下組

%cloudera-scmALL=(ALL)NOPASSWD:ALL

確認包含如下行:

Defaultssecure_path=/sbin:/bin:/usr/sbin:/usr/bin

vim編輯/etc/pam.d/su,確保包含如下行

sessionrequiredpam_limits.so

3.2.5 關閉防火牆並設定開機不啟動

/etc/init.d/iptablesstop
chkconfigiptablesoff

3.2.6 優化虛擬記憶體需求率

1)檢查虛擬記憶體需求率

cat/proc/sys/vm/swappiness

顯示如下:

60

2)臨時降低虛擬記憶體需求率

sysctlvm.swappiness=0

3)永久降低虛擬記憶體需求率

vim編輯/etc/sysctl.conf

kernel.shmall=4294967296
vm.swappiness=0

並執行如下命令使生效

sysctl-p

3.2.7 解決透明大頁面問題

1)檢查透明大頁面問題

cat/sys/kernel/mm/transparent_hugepage/defrag

如果顯示為:

[always]madvisenever

2)臨時關閉透明大頁面問題

echonever>/sys/kernel/mm/transparent_hugepage/defrag

確認配置生效:

cat/sys/kernel/mm/transparent_hugepage/defrag

應該顯示為:

alwaysmadvise[never]

3)配置開機自動生效

vim編輯/etc/rc.local,加入如下內容

echonever>/sys/kernel/mm/transparent_hugepage/defrag

3.3 yum源的安裝配置

3.3.1 公共yum源配置

In Cloudera Manager & Cloudera Host[1-4]

1)配置yum源

下載預設yum源

wget-P/etc/yum.repos.d/https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/cloudera-manager.repo

修改為指定版本yum源

vim編輯/etc/yum.repos.d/cloudera-manager.repo修改如下引數:

baseurl=https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.6.0/

2)安裝配置工具

yuminstall-yvimwgetopenssh-clients

3)安裝jdk

yuminstall-yoracle-j2sdk1.7

4)安裝python

yuminstall-ypython

5)安裝ntpd

yuminstall-yntp

3.3.2 Cloudera Manager端yum源配置

In Cloudera Manager

1)安裝Cloudera Manager包

yuminstall-ycloudera-manager-daemonscloudera-manager-server

2)安裝mysql

yuminstall-ymysql-servermysql-develmysql

3.3.3 Cloudera Manager Agent端yum源配置

In Cloudera Host[1-4]

安裝Cloudera Manager Agent包

yuminstall-ycloudera-manager-agentcloudera-manager-daemons

3.4 依賴於yum源的環境配置

3.4.1 配置jdk變數環境

In Cloudera Manager & Cloudera Host[1-4]

1)vim編輯/etc/profile,末尾加入如下內容

exportJAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
exportPATH=${JAVA_HOME}/bin:$PATH

2)匯入java環境變數

source/etc/profile

3)測試jdk的配置

java-version

3.4.2 許可權檢查(單使用者模式適用,可選)

In Cloudera Manager & Cloudera Host[1-4]

檢查以下目錄cloudera-scm使用者具有完全的許可權

檢查當前目錄許可權:

ls-ld/opt/cloudera/

顯示如下

drwxr-xr-x.4cloudera-scmcloudera-scm4096May2313:51/opt/cloudera/

檢查子目錄許可權:

ls-lR/opt/cloudera/

顯示如下

/opt/cloudera/:
total8
drwxr-xr-x.2cloudera-scmcloudera-scm4096Feb1211:28csd
drwxr-xr-x.2cloudera-scmcloudera-scm4096Feb1211:28parcel-repo

/opt/cloudera/csd:
total0

/opt/cloudera/parcel-repo:
total0

同樣,檢查伺服器或客戶端目錄許可權

ls-ld/var/log/cloudera-scm-server/
ls-lR/var/log/cloudera-scm-server/
ls-ld/var/lib/cloudera-scm-agent/
ls-lR/var/lib/cloudera-scm-agent/

3.4.3 檢查執行緒限制配置

In Cloudera Manager & Cloudera Host[1-4]

cat/etc/security/limits.d/cloudera-scm.conf

顯示如下:

#
#(c)Copyright2014Cloudera,Inc.
#
cloudera-scmsoftnofile32768
cloudera-scmsoftnproc65536
cloudera-scmhardnofile1048576
cloudera-scmhardnprocunlimited
cloudera-scmhardmemlockunlimited

3.4.4 Cloudera Manager端配置

In Cloudera Manager

1)臨時校對時間

ntpdate0.centos.pool.ntp.org

2)啟動並配置ntpd服務自動啟動

/etc/init.d/ntpdstart
chkconfigntpdon

3.4.5 Cloudera Manager Agen端配置

In Cloudera Host[1-4]

1)臨時校對時間

ntpdate10.168.0.120

2)vim編輯/etc/ntp.conf

註釋掉外網時間伺服器並增加內網時間伺服器地址

#server0.centos.pool.ntp.orgiburst
#server1.centos.pool.ntp.orgiburst
#server2.centos.pool.ntp.orgiburst
#server3.centos.pool.ntp.orgiburst
server10.168.0.120iburst

3)啟動並配置ntpd服務自動啟動

/etc/init.d/ntpdstart
chkconfigntpdon

3.4.7 安裝MySQL JDBC Driver

In Cloudera Manager & Cloudera Host[1-4]

wgethttp://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.39.tar.gz
tarzxvfmysql-connector-java-5.1.39.tar.gz
mkdir/usr/share/java/
cpmysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar/usr/share/java/mysql-connector-java.jar

3.4.8 配置公鑰認證

In Cloudera Manager

In Cloudera Manager:

ssh-keygen-trsa

注:以上一路回車

In Cloudera Manager Agen:

ssh-copy-id-i~/.ssh/id_rsa.pub[email protected]
ssh-copy-id-i~/.ssh/id_rsa.pub[email protected]
ssh-copy-id-i~/.ssh/id_rsa.pub[email protected]
ssh-copy-id-i~/.ssh/id_rsa.pub[email protected]
ssh-copy-id-i~/.ssh/id_rsa.pub[email protected]

InCloudera Manager:

ssh10.168.0.120
ssh10.168.0.121
ssh10.168.0.122
ssh10.168.0.123
ssh10.168.0.124

注:以上如果無需密碼登記即成功

3.5 Cloudera Manager安裝配置

In Cloudera Manager

3.5.1 修改mysql引數

1)關閉資料庫

/etc/init.d/mysqldstop

2)備份ib_logfile檔案

mkdir/var/lib/backup
cd/var/lib/mysql/
mvib_logfile*/var/lib/backup/

3)vim編輯/etc/my.cnf

加入如下引數

[mysqld]
transaction-isolation=READ-COMMITTED
#Disablingsymbolic-linksisrecommendedtopreventassortedsecurityrisks;
#todoso,uncommentthisline:
#symbolic-links=0

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
#expire_logs_days=10
#max_binlog_size=100M

#log_binshouldbeonadiskwithenoughfreespace.Replace'/var/lib/mysql/mysql_binary_log'withanappropriatepathforyoursystem
#andchownthespecifiedfoldertothemysqluser.
log_bin=/var/lib/mysql/mysql_binary_log

#ForMySQLversion5.1.8orlater.Commentoutbinlog_formatforolderversions.
binlog_format=mixed

read_buffer_size=2M
read_rnd_buffer_size=16M
sort_buffer_size=8M
join_buffer_size=8M

#InnoDBsettings
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size=64M
innodb_buffer_pool_size=4G
innodb_thread_concurrency=8
innodb_flush_method=O_DIRECT
innodb_log_file_size=512M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_ALL_TABLES

3.5.2 啟動並設定開機自動啟動

/etc/init.d/mysqldstart
chkconfigmysqldon

3.5.3 初始化資料庫

mysql_secure_installation

嚮導如下:

[...]
Entercurrentpasswordforroot(enterfornone):
OK,successfullyusedpassword,movingon...
[...]
Setrootpassword?[Y/n]y
Newpassword:
Re-enternewpassword:
Removeanonymoususers?[Y/n]y
[...]
Disallowrootloginremotely?[Y/n]n
[...]
Removetestdatabaseandaccesstoit[Y/n]y
[...]
Reloadprivilegetablesnow?[Y/n]y
Alldone!

3.5.4 準備scm庫

1)方法一

資料庫配置:

mysql-uroot-p
createdatabasescmdefaultcharactersetutf8;
grantallprivilegeson*.*to[email protected]'cdm-m.cmdschool.org'identifiedby'scm';
flushprivileges;

vim編輯/etc/cloudera-scm-server/db.properties修改如下引數:

com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=cdm-m.cmdschool.org
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=scm

2)方法二(官方建議)

授權temp許可權:

mysql-uroot-p
grantallprivilegeson*.*to'temp'@'%'identifiedby'temp'withgrantoption;
flushprivileges;

生成配置檔案:

/usr/share/cmf/schema/scm_prepare_database.shmysql-hcdm-m.cmdschool.org-utemp-ptemp--scm-hostcdm-m.cmdschool.orgscmscmscm

顯示如下:

JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
Verifyingthatwecanwriteto/etc/cloudera-scm-server
CreatingSCMconfigurationfilein/etc/cloudera-scm-server
Executing:/usr/java/jdk1.7.0_67-cloudera/bin/java-cp/usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/cmf/schema/../lib/*com.cloudera.enterprise.dbutil.DbCommandExecutor/etc/cloudera-scm-server/db.propertiescom.cloudera.cmf.db.
[main]DbCommandExecutorINFOSuccessfullyconnectedtodatabase.
Alldone,yourSCMdatabaseisconfiguredcorrectly!

確認生成的結果:

cat/etc/cloudera-scm-server/db.properties

顯示如下:

#Auto-generatedbyscm_prepare_database.shonTueMay2419:08:19CST2016
#
#ForinformationdescribinghowtoconfiguretheClouderaManagerServer
#toconnecttodatabases,seethe"ClouderaManagerInstallationGuide."
#
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=cdm-m.cmdschool.org
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=scm

確認庫訪問許可權:

mysql-uroot-p
showgrantsfor[email protected]'cdm-m.cmdschool.org';

顯示如下:

+----------------------------------------------------------------------------------------------------------------------+
|Grantsfor[email protected]|
+----------------------------------------------------------------------------------------------------------------------+
|GRANTUSAGEON*.*TO'scm'@'cdm-m.cmdschool.org'IDENTIFIEDBYPASSWORD'*45E6E3C68BDF1AC7EBB5C5A3BCBD5E9437B293BE'|
|GRANTALLPRIVILEGESON`scm`.*TO'scm'@'cdm-m.cmdschool.org'|
+----------------------------------------------------------------------------------------------------------------------+
2rowsinset(0.00sec)

清理資料庫使用者授權:

dropuser'temp'@'%';
flushprivileges;

3.5.5 建立附加資料庫(可選)

1)附加資料庫列表

RoleDatabaseUserPassword
ActivityMonitoramonamonamon_password
Reports Managerrmanrmanrman_password
Hive Metastore Servermetastorehivehive_password
Sentry Serversentrysentrysentry_password
Cloudera Navigator Audit Servernavnavnav_password

Cloudera Navigator Metadata Server

navmsnavmsnavms_password

2)建立資料庫並配置管理賬號密碼

mysql-uroot-p
createdatabaseamondefaultcharactersetutf8;
grantallprivilegesonamon.*to'amon'@'%'identifiedby'amon_password';

createdatabasermandefaultcharactersetutf8;
grantallprivilegesonrman.*to'rman'@'%'identifiedby'rman_password';

createdatabasemetastoredefaultcharactersetutf8;
grantallprivilegesonmetastore.*to'hive'@'%'identifiedby'hive_password';

createdatabasesentrydefaultcharactersetutf8;
grantallprivilegesonsentry.*to'sentry'@'%'identifiedby'sentry_password';

createdatabasenavdefaultcharactersetutf8;
grantallprivilegesonnav.*to'nav'@'%'identifiedby'nav_password';

createdatabasenavmsdefaultcharactersetutf8;
grantallprivilegesonnavms.*to'navms'@'%'identifiedby'navms_password';

flushprivileges;

3.5.6 配置Oozie庫(可選)

1)資料庫許可權配置

mysql-uroot-p
createdatabaseooziedefaultcharactersetutf8;
grantallprivilegesonoozie.*to'oozie'@'localhost'identifiedby'oozie';
grantallprivilegesonoozie.*to'oozie'@'%'identifiedby'oozie';
flushprivileges;

2)配置Oozie庫所需軟連線

cd/opt/cloudera/parcels/CDH/lib/oozie/lib/
ln-s/usr/share/java/mysql-connector-java.jarmysql-connector-java.jar

3.5.7 啟動服務並配置開機啟動

/etc/init.d/cloudera-scm-serverstart
chkconfigcloudera-scm-serveron

3.5.8 故障排除

tail-f/var/log/cloudera-scm-server/cloudera-scm-server.out

3.6 Cloudera Manager Agent安裝

In Cloudera Host[1-4]

3.6.1 建立壓縮包存放目錄

mkdir-p/opt/cloudera/parcels
chowncloudera-scm:cloudera-scm/opt/cloudera/parcels

3.6.2 指定管理伺服器和指定包存放目錄

vim編輯/etc/cloudera-scm-agent/config.ini確保引數如下並啟用:

server_host=cdm-m.cmdschool.org
server_port=7182
parcel_dir=/opt/cloudera/parcels

3.6.3 指定執行單使用者模式的使用者名稱(僅用於單使用者模式,不配置)

vim編輯/etc/default/cloudera-scm-agent並取消以下行的註釋

USER="cloudera-scm"

3.6.4 啟動服務並配置伺服器開機啟動

/etc/init.d/cloudera-scm-agentstart
chkconfigcloudera-scm-agenton

3.6.5 故障排除

如下命令監控啟動服務的錯誤輸出

tail-f/var/log/cloudera-scm-agent/cloudera-scm-agent.out

3.7 登陸配置

In Cloudera WEB Manager

http://10.168.0.120:7180/

wKioL1dD_OKz_FZwAABiN0PE3Ds578.png


介面配置部分本章節省略……


更新版本的配置請參閱(CentOS 7):

http://cmdschool.blog.51cto.com/2420395/1916322

---------------------------------------

官方文件

http://www.cloudera.com/downloads/manager/5-6-0.html

中文文件

http://www.cloudera.com/content/www/zh-CN/documentation/enterprise/5-3-x/topics/installation_installation.html

部署方法B的目錄

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cm_ig_install_path_b.html

單使用者模式配置

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/install_singleuser_reqts.html#xd_583c10bfdbd326ba--69adf108-1492ec0ce48--7ade__section_nhj_dlh_kq

mysql的配置概述

www.cloudera.com/documentation/enterprise/5-6-x/topics/cm_ig_installing_configuring_dbs.html

MySQL&MySQL JDBC Driver的詳細安裝配置

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cm_ig_mysql.html#cmig_topic_5_5

MySQL JDBC Driver的下載地址

http://dev.mysql.com/downloads/connector/j/5.1.html

JDK的安裝配置

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cdh_ig_jdk_installation.html

配置SCM庫

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cm_ig_installing_configuring_dbs.html#concept_i2r_m3m_hn__section_qjj_pyp_bm

配置Oozie庫

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/install_oozie_ext_db.html#admin_oozie_ext_db

Hue服務的資料庫配置

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cm_mc_hue_service.html#xd_583c10bfdbd326ba--7f25092b-13fba2465e5--7e7c

Agent的配置

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cm_ag_agent_config.html#cmug_topic_5_16__section_kw3_5rq_wm

CDH服務的安裝

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cm_ig_path_b_manual.html

命令列停止CDH服務

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cdh_ig_services_stop.html#topic_27_3

各版的yum源(下載)地址

http://www.cloudera.com/documentation/enterprise/release-notes/topics/cm_vd.html

CDH的yum源下載地址

http://archive.cloudera.com/cdh5/one-click-install/redhat/6/x86_64/

CDH的手動安裝

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cm_ig_path_b_manual.html

CDH包下載

http://archive.cloudera.com/cdh5/parcels/

http://archive.cloudera.com/gplextras5/parcels/

CDH包的下載地址:

http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cm_ig_create_local_parcel_repo.html#cmig_topic_21_5

非官方的文件

http://www.it165.net/database/html/201604/15043.html

http://wenku.baidu.com/link?url=x9yTezHZKK2a707ZLN6I8rPkdQbzBAuyy4HOzvPSJqvNJPTZmHnsvhalsEJxYPtbJD2Xybi9tnI0HhjTlrkds27c_-Se4MWfX6v45lzg9VO

http://www.tuicool.com/articles/QFZV3ij

http://www.tuicool.com/articles/ENjmeaY/

程序限制配置原理

http://www.2cto.com/os/201309/240804.html



轉載於:https://blog.51cto.com/cmdschool/1775398