1.CDH介紹
目前Hadoop比較流行的主要有2個(gè)版本单匣,Apache和Cloudera版本团南。
- Apache Hadoop:社區(qū)人員比較多宗雇,更新頻率比較快钳恕,但是穩(wěn)定性比較差别伏,安裝配置繁瑣蹄衷,實(shí)際使用者少。
- Cloudera Hadoop(CDH):Cloudera公司的發(fā)行版本厘肮,基于Apache Hadoop的二次開發(fā)愧口,優(yōu)化了組件兼容和交互接口、簡(jiǎn)化安裝配置轴脐、提供界面統(tǒng)一管理程序调卑。
2.Cloudera Manager 介紹
Cloudera Manager 是用于管理cdh集群的端到端應(yīng)用程序,統(tǒng)一管理和安裝大咱。CDH除了可以通過cm安裝也可以通過yum,tar,rpm安裝恬涧。主要由如下幾部分組成:
服務(wù)端/Server:
Cloudera Manager 的核心。主要用于管理 web server 和應(yīng)用邏輯碴巾。它用于安裝軟件溯捆,配置,開始和停止服務(wù)厦瓢,以及管理服務(wù)運(yùn)行的集群提揍。代理/agent:
安裝在每臺(tái)主機(jī)上。它負(fù)責(zé)啟動(dòng)和停止進(jìn)程煮仇,部署配置,觸發(fā)安裝和監(jiān)控主機(jī)刨仑。數(shù)據(jù)庫/Database:
存儲(chǔ)配置和監(jiān)控信息杉武。通城岜В可以在一個(gè)或多個(gè)數(shù)據(jù)庫服務(wù)器上運(yùn)行的多個(gè)邏輯數(shù)據(jù)庫祈搜。例如容燕,所述的 Cloudera 管理器服務(wù)和監(jiān)視,后臺(tái)程序使用不同的邏輯數(shù)據(jù)庫陕见。
Cloudera Repository:由cloudera manager 提供的軟件分發(fā)庫。客戶端/Clients:
提供了一個(gè)與 Server 交互的接口灰粮。
3.環(huán)境準(zhǔn)備
3.1.節(jié)點(diǎn)準(zhǔn)備(四個(gè)節(jié)點(diǎn))
主機(jī)名 | IP | CM管理軟件 |
---|---|---|
nn01 | 192.168.18.110 | Cloudera Manager Server&Agent 忍坷,MySQL |
dn01 | 192.168.18.111 | Cloudera Manager Agent |
dn02 | 192.168.18.112 | Cloudera Manager Agent |
dn03 | 192.168.18.113 | Cloudera Manager Agent |
3.2.配置主機(jī)名和hosts解析(所有節(jié)點(diǎn))
編輯/etc/hostname粘舟,修改主機(jī)名,并使用命令hostname使其立刻生效佩研。編輯文件/etc/hosts柑肴,增加如下內(nèi)容。
192.168.18.110 nn01.yunlu.cn nn01
192.168.18.111 dn01.yunlu.cn dn01
192.168.18.112 dn02.yunlu.cn dn02
192.168.18.113 dn03.yunlu.cn dn03
3.3.關(guān)閉防火墻
# systemctl stop firewalld.service && systemctl disable firewalld.service
3.4.關(guān)閉SELinux
# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
# setenforce 0
3.5.配置時(shí)間同步
chrony既可作時(shí)間服務(wù)器服務(wù)端旬薯,也可作客戶端晰骑。chrony性能比ntp要好很多,且chrony配置簡(jiǎn)單绊序、管理方便。 但是此次我們采用定時(shí)任務(wù)同步網(wǎng)絡(luò)時(shí)間的方法骤公。
- 添加定時(shí)任務(wù)
# echo "$((RANDOM%60)) $((RANDOM%24)) * * * /usr/sbin/ntpdate time1.aliyun.com" >> /var/spool/cron/root
3.6.禁用透明大頁面壓縮,CDH配置需要
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
- 并將上面的兩條命令寫入開機(jī)自啟動(dòng)/etc/rc.local
tee -a /etc/rc.local <<-'EOF'
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
EOF
3.7.優(yōu)化交換分區(qū)
# echo "vm.swappiness = 10" >> /etc/sysctl.conf
# sysctl -p
3.8.配置SSH免密登錄
- 所有節(jié)點(diǎn)執(zhí)行如下命令(四次回車):
# ssh-keygen -t rsa
- 用拷貝的方法分發(fā)秘鑰凌节,所有節(jié)點(diǎn)執(zhí)行如下命令:
# ssh-copy-id [nn01,dn01-dn03]
總共四次拷貝趁猴,每次拷貝按提示輸入
yes
和相應(yīng)節(jié)點(diǎn)的密碼刊咳。
4.安裝 CM 和 CDH
4.1.配置 Cloudera Manager 倉庫(所有節(jié)點(diǎn))
# wget https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/
# rpm --import https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPM-GPG-KEY-cloudera
使用在線安裝會(huì)比較慢,建議先把需要的rpm下載下來,進(jìn)行離線安裝或者建私有倉庫跷坝,涉及下面三個(gè)軟件包:
cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm
cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
4.2.配置 JDK (所有節(jié)點(diǎn))
# rpm -ivh jdk-8u202-linux-x64.rpm
4.3.安裝 CM Server 和 Agent
建議離線安裝,把rpm包下載到服務(wù)器上面占键,傳到其他節(jié)點(diǎn)一份翩概,再本地安裝牍鞠,速度會(huì)快很多参咙。
- nn01:
# yum localinstall cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm -y
# yum localinstall cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm -y
# yum localinstall cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm -y
- dn[01-03]:
# yum localinstall cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm -y
# yum localinstall cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm -y
4.4.安裝MySQL數(shù)據(jù)庫(在nn01節(jié)點(diǎn))
此次安裝 mysql 是按照官網(wǎng)教程安裝的净宵,鏈接地址:
https://www.cloudera.com/documentation/enterprise/6/6.0/topics/cm_ig_mysql.html#cmig_topic_5_5
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-server -y
# systemctl start mysqld
-
查看狀態(tài)
- 可選步驟阻星。根據(jù)官方推薦的配置更舞,編輯文件
/etc/my.cnf
畦幢,修改成如下內(nèi)容:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0
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_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log
#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1
binlog_format = mixed
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
# InnoDB settings
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
以上配置的含義,請(qǐng)參考本節(jié)開頭的文檔缆蝉。
- 設(shè)置MySQL的登錄密碼宇葱,按照相關(guān)提示操作即可
# /usr/bin/mysql_secure_installation
- 將mysql 加到 開機(jī)啟動(dòng)中
# systemctl enable mysqld
4.5.安裝 MySQL JDBC 驅(qū)動(dòng)(所有節(jié)點(diǎn))
用于各節(jié)點(diǎn)連接數(shù)據(jù)庫瘦真。
# wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
# tar xf mysql-connector-java-5.1.46.tar.gz
# mkdir -p /usr/share/java/
# cd mysql-connector-java-5.1.46
# cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
4.6.為 Cloudera 各軟件創(chuàng)建數(shù)據(jù)庫(在nn01節(jié)點(diǎn))
Service | Database | User |
---|---|---|
Cloudera Manager Server | scm | scm |
Activity Monitor | amon | amon |
Reports Manager | rman | rman |
Sentry Server | sentry | sentry |
Cloudera Navigator Audit Server | nav | nav |
Cloudera Navigator Metadata Server | navms | navms |
Hive Metastore Server | hive | hive |
Hue | hue | hue |
Oozie | oozie | oozie |
- 將如下內(nèi)容,寫入到
cdh.sql
文件中
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue';
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';
- 執(zhí)行sql文件
# mysql -uroot -p<ROOT_PASSWORD> < ./cdh.sql
4.7.設(shè)置 Cloudera Manager 數(shù)據(jù)庫
# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
接著黍瞧,輸入scm數(shù)據(jù)庫密碼
4.8.安裝 CDH(在nn01節(jié)點(diǎn))
CM安裝成功之后吗氏,接下來我們就可以通過CM安裝CDH的方式構(gòu)建企業(yè)大數(shù)據(jù)平臺(tái)。所以首先需要把CDH的parcels包下載到CM主服務(wù)器上雷逆。同樣的,我們?yōu)榱思铀傥覀兊陌惭b污尉,我們可以把需要下載的軟件包提前下載下來膀哲,也可以創(chuàng)建CDH私有倉庫。
- 下載CDH的軟件包 parcels
# cd /opt/cloudera/parcel-repo
# wget https://archive.cloudera.com/cdh6/6.2.0/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel
# wget https://archive.cloudera.com/cdh6/6.2.0/parcels/manifest.json
- 生成sha文件
# sha1sum CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel | awk '{ print $1 }' > CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
- 修改屬主屬組
# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
4.9.啟動(dòng) Cloudera Manager Server(在nn01節(jié)點(diǎn))
# systemctl start cloudera-scm-server
如果啟動(dòng)中有什么問題被碗,可以查看日志某宪。
# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
在最后顯示的日志中,有顯示啟動(dòng)監(jiān)聽的端口锐朴。
Started ServerConnector@da518cb{SSL,[ssl, http/1.1]}{0.0.0.0:7183}
Started ServerConnector@a77165b{HTTP/1.1,[http/1.1]}{0.0.0.0:7180}
5.初始化 Cloudera Manager
稍等下兴喂,瀏覽器打開http://nn01:7180,用戶名和密碼默認(rèn)都是admin焚志。
- 然后按需衣迷,繼續(xù)下一步操作即可。
5.1.CDH集群安裝
- 按照提示操作即可酱酬,一般選默認(rèn)就行壶谒。
5.2.集群設(shè)置
-
數(shù)據(jù)庫設(shè)置
- 其它按照提示操作即可,一般選默認(rèn)就行膳沽。