CDH搭建教程(親測可用)


一、概念介紹

1、CDH 概覽

CDH是Apache Hadoop和相關項目的最完整、最受測試和最流行的發行版。CDH提供Hadoop的核心元素-可伸縮存儲和分布式計算-以及基於web的用戶界面和重要的企業功能。CDH是Apache許可的開放源碼,是唯一提供統一批處理、交互式SQL和交互式搜索以及基於角色的訪問控制的Hadoop解決方案。

CDH 提供以下特性:

  • 靈活性:存儲任何類型的數據並使用各種不同的計算框架進行操作,包括批處理、交互式SQL、免費文本搜索、機器學習和統計計算。
  • 集成:在一個完整的Hadoop平台上快速啟動和運行,該平台與廣泛的硬件和軟件解決方案一起工作。
  • 安全:處理和控制敏感數據。
  • 可伸縮性:啟用廣泛的應用程序和規模,並擴展它們以滿足您的需求。
  • 高可用性:滿懷信心地執行任務關鍵的業務任務。
  • 兼容性:利用您現有的IT基礎設施和投資。

CDH 組件如下圖:

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解

2、Cloudera Manager 概覽

Cloudera Manager 是用於管理cdh集群的端到端應用程序。Cloudera Manager通過向CDH集群的每個部分提供細粒度的可見性並對其進行控制來設置企業部署標准-授權運營商提高性能、提高服務質量、提高遵從性和降低管理成本。使用Cloudera Manager,您可以輕松地部署和集中操作完整的CDH堆棧和其他托管服務。應用程序自動化安裝過程,將部署時間從數周減少到分鍾;為您提供在集群范圍內運行主機和服務的實時視圖;提供一個單一的中央控制台來執行整個集群的配置更改;並集成各種報告和診斷工具,以幫助您進行操作。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解

Cloudera Manager 的架構如上圖所示(cs結構),主要由如下幾部分組成:

  • 服務端/Server:
    Cloudera Manager 的核心。主要用於管理 web server 和應用邏輯。它用於安裝軟件,配置,開始和停止服務,以及管理服務運行的集群。

  • 代理/agent:
    安裝在每台主機上。它負責啟動和停止的進程,部署配置,觸發安裝和監控主機。

  • 數據庫/Database:
    存儲配置和監控信息。通常可以在一個或多個數據庫服務器上運行的多個邏輯數據庫。例如,所述的 Cloudera 管理器服務和監視,后台程序使用不同的邏輯數據庫。

  • Cloudera Repository:由cloudera manager 提供的軟件分發庫。

  • 客戶端/Clients:
    提供了一個與 Server 交互的接口。

Cloudera Manager包括server端和agent;server端主要作用是監控集群分發配置集群等,agent端主管集群各節點。
CDH是CM的安裝包,本地或者雲端,其中包括hadoop的生態系統需要的所有組件,通過Cloudera Manager統一管理和安裝。
CDH除了可以通過cm安裝也可以通過yum,tar,rpm安裝。

二、環境准備

1、軟件版本選擇

類目 版本 下載地址
操作系統 CentOS Linux release 7.5.1804 (Core) 使用阿里雲鏡像下載
數據庫 5.5.60-MariaDB yum源安裝
JDK jdk-8u162-linux-x64.rpm Oracle 官網下載
Cloudera Manager Cloudera Manager 6.0.1 官方倉庫
CDH CDH 6.0.1 使用parcels安裝

2、節點准備(四個節點)

名稱 IP CM管理軟件
namenode01.wzlinux.com 172.18.8.200 Cloudera Manager Server&Agent ,MariaDB
datanode01.wzlinux.com 172.18.8.201 Cloudera Manager Agent
datanode02.wzlinux.com 172.18.8.202 Cloudera Manager Agent
datanode03.wzlinux.com 172.18.8.203 Cloudera Manager Agent

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解

3、配置主機名和hosts解析(所有節點)

編輯/etc/hostname,修改主機名,並使用命令hostname使其立刻生效。
編輯文件/etc/hosts,增加如下內容。

172.18.8.200 namenode01.wzlinux.com namenode01 172.18.8.201 datanode01.wzlinux.com datanode01 172.18.8.202 datanode02.wzlinux.com datanode02 172.18.8.203 datanode03.wzlinux.com datanode03

4、關閉防火牆

systemctl stop firewalld.service systemctl disable firewalld.service

5、關閉SELinux

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config setenforce 0

6、添加定時任務

echo "$((RANDOM%60)) $((RANDOM%24)) * * * /usr/sbin/ntpdate time1.aliyun.com" >> /var/spool/cron/root

7、禁用透明大頁面壓縮

CDH配置需要

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

並將上面的兩條命令寫入開機自啟動/etc/rc.local

8、優化交換分區

echo "vm.swappiness = 10" >> /etc/sysctl.conf sysctl -p

三、安裝 CM 和 CDH

1、配置 Cloudera Manager 倉庫(所有節點)

wget https://archive.cloudera.com/cm6/6.0.1/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

使用倉庫安裝會比較慢,建議先把需要的rpm下載下來,進行離線安裝或者建私有倉庫,主要下面的三個軟件包:

cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm

cloudera-manager-daemons 是 server 和 agent 必須安裝的。

2、配置 JDK (所有節點)

rpm -ivh jdk-8u162-linux-x64.rpm

3、安裝 CM Server 和 Agent

建議離線安裝,把rpm包下載到服務器上面,傳到其他節點一份,再本地安裝,速度會快很多。

  • namenode01
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
  • datanode0[1-3]
yum install cloudera-manager-daemons cloudera-manager-agent

4、安裝數據庫(namenode01)

我們這里現在 CentOS 7.5 自帶的 MariaDB,版本是支持的。

yum install mariadb-server -y

編輯配置文件/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 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd 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_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 MariaDB, if you enable the binary log and do not set #a server_id, MariaDB 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/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d

打開數據庫

systemctl enable mariadb systemctl start mariadb

初始化數據庫

/usr/bin/mysql_secure_installation

按照下面提示輸入。

[...]
Enter current password for root (enter for none):
OK, successfully used password, moving on...
[...]
Set root password? [Y/n] Y New password: Re-enter new password: [...] Remove anonymous users? [Y/n] Y [...] Disallow root login remotely? [Y/n] N [...] Remove test database and access to it [Y/n] Y [...] Reload privilege tables now? [Y/n] Y [...] All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!

4、安裝 MySQL JDBC 驅動(所有節點)

用於各節點連接數據庫。

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

5、為 Cloudera 各軟件創建數據庫

使用root登陸數據庫,創建以下數據庫和賬號。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'wzlinux'; CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'wzlinux'; CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'wzlinux'; CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'wzlinux'; CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'wzlinux'; CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'wzlinux'; CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'wzlinux'; CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'wzlinux'; CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'wzlinux';

6、設置 Cloudera Manager 數據庫

[root@namenode01 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm Enter SCM password: JAVA_HOME=/usr/java/jdk1.8.0_162 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_162/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!

7、安裝 CDH

配置CDH的軟件包 parcels(namenode01)

CM安裝成功之后,接下來我們就可以通過CM安裝CDH的方式構建企業大數據平台。所以首先需要把CDH的parcels包下載到CM主服務器上。
同樣的,我們為了加速我們的安裝,我們可以把需要下載的軟件包提前下載下來,也可以創建CDH私有倉庫

[root@namenode01 ~]# cd /opt/cloudera/parcel-repo wget https://archive.cloudera.com/cdh6/6.0.1/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel wget https://archive.cloudera.com/cdh6/6.0.1/parcels/manifest.json

在manifest.json文件中,找到對應版本的秘鑰,復制到.sha文件中。

echo "2e650f1f1ea020a3efc98a231b85c2df1a50b030" > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha

修改屬主屬組。

chown cloudera-scm.cloudera-scm /opt/cloudera/parcel-repo/*

啟動 Cloudera Manager Server

[root@namenode01 ~]# systemctl start cloudera-scm-server

如果啟動中有什么問題,可以查看日志。

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

在最后顯示的日志中,有顯示啟動監聽的端口。

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}

四、初始化 Cloudera Manager

瀏覽器打開http://172.18.8.200:7183,用戶名和密碼默認都是admin

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
接收許可。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
這里我們選擇免費版,收費版請自行選擇。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解

五、集群安裝

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
指定要添加的節點。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
選擇存儲庫,之前我們已經在 CM Server 節點配置好了。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
不進行勾選,選擇我們自己安裝的 JDK。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
提供 SSH 登錄憑據。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
安裝 agents,因為之前我們已經安裝了,所以這里速度會很快。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
安裝選定的Parcel,之前我們已經下載好,並配置好放在的 CM Server 節點的/opt/cloudera/parcel-repo

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
檢查主機正確性。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解

六、集群設置

選擇要安裝的服務,可以根據自己的需求進行軟件安裝。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
自定義角色分配。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
數據庫設置。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
審核更改,如果有特定目錄的設定或者參數的設定,可以在這里進行更正。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
首次運行。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
安裝完成。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解

七、管理集群

首頁Dashboard。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
HDFS。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解
HBase。

CentOS 7下Cloudera Manager及CDH 6.0.1安裝過程詳解

可參考安裝

1、https://blog.csdn.net/huangzhilin2015/article/details/90215093

2、https://www.cnblogs.com/frankdeng/p/10136230.html

3、https://blog.csdn.net/weixin_42404341/article/details/104953324

4、https://www.cnblogs.com/yinzhengjie2020/tag/CDH/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM