[TOC]html
CDH是Apache Hadoop和相關項目的最完整、最受測試和最流行的發行版。CDH提供Hadoop的核心元素-可伸縮存儲和分佈式計算-以及基於web的用戶界面和重要的企業功能。CDH是Apache許可的開放源碼,是惟一提供統一批處理、交互式SQL和交互式搜索以及基於角色的訪問控制的Hadoop解決方案。java
CDH 提供如下特性:node
CDH 組件以下圖:mysql
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安裝。
類目 | 版本 | 下載地址 |
---|---|---|
操做系統 | 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 |
編輯/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
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
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
必須安裝的。
rpm -ivh jdk-8u162-linux-x64.rpm
建議離線安裝,把rpm包下載到服務器上面,傳到其餘節點一份,再本地安裝,速度會快不少。
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
yum install cloudera-manager-daemons cloudera-manager-agent
咱們這裏如今 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!
用於各節點鏈接數據庫。
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
使用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';
[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!
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/*
[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}
瀏覽器打開http://172.18.8.200:7183
,用戶名和密碼默認都是admin
。
接收許可。
這裏咱們選擇免費版,收費版請自行選擇。
指定要添加的節點。
選擇存儲庫,以前咱們已經在 CM Server 節點配置好了。
不進行勾選,選擇咱們本身安裝的 JDK。
提供 SSH 登陸憑據。
安裝 agents,由於以前咱們已經安裝了,因此這裏速度會很快。
安裝選定的Parcel,以前咱們已經下載好,並配置好放在的 CM Server 節點的
/opt/cloudera/parcel-repo
。
檢查主機正確性。
選擇要安裝的服務,能夠根據本身的需求進行軟件安裝。
自定義角色分配。
數據庫設置。
審覈更改,若是有特定目錄的設定或者參數的設定,能夠在這裏進行更正。
首次運行。
安裝完成。
首頁Dashboard。
HDFS。
HBase。
安裝參考文檔:https://www.cloudera.com/documentation/enterprise/6/latest/topics/installation.html