CDH5.16.1採用rpm+http方式離線部署(圖解詳細流程)

機器準備

準備3臺機器,操作系統CentOS7.2,配置:至少2核8G
這裏我用了3臺阿里雲的主機(建議學習的小夥伴使用新加坡的機器,下載安裝包飛快
在這裏插入圖片描述

一 節點初始化

1.1 設置所有節點的hosts文件

ip地址設置爲內網地址

echo "172.21.119.114 hadoop001">> /etc/hosts 
echo "172.21.119.112 hadoop002">> /etc/hosts 
echo "172.21.119.113 hadoop003">> /etc/hosts

在這裏插入圖片描述

1.2 關閉防火牆和清空規則

systemctl stop firewalld
systemctl disable firewalld
iptables -F

1.3 關閉所有節點的selinux

將SELINUX=enforcing改爲SELINUX=disabled 設置後需要重啓才能⽣生效

 vi /etc/selinux/config 

在這裏插入圖片描述

1.4 設置所有節點的時區

設置所有節點爲 亞洲上海時區

timedatectl set-timezone Asia/Shanghai

查看是否設置成功

timedatectl status

在這裏插入圖片描述

如果timedatectl命令不會使用,可以使用幫助命令

timedatectl --help

在這裏插入圖片描述

1.5 時鐘同步

這裏才用主從同步,就是hadoop001服務器跟互聯網時間同步,hadoop002和hadoop003服務器根據這臺服務器的時間進行同步

三臺機器一起安裝ntp

yum install -y ntp

1.5.1 選取hadoop001爲ntp主節點

vi /etc/ntp.conf

在ntp.conf文件添加下面兩行

#當外部時間不不可⽤用時,可使⽤用本地硬件時間
server 127.127.1.0 iburst local clock 
#允許哪些⽹網段的機器器來同步時間,我這裏的網段是172.21.119
restrict 172.21.119.0 mask 255.255.255.0 nomodify notrap

開啓ntp服務並查看狀態

systemctl start ntpd
systemctl status ntpd

在這裏插入圖片描述

1.5.2 從節點同步

設置hadoop002和hadoop003根據主節點hadoop001設置時間同步

先停止和禁用ntp

#停止
systemctl stop ntpd
#禁用
systemctl disable ntpd

設置同步主節點

ntpdate hadoop001

從下圖可以看到hadoop002與主節點相差的時間間隔
在這裏插入圖片描述
hadoop003 也執行1.5.2 步驟

1.5.3 添加定時任務

每天0點0分,從節點去同步主節點時間

hadoop002,hadoop003從節點都添加如下定時任務

 crontab -e
 00 00 * * * /usr/sbin/ntpdate hadoop001

二 jdk部署

2.1 jdk版本選擇

選擇jdk的時候看下官網的推薦,有些版本會有問題
地址:https://docs.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_jdk
在這裏插入圖片描述
jdk下載地址:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

下載好之後,上傳到hadoop001機器
然後把jdk安裝包拷貝到hadoop002,hadoop003

scp jdk-8u181-linux-x64.tar.gz hadoop002:/root
scp jdk-8u181-linux-x64.tar.gz hadoop003:/root

三臺機器一起創建java目錄(這裏java一定要安裝下面這個目錄,否則後面會出現問題

mkdir /usr/java

然後三臺機器一起解壓

tar -zxvf /root/jdk-8u181-linux-x64.tar.gz -C /usr/java 

三臺機器修改用戶和用戶組

chown -R root:root /usr/java

三臺機器添加java環境變量
先編輯/etc/profile

vi /etc/profile

再添加如下的環境

# java env
export JAVA_HOME=/usr/java/jdk1.8.0_181
export PATH=${JAVA_HOME}/bin:$PATH

然後生效環境變量,查看是否安裝好
在這裏插入圖片描述
到這裏說明jdk安裝ok


三 MySQL 安裝

安裝MySQL建議使用5.7 經典版本,別搞個5.8 版本,到時候cdh不支持
可以查看官網的支持版本(如果你使用的cdh版本是5.0-5.9,那麼MySQL 5.7不支持
https://docs.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#cdh_cm_supported_db
在這裏插入圖片描述
MySQL下載地址
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
下載好之後上傳到hadoop001

1.將mysql解壓,並重命名

tar -zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /usr/local
mv /usr/local/mysql-5.7.11-linux-glibc2.5-x86_64 /usr/local/mysql

2.創建必要的數據目錄

cd /usr/local/mysql
mkdir arch data tmp

3.編輯my.cnf文件

vi /etc/my.cnf

添加如下內容(我們生產的配置文件,生產上只要把pool size改成8G左右就行了

[client]
port            = 3306
socket          = /usr/local/mysql/data/mysql.sock
default-character-set=utf8mb4

[mysqld]
port            = 3306
socket          = /usr/local/mysql/data/mysql.sock

skip-slave-start

skip-external-locking
key_buffer_size = 256M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
query_cache_size= 32M
max_allowed_packet = 16M
myisam_sort_buffer_size=128M
tmp_table_size=32M

table_open_cache = 512
thread_cache_size = 8
wait_timeout = 86400
interactive_timeout = 86400
max_connections = 600

# Try number of CPU's*2 for thread_concurrency
#thread_concurrency = 32 

#isolation level and default engine 
default-storage-engine = INNODB
transaction-isolation = READ-COMMITTED

server-id  = 1739
basedir     = /usr/local/mysql
datadir     = /usr/local/mysql/data
pid-file     = /usr/local/mysql/data/hostname.pid

#open performance schema
log-warnings
sysdate-is-now

binlog_format = ROW
log_bin_trust_function_creators=1
log-error  = /usr/local/mysql/data/hostname.err
log-bin = /usr/local/mysql/arch/mysql-bin
expire_logs_days = 7

innodb_write_io_threads=16

relay-log  = /usr/local/mysql/relay_log/relay-log
relay-log-index = /usr/local/mysql/relay_log/relay-log.index
relay_log_info_file= /usr/local/mysql/relay_log/relay-log.info

log_slave_updates=1
gtid_mode=OFF
enforce_gtid_consistency=OFF

# slave
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=4
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON

#other logs
#general_log =1
#general_log_file  = /usr/local/mysql/data/general_log.err
#slow_query_log=1
#slow_query_log_file=/usr/local/mysql/data/slow_log.err

#for replication slave
sync_binlog = 500


#for innodb options 
innodb_data_home_dir = /usr/local/mysql/data/
innodb_data_file_path = ibdata1:1G;ibdata2:1G:autoextend

innodb_log_group_home_dir = /usr/local/mysql/arch
innodb_log_files_in_group = 4
innodb_log_file_size = 1G
innodb_log_buffer_size = 200M

#根據生產需要,調整pool size 
innodb_buffer_pool_size = 2G
#innodb_additional_mem_pool_size = 50M #deprecated in 5.6
tmpdir = /usr/local/mysql/tmp

innodb_lock_wait_timeout = 1000
#innodb_thread_concurrency = 0
innodb_flush_log_at_trx_commit = 2

innodb_locks_unsafe_for_binlog=1

#innodb io features: add for mysql5.5.8
performance_schema
innodb_read_io_threads=4
innodb-write-io-threads=4
innodb-io-capacity=200
#purge threads change default(0) to 1 for purge
innodb_purge_threads=1
innodb_use_native_aio=on

#case-sensitive file names and separate tablespace
innodb_file_per_table = 1
lower_case_table_names=1

[mysqldump]
quick
max_allowed_packet = 128M

[mysql]
no-auto-rehash
default-character-set=utf8mb4

[mysqlhotcopy]
interactive-timeout

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

4.創建用戶和用戶組

groupadd -g 101 dba
useradd -u 514 -g dba -G root -d /usr/local/mysql mysqladmin

如果mysqladmin用戶已經存在,可以執行下面命令

usermod -u 514 -g dba -G root -d /usr/local/mysql mysqladmin

5.copy 環境變量配置文件至mysqladmin用戶的home目錄中,爲了後面步驟配置個人環境變量

 cp /etc/skel/.* /usr/local/mysql 

6.賦權和用戶組

chown  mysqladmin:dba /etc/my.cnf 
chmod  640 /etc/my.cnf  
chown -R mysqladmin:dba /usr/local/mysql
chmod -R 755 /usr/local/mysql

7.配置環境變量
先切換到mysqladmin用戶

su - mysqladmin

編輯環境配置文件(注意這裏編輯的是.bashrc)

vi ~/.bashrc

添加如下內容

export MYSQL_BASE=/usr/local/mysql
export PATH=${MYSQL_BASE}/bin:$PATH

然後生效配置文件

source /usr/local/mysql/.bashrc

8.配置服務及開機自啓動

先切換到root用戶,再執行下面命令

cd /usr/local/mysql
#將服務文件拷貝到init.d下,並重命名爲mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysql 
#賦予可執行權限
chmod +x /etc/rc.d/init.d/mysql
#添加服務
chkconfig --add mysql

9.安裝libaio

yum -y install libaio

10.初始化

切換到mysqladmin用戶

su - mysqladmin

執行初始化命令

bin/mysqld \
--defaults-file=/etc/my.cnf \
--user=mysqladmin \
--basedir=/usr/local/mysql/ \
--datadir=/usr/local/mysql/data/ \
--initialize

等待幾十秒就ok

11.查看臨時密碼
在這裏插入圖片描述
臨時密碼在data目錄下的hostname.err裏,通過下面命令查看

cat hostname.err | grep password

下圖中爲安裝之後的臨時密碼
在這裏插入圖片描述
12.啓動mysql

service mysql start

13.登陸

mysql -uroot -p'u)eUJxf9p*tw'

修改密碼

mysql> alter user root@localhost identified by 'password';
Query OK, 0 rows affected (0.05 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected, 1 warning (0.02 sec)
#刷新權限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;

14.重啓mysql

service mysql restart

四 元數據+用戶+jdbc包

先登陸mysql

mysql -uroot -p'password'

1.創建元數據庫

create database cmf default character set utf8;
create database amon default character set utf8;

2.創建數據庫授權用戶

grant all privileges on cmf.* to 'cmf'@'%' identified by 'ruozedata';
grant all privileges on amon.* to 'amon'@'%' identified by 'ruozedata';

刷新權限

flush privileges;

3.準備jdbc包

自己下載個jdbc驅動包即可(上傳到hadoop001)
在這裏插入圖片描述
創建目錄(目錄不要隨便放置

mkdir -p /usr/share/java

拷貝驅動包(移除版本號

cp mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar

五 CM部署

前面都屬於我們準備工作,下面開始CM部署
因爲CM是一個主從架構,我們在hadoop001安裝Server,在每臺機器安裝Agent

下載地址:https://archive.cloudera.com/cm5/repo-as-tarball/5.16.1/

wget https://archive.cloudera.com/cm5/repo-as-tarball/5.16.1/cm5.16.1-centos7.tar.gz

在這裏插入圖片描述
對tar包解壓

tar -zxvf cm5.16.1-centos7.tar.gz

查看rmp包

cd cm/5.16.1/RPMS/x86_64/

在這裏插入圖片描述
我們只需要用圖中框框部分的rpm包即可
cloudera-manager-daemons-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm 是agent和server公用的包
所以安裝server時需要
cloudera-manager-daemons-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm
cloudera-manager-server-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm
安裝agent時需要
cloudera-manager-daemons-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm
cloudera-manager-agent-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm

5.1 安裝Server

1.先安裝daemons

rpm -ivh cloudera-manager-daemons-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm --nodeps --force

2.然後安裝server

rpm -ivh cloudera-manager-server-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm --nodeps --force

3.修改數據庫配置文件
進入配置文件目錄

cd /etc/cloudera-scm-server

修改配置文件

vi db.properties

按照自己的參數進行設置
在這裏插入圖片描述
4.啓動服務

service cloudera-scm-server start

啓動之後,查看日誌(要等1分鐘左右

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

看到7180端口,說明Server安裝成功
在這裏插入圖片描述

5.2 安裝Agent

Agent要在三臺機器都安裝,我們先把daemons和agent都拷貝到hadoop002和hadoop003機器

scp cloudera-manager-daemons-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm hadoop002:/root
scp cloudera-manager-daemons-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm hadoop003:/root
scp cloudera-manager-agent-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm hadoop002:/root
scp cloudera-manager-agent-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm hadoop003:/root

下面對三臺機器進行安裝

1.hadoop001安裝agent(hadoop001剛纔已經安裝過daemons了)

rpm -ivh cloudera-manager-agent-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm --nodeps --force

2.hadoop002和hadoop003安裝agent

rpm -ivh cloudera-manager-daemons-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm --nodeps --force
rpm -ivh cloudera-manager-agent-5.16.1-1.cm5161.p0.1.el7.x86_64.rpm --nodeps --force

3.三臺機器都編輯config.ini

vi /etc/cloudera-scm-agent/config.ini

都指向Server hadoop001
在這裏插入圖片描述
4.三臺機器啓動agent

service cloudera-scm-agent start

六 CDH下載parcel並搭建http服務

1.在hadoop001安裝httpd

yum install -y httpd

2.下載CDH5.16.1
https://archive.cloudera.com/cdh5/parcels/5.16.1/
在這裏插入圖片描述
命令如下

wget https://archive.cloudera.com/cdh5/parcels/5.16.1/CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel
wget https://archive.cloudera.com/cdh5/parcels/5.16.1/CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1
wget https://archive.cloudera.com/cdh5/parcels/5.16.1/manifest.json

下載好之後的文件如下圖,
在這裏插入圖片描述
3.在/var/www/html下創建cdh5_parcel目錄

mkdir /var/www/html/cdh5_parcel

4.把下載好之後的文件移動到cdh5_parcel目錄(注意把.sha1改成.sha

mv CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel /var/www/html/cdh5_parcel/
mv CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 /var/www/html/cdh5_parcel/CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parc
el.sha
mv manifest.json /var/www/html/cdh5_parcel/

在這裏插入圖片描述
5.啓動httpd

service httpd start

從下圖可以看出,我們本地的倉庫安裝好了
在這裏插入圖片描述

七訪問WebUI

地址爲server的ip:port,默認賬號:admin,密碼:admin
在這裏插入圖片描述
在這裏插入圖片描述
選擇免費
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
顯示大頁面
在這裏插入圖片描述
我們執行下命令(三臺機器都執行

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

在這裏插入圖片描述
選擇Custom Services(上來不要一下子全安裝了,先安裝基本的,不然到時候出問題都不知道哪裏出問題)
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
到這裏安裝成功

八 CM界面的問題解決

8.1 解決cloudera manager

在這裏插入圖片描述

8.2 解決zookeeper問題

點擊All Hosts->hadoop002
在這裏插入圖片描述
下面圖提示,我們NTP服務沒有啓動,因爲我們時間是主從同步的,所以這裏直接點擊Suppress
在這裏插入圖片描述
在這裏插入圖片描述
到這裏都ok了,如下圖。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章