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

[TOC]html

1、概念介紹

一、CDH 概覽

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

CDH 提供如下特性:node

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

CDH 組件以下圖:mysql

二、Cloudera Manager 概覽

Cloudera Manager 是用於管理cdh集羣的端到端應用程序。Cloudera Manager經過向CDH集羣的每一個部分提供細粒度的可見性並對其進行控制來設置企業部署標準-受權運營商提升性能、提升服務質量、提升聽從性和下降管理成本。使用Cloudera Manager,您能夠輕鬆地部署和集中操做完整的CDH堆棧和其餘託管服務。應用程序自動化安裝過程,將部署時間從數週減小到分鐘;爲您提供在集羣範圍內運行主機和服務的實時視圖;提供一個單一的中央控制檯來執行整個集羣的配置更改;並集成各類報告和診斷工具,以幫助您進行操做。linux

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

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

  • 代理/agent: 安裝在每臺主機上。它負責啓動和中止的進程,部署配置,觸發安裝和監控主機。數據庫

  • 數據庫/Database: 存儲配置和監控信息。一般能夠在一個或多個數據庫服務器上運行的多個邏輯數據庫。例如,所述的 Cloudera 管理器服務和監視,後臺程序使用不一樣的邏輯數據庫。json

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

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

Cloudera Manager包括server端和agent;server端主要做用是監控集羣分發配置集羣等,agent端主管集羣各節點。 CDH是CM的安裝包,本地或者雲端,其中包括hadoop的生態系統須要的全部組件,經過Cloudera Manager統一管理和安裝。 CDH除了能夠經過cm安裝也能夠經過yum,tar,rpm安裝。

2、環境準備

一、軟件版本選擇

類目 版本 下載地址
操做系統 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安裝

二、節點準備(四個節點)

名稱 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

三、配置主機名和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

四、關閉防火牆

systemctl stop firewalld.service
systemctl disable firewalld.service

五、關閉SELinux

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

六、添加定時任務

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

七、禁用透明大頁面壓縮

CDH配置須要

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

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

八、優化交換分區

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

3、安裝 CM 和 CDH

一、配置 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-daemonsserveragent 必須安裝的。

二、配置 JDK (全部節點)

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

三、安裝 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

四、安裝數據庫(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!

四、安裝 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

五、爲 Cloudera 各軟件建立數據庫

使用root登錄數據庫,建立如下數據庫和帳號。

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';

六、設置 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!

七、安裝 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}

4、初始化 Cloudera Manager

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

接收許可。

這裏咱們選擇免費版,收費版請自行選擇。

5、集羣安裝

指定要添加的節點。

選擇存儲庫,以前咱們已經在 CM Server 節點配置好了。

不進行勾選,選擇咱們本身安裝的 JDK。

提供 SSH 登陸憑據。

安裝 agents,由於以前咱們已經安裝了,因此這裏速度會很快。

安裝選定的Parcel,以前咱們已經下載好,並配置好放在的 CM Server 節點的/opt/cloudera/parcel-repo

檢查主機正確性。

6、集羣設置

選擇要安裝的服務,能夠根據本身的需求進行軟件安裝。

自定義角色分配。

數據庫設置。

審覈更改,若是有特定目錄的設定或者參數的設定,能夠在這裏進行更正。

首次運行。

安裝完成。

7、管理集羣

首頁Dashboard。

HDFS。

HBase。

安裝參考文檔:https://www.cloudera.com/documentation/enterprise/6/latest/topics/installation.html

相關文章
相關標籤/搜索