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)附加資料庫列表
Role | Database | User | Password |
ActivityMonitor | amon | amon | amon_password |
Reports Manager | rman | rman | rman_password |
Hive Metastore Server | metastore | hive | hive_password |
Sentry Server | sentry | sentry | sentry_password |
Cloudera Navigator Audit Server | nav | nav | nav_password |
Cloudera Navigator Metadata Server | navms | navms | navms_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
介面配置部分本章節省略……
更新版本的配置請參閱(CentOS 7):
http://cmdschool.blog.51cto.com/2420395/1916322
---------------------------------------
官方文件
http://www.cloudera.com/downloads/manager/5-6-0.html
中文文件
部署方法B的目錄
http://www.cloudera.com/documentation/enterprise/5-6-x/topics/cm_ig_install_path_b.html
單使用者模式配置
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庫
配置Oozie庫
Hue服務的資料庫配置
Agent的配置
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.it165.net/database/html/201604/15043.html
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