計劃用vmware虛擬機安裝三個節點,其中Cloudera Manager Server一臺(用來管理),cdh兩臺(Hadoop主從)。所有操作在root用戶下進行。
版本:
軟件 | 版本 |
---|---|
os | CentOS Linux release 7.5.1804 |
jdk | 1.8.0_141 |
cm(Cloudera Manager) | cm6(6.0.1) |
cdh(Parcels) | cdh6(6.0.1) |
mysql | mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar |
mysql-connector-java | 5.1.46 |
一、裝機,修改主機名,配置靜態ip
用vmware最小化安裝centos7後,修改主機名和hosts文件。
vi /etc/hostname
vi /etc/hosts
配置靜態ip
進入vmware,菜單欄選擇“編輯-虛擬網絡編輯器”,在最上邊選擇nat那個網卡,取消勾選最下邊的“使用本地dhcp服務……”,點擊中間的“nat設置”,記住ip、子網掩碼,網關。
然後本地的windows網絡設置,適配器設置裏找到vmware的對應的nat那個網卡,在ipv4設置裏改成靜態獲取,填上邊記住的內容。
進入虛擬機,vi /etc/sysconfig/network-scripts/ifcfg-ens33
,需要修改的:
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.xxx.xxx
NETMASK=255.255.255.0
GATEWAY=192.168.xxx.x
DNS1=8.8.8.8
DNS2=114.114.114.114
重啓:service network restart
或者systemctl restart network
安裝常用軟件(可以不裝)
yum install -y lrzsz
yum install -y net-tools
yum install -y wget
yum install -y vim-enhanced
yum install -y bash-completion
yum install -y git
yum install -y telnet
yum install -y telnet-server
二、環境配置
禁用selinux
修改配置文件/etc/sysconfig/selinux
,設置SELINUX=disabled
。
關閉防火牆
systemctl disable firewalld && systemctl stop firewalld && systemctl status firewalld
禁用透明大頁面壓縮
修改/etc/rc.local
文件並添加以下兩行:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
優化交換分區
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
三、安裝jdk
rpm方式安裝,下載地址用CM6 RPM的:
https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/
命令:
wget -c https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
rpm -ivh oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
# 使用rpm安裝的java在/usr/java/jdk1.8XXXX
ls /usr/java/
vim /etc/profile
# 添加如下
export JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera
export JRE_HOME=/usr/java/jdk1.8.0_141-cloudera/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# 生效
source /etc/profile
以上是集羣所有機器都要做的。可以配好一臺後關機打快照克隆。
四、ssh和ntp
ssh
在打算安裝cm server的那臺機器執行:
ssh-keygen #三次回車
然後發送公鑰給另兩臺機器以及自己本身:
ssh-copy-id 用戶名@機器IP #輸入yes和密碼
測試免密:
ssh 用戶名@機器IP
ntp
所有節點安裝相關ntp組件,設置時區,啓動:
yum install -y ntp
timedatectl set-timezone Asia/Shanghai
systemctl start ntpd
systemctl enable ntpd
配置ntp的服務器(選擇cm server那臺機器作爲服務器,其餘機器來同步它):
vim /etc/ntp.conf
# 修改
restrict 192.168.178.151 nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
# Hosts on local network are less restricted.
restrict 192.168.178.2 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#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
說明:最開始添加本機ip,中間部分添加網關和子網掩碼,最後部分註釋掉默認的並照抄填寫上述部分。
其餘機器的配置(要改本機ip部分和最後的服務器地址):
restrict 192.168.178.152 nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
# Hosts on local network are less restricted.
restrict 192.168.178.2 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#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 192.168.178.151
Fudge 192.168.178.151 stratum 10
在其它節點上手動同步服務器的時間:
ntpdate -u 192.168.178.151
ntpstat
五、配置本地cm yum庫
在cm server機器下載cm相關rpm包並搭建repo源。
CM6 RPM地址:
https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/
需要下載該鏈接下的所有RPM文件(jdk裝過了就不用了),保存到cloudera-repos
目錄下。
wget -c https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
wget -c https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
wget -c https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/cloudera-manager-server-db-2-6.0.1-610811.el7.x86_64.rpm
wget -c https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
還有個ASC文件要下載,地址:
https://archive.cloudera.com/cm6/6.0.1/allkeys.asc
同樣保存到cloudera-repos
目錄下:
wget -c https://archive.cloudera.com/cm6/6.0.1/allkeys.asc
下載完畢,開始安裝httpd和createrepo並啓動:
yum -y install httpd createrepo
systemctl start httpd
systemctl enable httpd
然後進入到前面準備好的存放Cloudera Manager RPM包的目錄cloudera-repos
下,生成RPM元數據:
createrepo .
然後將cloudera-repos
目錄移動到httpd的html
目錄下:
mv cloudera-repos /var/www/html/
確保可以通過瀏覽器查看到這些RPM包:
http://192.168.178.151/cloudera-repos/
接着在打算作爲Cloudera Manager Server的主機上創建cm6的repo文件:
cd /etc/yum.repos.d
vim cloudera-manager.repo
添加如下內容:
[cloudera-manager]
name=Cloudera Manager 6.0.1
baseurl=http://cdh601/cloudera-repos/
gpgcheck=0
enabled=1
然後執行yum clean all && yum makecache
命令。
六、安裝CM Server,配置本地parcel
在CM Server節點上操作,執行下面的命令:
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
其餘節點需要裝agent和daemon,這裏先不裝,後續用界面安裝。
然後配置本地Parcel存儲庫,後續界面離線安裝會用到,在Cloudera Manager Server安裝完成後,進入到本地Parcel存儲庫目錄:
cd /opt/cloudera/parcel-repo
CDH6 Parcels地址:https://archive.cloudera.com/cdh6/6.0.1/parcels/
需要下載CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel和manifest.json這兩個文件:
wget -c https://archive.cloudera.com/cdh6/6.0.1/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel
wget -c https://archive.cloudera.com/cdh6/6.0.1/parcels/manifest.json
然後執行命令生成sha文件:
sha1sum CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel | awk '{ print $1 }' > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha
然後執行下面的命令修改文件所有者:
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
七、安裝mysql和jdbc驅動,建庫
mysql
下載mysql的rpm地址:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
記得下載RPM Bundle版本。只在cm server機器安裝,移除自帶的MariaDB後開始安裝,順序執行:
yum -y remove mariadb-libs
tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
systemctl start mysqld
systemctl enable mysqld
查密碼,改密碼複雜度要求,設置新密碼:
grep password /var/log/mysqld.log
mysql -u root -p
mysql> set global validate_password_policy=0;
mysql> set password = password('12345678');
設置遠程登錄權限:
mysql> grant all privileges on *.* to 'root'@'%' identified by '12345678';
mysql> flush privileges;
修改mysql數據庫默認編碼:編輯/etc/my.cnf
文件,在[mysqld]
下面添加一行character-set-server=utf8
。重啓mysql服務:systemctl restart mysqld
。
jdbc
jdbc驅動最好全部節點都裝,後續別的組件也需要。
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar -xzvf mysql-connector-java-5.1.46.tar.gz
cd mysql-connector-java-5.1.46/
mkdir -p /usr/share/java/
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
建庫
需要爲 Cloudera 各軟件創建數據庫,使用root登陸數據庫,創建以下數據庫和賬號,密碼因爲複雜度要求都爲2w3e$R%T
。
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '2w3e$R%T';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '2w3e$R%T';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '2w3e$R%T';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '2w3e$R%T';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY '2w3e$R%T';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '2w3e$R%T';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '2w3e$R%T';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '2w3e$R%T';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '2w3e$R%T';
FLUSH PRIVILEGES;
八、啓動cm server服務,頁面安裝
啓動cm server服務
設置 Cloudera Manager 數據庫:
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
輸入前邊設置的scm的密碼。
啓動Cloudera Manager Server服務:
systemctl start cloudera-scm-server
監控服務啓動狀態:
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
等一會訪問頁面http://cm的機器IP:7180
,默認賬號和密碼都爲admin
。
頁面安裝
選擇主機
這一步是要搜索並選擇用於安裝CDH集羣的主機,在主機名稱後面的輸入框中輸入各個節點的hostname,中間使用英文逗號分隔開,然後點擊搜索,在結果列表中勾選要安裝CDH的節點即可:
指定存儲庫
指的是前邊配的cm rpm包和parcel的庫。
這裏選擇自定義,填寫上面使用httpd搭建好的Cloudera Manager YUM 庫URL。如果我們之前的配置本地Parcel存儲庫步驟操作無誤的話,這裏會自動選擇【使用Parcel】,並加載出CDH版本,確認無誤後點擊【繼續】:
接下里選擇是否安裝jdk,我們已手動安裝,不用選。
SSH登錄配置
用於配置集羣主機之間的SSH登錄,填寫root用戶的密碼,根據集羣配置填寫合適的【同時安裝數量】值即可:
然後會安裝agents和parcel。等待安裝。安裝完成後進入主機檢測頁面,檢測完成即可繼續安裝大數據組件。
參考資料:
https://www.cnblogs.com/mylovelulu/p/10384732.html
https://www.cnblogs.com/wzlinux/p/10183357.html
https://www.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_requirements_supported_versions.html