Centos7使用CDH6.3.0安裝大數據集羣

修改網絡和主機名

cdh6-master

[root@cdh6-master ~]# hostnamectl set-hostname cdh6-master

[root@cdh6-master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=bdf6fb11-50f4-403a-8ba6-b9dca61a591e
DEVICE=ens33
ONBOOT=yes

IPADDR=192.168.200.125
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=8.8.8.8

cdh6-slave1

[root@cdh6-slave1 ~]# hostnamectl set-hostname cdh6-slave1

[root@cdh6-slave1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=e2b4e53e-5a4d-4b20-b6ff-39a67539214a
DEVICE=ens33
ONBOOT=yes

IPADDR=192.168.200.126
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=8.8.8.8

cdh6-slave2

[root@cdh6-slave2 ~]# hostnamectl set-hostname cdh6-slave2

[root@cdh6-slave2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=a15136a1-c83b-4750-9ff3-2ca779e39818
DEVICE=ens33
ONBOOT=yes

IPADDR=192.168.200.127
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=8.8.8.8

關閉防火牆和SELinux

vi /etc/hostsjava

192.168.200.125        cdh6-master
192.168.200.126        cdh6-slave1
192.168.200.127        cdh6-slave2
# 關閉防火牆
systemctl stop firewalld
# 禁止防火牆開機自啓
systemctl disable firewalld
# 臨時生效
setenforce 0
# 永久生效
修改 /etc/selinux/config 下的 SELINUX=disabled

SSH免密登錄

cdh6-master節點(只須要主節點能免密登錄其它節點以及本身就能夠了):python

# 輸入以後一直回車
ssh-keygen    

# 賦值祕鑰到其它節點包括本身
ssh-copy-id   cdh6-master
ssh-copy-id   cdh6-slave1
ssh-copy-id   cdh6-slave2

注意事項:若是出現 ssh-copy-id: command not found 須要執行該命令(yum -y install openssh-clientsmysql

集羣時間同步

全部節點

#所有節點安裝ntp
rpm -qa |grep ntpd
###沒有安裝ntp,則須要安裝此服務
yum install -y ntp

cdh6-master

vi /etc/ntp.conf
###去掉這個註釋,將地址改爲網段地址
restrict 192.168.200.2 mask 255.255.255.0 nomodify notrap

###註釋掉這幾個
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

###添加一下內容
server 127.127.1.0
fudge  127.127.1.0  stratum  10

vi /etc/sysconfig/ntpd
###加入下面一句話,用於配置boot時間和系統時間同步
SYNC_HWCLOCK=yes
###可選,選擇上海時區
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

cdh6-slave1cdh6-slave2

輸入 crontab -e 命令進入編輯狀態,而後輸入一下內容(該任務保存在目錄/var/spool/cron 下,必須用root用戶才能看到  )
* * * * * /usr/sbin/ntpdate        cdh6-master

啓動全部節點的ntp

service ntpd start

chkconfig ntpd on

安裝repo、GPG key、jdk

全部節點。
# 安裝repo,若是沒有wget就yum install -y wget
wget https://archive.cloudera.com/cm6/6.3.0/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/

# 導入GPG key
rpm --import https://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPM-GPG-KEY-cloudera
# 安裝jdk
yum install -y oracle-j2sdk1.8
# 配置java環境變量
vi /etc/profile
# 最後面加上
export JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera
export PATH=$PATH:$JAVA_HOME/bin
# 生效環境變量
source /etc/profile

上傳cdh資源包到cdh6-master節點

cdh6-slave1安裝MySQL

cdh-slave1節點。
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 -y mysql-server

systemctl start mysqld

systemctl enable mysqld
###初始化Mysql

/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!

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

注意:linux

必定要將mysql-connector-java-5.1.46-bin.jar更名爲mysql-connector-java.jar,否則初始化cm的時候沒法識別。sql

建立數據庫

在安裝MySQL數據庫的 cdh6-slave1節點。

須要建的庫有scm、amon、rman、hue、metastore、sentry、nav、navms、oozieshell

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

開放遠程權限:數據庫

mysql> use mysql;

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

mysql> grant all privileges on *.* to 'scm'@'master.cdh6' identified by '123456' with grant option;

mysql> flush privileges;

初始化數據庫

我這裏MySQL安裝在 cdh6-slave1節點,cm-server安裝在 cdh6-master節點。
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h cdh6-slave1 --scm-host cdh6-master scm scm

注意事項,若是MySQL和cm-server在一臺服務器上:json

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

離線安裝cdh

下載安裝包

CM

CDH

注意:centos

CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel.sha256重命名爲CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel.sha,這點必須注意不然,系統會從新下載。api

https://archive.cloudera.com/...

而後,CDH-6.3.0-1.cdh6.3.0.p0.1279813-el7.parcel.sha中的祕鑰修改成對應版本的祕鑰。

我選的這個版本的祕鑰:https://archive.cloudera.com/...

解壓CM安裝包

環境依賴安裝:

yum install -y perl

yum install -y bind-utils psmisc libxslt cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs httpd mod_ssl openssl-devel python-psycopg2 MySQL-python /lib/lsb/init-functions libpq.so.5

全部節點:

rpm -ivh cloudera-manager-daemons-6.3.0-1281944.el7.x86_64.rpm

rpm -ivh cloudera-manager-agent-6.3.0-1281944.el7.x86_64.rpm

僅僅在master節點:

rpm -ivh cloudera-manager-server-6.3.0-1281944.el7.x86_64.rpm

修改全部節點的CM主機指向

vi /etc/cloudera-scm-agent/config.ini
# 將server_host修改成CM-Server所在的主機名
server_host=cdh6-master

啓動cdh6-master節點的cloudera-scm-server

systemctl start cloudera-scm-server

等待server啓動完畢以後,再啓動全部節點的cloudera-scm-agent

systemctl start cloudera-scm-agent

安裝大數據組件

可能會遇到的問題

虛擬內存設置

Cloudera 建議將 /proc/sys/vm/swappiness 設置爲 0。當前設置爲 60。使用 sysctl 命令在運行時更改該設置並編輯 /etc/sysctl.conf 以在重啓後保存該設置。您能夠繼續進行安裝,但可能會遇到問題,Cloudera Manager 報告您的主機因爲交換運行情況不佳。如下主機受到影響:

臨時解決

經過echo 0 > /proc/sys/vm/swappiness便可解決。

永久解決

sysctl -w vm.swappiness=0

echo vm.swappiness = 0 >> /etc/sysctl.conf

大內存設置

大內存頁禁用

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

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

升級軟件依賴版本

Starting with CDH 6, PostgreSQL-backed Hue requires the Psycopg2 version to be at least 2.5.4, see the documentation for more information. This warning can be ignored if hosts will not run CDH 6, or will not run Hue with PostgreSQL. The following hosts have an incompatible Psycopg2 version of '2.5.1'

解決方法:能夠忽略。

yum install python-pip

pip install --upgrade psycopg2

安裝Parcel提示主機運行情況不良

解決方法

刪除agent目錄下面的cm_guid文件,並重啓失敗節點的agent服務恢復。

find / -name cm_guid
/var/lib/cloudera-scm-agent/cm_guid

刪除它/var/lib/cloudera-scm-agent/cm_guid

###重啓agent
systemctl cloudera-scm-agent restart
歡迎關注個人公衆號:會打籃球的程序猿

微信公衆號自助提取精品免費視頻學習教程!

須要什麼自助提取!海量視頻,自助提取!免費!

若是您對個人專題內容感興趣,也能夠關注個人博客:www.lzhpo.com

相關文章
相關標籤/搜索