Centos7.6部署CDH6.1.0大數(shù)據(jù)平臺教程

目錄

一、CDH介紹

二、CDH6.1.0安裝前環(huán)境的部署

三、CDH6.1.0安裝

四、CDH6.1.0的初始化

五、CDH6.1.0的優(yōu)化

六、CDH6.1.0集群安裝


一、CDH介紹:

CDH(Cloudera's Distribution,including Apache Hadoop).是Haoop眾多分支中的一種大數(shù)據(jù),簡稱CDH,基于最穩(wěn)定版本的Apache Hadoop,有許多補丁、向后移植和更新,Cloudera公司以多種不同的形式進行發(fā)布。包括源碼和二進制tar文件,、RPM等等。CDH是Apche2.0許可下發(fā)布的自由軟件,用戶可以直接從官方https://www.cloudera.com/上獲取。

CDH6.1.0支持如下組件:

組件名稱 用途
Zookeeper Apache ZooKeeper 是用于維護和同步配置數(shù)據(jù)的集中服務。
HDFS HDFS是 Hadoop 應用程序使用的主要存儲系統(tǒng)。
yarn Apache Hadoop MapReduce 2.0 (MRv2) 或 YARN 是支持 MapReduce 應用程序的數(shù)據(jù)計算框架。依賴HDFS服務。
HBase 支持隨機讀/寫訪問的Hadoop數(shù)據(jù)庫(HBase是一個分布式、面向列的開源數(shù)據(jù)庫,)
Hive 在大數(shù)據(jù)集合上的類SQL查詢和表。Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡單的sql查詢功能,可以將sql語句轉(zhuǎn)換為MapReduce任務進行運行。
impala Impala是一個新型查詢系統(tǒng),它提供SQL語義,能查詢存儲在Hadoop的HDFS和HBase中的PB級大數(shù)據(jù)。
solr Solr是一個分布式服務,用于編制存儲在 HDFS 中的數(shù)據(jù)的索引并搜索這些數(shù)據(jù)。
spark Spark是強大的開源并行計算引擎,基于內(nèi)存計算,速度更快;接口豐富,易于開發(fā);集成SQL、Streaming、GraphX、MLlib,提供一棧式解決方案。
flume 高可靠、可配置的數(shù)據(jù)流集合。
storm Storm是一個分布式的、容錯的實時計算系統(tǒng)。
kafka Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)。
Hue 可視化Hadoop應用的用戶接口框架和SDK。。
Sqoop 以高度可擴展的方式跨關(guān)系數(shù)據(jù)庫和HDFS移動數(shù)據(jù)
oozie Oozie是一種框架,是用于hadoop平臺的作業(yè)調(diào)度服務。
Avro 數(shù)據(jù)序列化:豐富的數(shù)據(jù)結(jié)構(gòu),快速/緊湊的二進制格式和RPC。
Crunch Java庫,可以更輕松地編寫,測試和運行MR管道。
DataFu 用于進行大規(guī)模分析的有用統(tǒng)計UDF庫。
Mahout 用于群集,分類和協(xié)作過濾的庫。
Parquet 在Hadoop中提供壓縮,高效的列式數(shù)據(jù)表示。
Pig 提供使用高級語言批量分析大型數(shù)據(jù)集的框架。
MapReduce 強大的并行數(shù)據(jù)處理框架。
Pig 數(shù)據(jù)流語言和編譯器
Sqoop 利用集成到Hadoop的數(shù)據(jù)庫和數(shù)據(jù)倉庫
Sentry 為Hadoop用戶提供精細支持,基于角色的訪問控制。
Kudu 完成Hadoop的存儲層,以實現(xiàn)對快速數(shù)據(jù)的快速分析。

二、CDH6.1.0安裝前環(huán)境的部署

CDH的部署方式:聯(lián)網(wǎng)安裝,離線包安裝。

1、CM6.1.0以及CDH6.1.0的安裝:

系統(tǒng)環(huán)境:

  • 主機規(guī)劃:]
主機名 角色 IP地址 用途 配置
Centos210.com 主節(jié)點 10.18.223.210 CM、Cloudera Server、mysql 8C/16G/150G
Centos151.com 從節(jié)點 10.18.223.151 Cloudera Agent 8C/16G/150G
Centos239.com 從節(jié)點 10.18.223.239 Cloudera Agen 8C/16G/150G
Centos65.com 從節(jié)點 10.17.87.65 Cloudera Agen 8C/16G/150G

PS:主機的內(nèi)存最好在10G以上,才能保證環(huán)境的正常運行。

2、提前下載相關(guān)的RPM安裝包以及封裝的組件的Parcel包。

Cloudera Manager以及相關(guān)依賴環(huán)境、jdk、agent以及server的下載地址:

  • cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm
  • cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm
  • cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm
  • cloudera-manager-server-db-2-6.1.0-769885.el7.x86_64.rpm
  • oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm

3、在主節(jié)點上配置Cloudera Manager倉庫,便于從節(jié)點的agetn的安裝(添加存儲庫的時候會用到)。

 yum -y install httpd createrepo
systemctl start httpd && systemctl enable httpd
cd /var/www/html/cloudera-repos/ && createrepo .  #生成RPM元數(shù)據(jù):
ll /var/www/html/cloudera-repos/

cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm  
cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm    
cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm 
cloudera-manager-server-db-2-6.1.0-769885.el7.x86_64.rpm    
oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
repodata

4、Centos7.6版本下的CDH6.1.0二進制Parcel包下載地址(下載與系統(tǒng)匹配的包):https://archive.cloudera.com/cdh6/6.1.0/parcels/

  • CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel
  • CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha256
  • manifest.json

5、每臺服務器進行系統(tǒng)環(huán)境設(shè)置:

①、分別給每臺服務器修改主機名:
hostnamectl set-hostname cdh210.com
hostnamectl set-hostname cdh151.com
hostnamectl set-hostname cdh239.com
hostnamectl set-hostname cdh65.com

②、每臺服務器分別把主機名與ip對應關(guān)系寫進/etc/hosts上。

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
10.18.223.151 cdh151.com
10.18.223.239 cdh239.com
10.18.223.210 cdh210.com
10.17.87.65 cdh65.com

③、每臺服務器永久關(guān)閉防火墻、selinux:

systemctl stop firewalld.service                #關(guān)閉防火墻
systemctl disable firewalld.service             #設(shè)置防火墻關(guān)閉啟動
setenforce 0                                    #臨時關(guān)閉selinux
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #永久關(guān)閉selinux

④、每臺服務器配置ntp服務,添加時間服務器,并啟動時間服務器,開機啟動,寫入硬件時鐘:

#yum -y install ntp
#sed -i 's/server 0.centos.pool.ntp.org iburst/#server 0.centos.pool.ntp.org iburst/g' #/etc/ntp.conf     
#sed -i 's/server 1.centos.pool.ntp.org iburst/#server 1.centos.pool.ntp.org iburst/g' #/etc/ntp.conf
#sed -i 's/server 2.centos.pool.ntp.org iburst/#server 2.centos.pool.ntp.org iburst/g' #/etc/ntp.conf
#sed -i 's/server 3.centos.pool.ntp.org iburst/#server 3.centos.pool.ntp.org iburst/g' #/etc/ntp.conf
#sed  -ie 's/#server 3.centos.pool.ntp.org iburst/#server 3.centos.pool.ntp.org iburst \nserver 10.17.87.8/g' /etc/ntp.conf 
#systemctl restart ntpd && systemctl enable ntpd && ntpq -p  && hwclock -r

⑤、安裝python2.7(centos7.6默認安裝python2.7)

# python --version
Python 2.7.5

⑥、設(shè)置主節(jié)點服務器免密碼登陸從節(jié)點服務器

# ssh-keygen -t rsa

一路回車,生成無密碼的密鑰對。然后將公鑰添加到認證文件中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

設(shè)置ahthorized_keys的訪問權(quán)限,并發(fā)送到所有從節(jié)點服務器上

# chmod 600 ~/.ssh/authorized_keys
# scp ~/.ssh/authorized_keys root@10.17.87.65:~/.ssh/
# scp ~/.ssh/authorized_keys root@10.18.223.239:~/.ssh/
# scp ~/.ssh/authorized_keys root@10.17.87.65:~/.ssh/
# scp ~/.ssh/authorized_keys root@10.18.223.151:~/.ssh/

ps:發(fā)送公鑰到從節(jié)點上,進行ssh訪問,如果需要密碼說明發(fā)送沒成功,有可能是從節(jié)點上沒有創(chuàng)建 ~/.ssh/ 目錄,導致不成功,創(chuàng)建該目錄即可。

⑦、創(chuàng)建/opt/cloudera/parcel-repo/,并將下載的Parcels放到主節(jié)點上的/opt/cloudera/parcel-repo/中,
提前把下載的CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha256重命名為:CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha256

[root@cdh210 parcel-repo]# ll
CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel  
CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha    

三、CDH6.1.0的安裝:

1、主節(jié)點安裝repo,并導入GPG key:
#wget https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/
#rpm --import https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/RPM-GPG-KEY-cloudera
2、主節(jié)點上按照如下順序進行JDK、CM、server、agent安裝以及agent的安裝。
# yum -y install oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm 
# yum -y install  cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm  
# yum -y install cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm 
# yum -y install  cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm
3、數(shù)據(jù)庫5.6安裝:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
systemctl start mysqld
systemctl enable mysqld

初始化Mysql

/usr/bin/mysql_secure_installation

回車-Y-設(shè)置密碼-再次設(shè)置密碼-Y-N-Y-Y

4、備份數(shù)據(jù)庫配置文件,并修改數(shù)據(jù)庫的配置。
# cp /etc/my.cnf{,.bak}
vi /etc/my.cnf

[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
5、安裝MySQL JDBC Driver
#wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
#tar zxvf 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
6、給mysql數(shù)據(jù)庫創(chuàng)建需要用到的庫:scm、amon、rman、hue、metastore、sentry、nav、navms、oozie、hive
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm@123';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY ' amon@123';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman@123';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue@123';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'metastore@123';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry@123';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav@123';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms@123';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie@123';
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive@123';
flush privileges;
7、建立CM的數(shù)據(jù)庫:

如果數(shù)據(jù)庫和CM在一臺服務器上
···

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm

Enter SCM password: #輸入SCM的密碼
寫入如下:
JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing: /usr/java/jdk1.8.0_141-cloudera/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!
···

8、啟動CM服務:
# systemctl start cloudera-scm-server

四、CDH6.1.0的初始化

1、登陸CDH6.1.0

http://<server_IP>:7180
用戶名:admin
密碼:admin


cdh登陸界面
2、安裝步驟:

①、歡迎界面--ACCESS LIENCSE--選擇免費版本,完成。


選擇版本

②、再次進入安裝步驟(添加源與集群安裝agent)
歡迎(繼續(xù))
跳過Auto-TLS以自動創(chuàng)建證書:(后面配置麻煩,如果不開啟https,可以跳過此項)
添加主機(由于我已經(jīng)進行該主機的添加,因此沒法重復添加):


從節(jié)點添加

③、添加存儲:


添加源以及Parcel包

可以使用Public Cloudera Repo(需要聯(lián)網(wǎng),下載會慢點),
也可以直接使用搭建的存儲庫:http://10.18.223.210/cloudera-repos/

存儲庫的搭建:
備份其他repo,并在各個節(jié)點上創(chuàng)建repo文件:

# mv /etc/yum.repo,d/* /etc/yum.bak/
cd /etc/yum.repo.d/  && vi cloudera-manager.repo

添加如下內(nèi)容:

[cloudera-manager]
name=Cloudera Manager 6.0.1
baseurl=http://10.18.223.210/cloudera-repos/
gpgcheck=0
enabled=1

Parcel的選擇,如果按照要求將下載的Parcels放到主節(jié)點上的/opt/cloudera/parcel-repo/中,會出現(xiàn)CDH6.1.0,如果沒有,點擊更多選項進行查看路徑的選擇。

④JDK的安裝,由于我們在上面已經(jīng)進行JDK的安裝,此步驟直接繼續(xù)(不勾選)。
輸入主機的憑證--自動安裝Agent。(安裝Agent中遇到無法安裝的問題,有可能由于缺少rpm依賴包、主機之間無法通行)--安裝Parcels。

五、CDH6.1.0優(yōu)化:

1、虛擬內(nèi)存設(shè)置

Cloudera 建議將 /proc/sys/vm/swappiness 設(shè)置為 0。當前設(shè)置為 60。使用 sysctl 命令在運行時更改該設(shè)置并編輯 /etc/sysctl.conf 以在重啟后保存該設(shè)置。您可以繼續(xù)進行安裝,但可能會遇到問題,Cloudera Manager 報告您的主機由于交換運行狀況不佳。以下主機受到影響:
永久解決

sysctl -w vm.swappiness=0
echo vm.swappiness = 0 >> /etc/sysctl.conf
2、大內(nèi)存頁設(shè)置

大內(nèi)存頁禁用

echo never>/sys/kernel/mm/transparent_hugepage/defrag
echo never>/sys/kernel/mm/transparent_hugepage/enabled

六、CDH6.1.0集群安裝

1、選擇服型,我的業(yè)務類型選擇了,Operation Database。也可以自定義選擇自己所需要的服務,一般情況下,HDFS Hive Hue Yanr Zookeeper HBase即可滿足要求。
選擇服務
2、角色分配:選擇服務后,CDH會自動給節(jié)點進行角色分配,也可以自定義調(diào)整。
角色分配
3、數(shù)據(jù)庫設(shè)置,不同組件之間擁有不同的庫,我們在進行數(shù)據(jù)庫安裝的時候已經(jīng)進行數(shù)據(jù)庫的庫的創(chuàng)建,現(xiàn)在輸入進去即可使用。

到此,CDH集群的安裝已經(jīng)基本完成。

如果部署失敗,卸載CDH的環(huán)境重新進行部署。

systemctl stop  cloudera-scm-server
systemctl stop  cloudera-scm-agent
yum -y remove 'cloudera-manager-*'
yum clean all

到此CDH6.1.0的部署結(jié)束,登陸界面進行組建的部署。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容