1.說明html
本次部署使用臺機器,3臺用於搭建CDH集羣,1臺爲內部源。內部源機器是能夠鏈接公網的,能夠提早部署好內部源,本次部署涉及到的服務器的hosts配置以下:java
192.168.10.114 sp-04node
192.168.10.115 sp-05python
192.168.10.116 sp-06mysql
本次安裝爲cdh5.10.0linux
須要centos版本:web
Jdk版本:jdk-8u73-linux-x64.tarsql
參考地址:https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_jdkshell
當前環境屬於從新作完系統情況(在不作特殊說明狀況下如下配置三臺服務器均作相同或類比操做)數據庫
1、更改hosts文件(我的習慣)
vim /etc/hosts
192.168.10.114 sp-04
192.168.10.115 sp-05
192.168.10.116 sp-06
2、修改主機名稱
從新鏈接
三、建立新用戶hadoop設置密碼
首先用adduser命令添加一個普通用戶,命令以下:
#adduser hadoop //添加一個名爲tommy的用戶
#passwd hadoop //修改密碼
Changing password for user tommy.
New UNIX password: //在這裏輸入新密碼
Retype new UNIX password: //再次輸入新密碼
passwd: all authentication tokens updated successfully.
adduser hadoop
passwd hadoop
三、免密碼登陸(因步驟相同因此把原來寫的直接複製過來)
主要操做步驟:
主節點執行命令生成密鑰:ssh-keygen -t rsa -P ""
2、進入文件夾cd .ssh (進入文件夾後能夠執行ls -a 查看文件)
3、將生成的公鑰id_rsa.pub 內容追加到authorized_keys(執行命令:cat id_rsa.pub >> authorized_keys)
從節點配置
一、以一樣的方式生成祕鑰(ssh-keygen -t rsa -P "" ),而後sp-02、sp-03、sp-04、sp-05和sp-06將生成的id_rsa.pub公鑰追加到sp-01的authorized_keys中)
執行命令scp id_rsa.pub sp-01:/home/hadoop/.ssh/id_rsa.pub.s1
(ps:id_rsa.pub.s1可視狀況定義sn;如下相同 只以s1爲例)
2、進入m1執行命令:cat id_rsa.pub.s1 >> authorized_keys
三、最後將生成的包含三個節點的祕鑰的authorized_keys 複製到sp-02、sp-03、sp-04、sp-05和sp-06的.ssh目錄下
scp authorized_keys sp-02:/home/hadoop/.ssh/
測試:ssh 主機名 例:ssh sp-02
作完以上步驟時可能會沒法互相免密碼登陸
解決方案
1、chmod 600 /home/hadoop/.ssh/authorized_keys
2、chmod 700 /home/hadoop/.ssh/
三、service sshd restart(ps:注意用戶權限問題)
時間同步:
使用ntpdate搭建時間同步
yum -y install ntpdate
ntpdate 210.72.145.44
關閉防火牆(注意centos 6 是iptables)
[root@sp-05~]# systemctl stop firewalld [root@sp-05~]# systemctl disable firewalld rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' rm '/etc/systemd/system/basic.target.wants/firewalld.service' [root@sp-05~]# systemctl status firewalld firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled) Active: inactive (dead)
|
JDK環境
版本:jdk-8u101-linux-x64.rpm
下載地址:oracle官網
CDH安裝相關的包
cloudera manager包 :cloudera-manager-centos7-cm5.10.0_x86_64.tar.gz
下載地址:http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.10.0_x86_64.tar.gz
CDH下載(注意centos要下載el7的)
CDH-5.10.0-1.cdh5.10.0.p0.41-el7.parcel
CDH-5.10.0-1.cdh5.10.0.p0.41-el7.parcel.sha1
下載地址:
http://archive.cloudera.com/cdh5/parcels/5.10.0/
開始安裝jdk(因每一臺都要安裝故展現機器編號無所謂)
將下載好的jdk上傳到服務器中
解壓 tar -zxvf jdk-8u73-linux-x64.tar.gz
配置環境變量
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_73
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
讓配置文件生效source /etc/profile
如下是我安裝須要用到的文件
安裝MySQL(只在其中一臺)
安裝mysql
centos7自帶的是mariadb,須要先卸載掉
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
1、配置YUM源
在MySQL官網中下載YUM源rpm安裝包:http://dev.mysql.com/downloads/repo/yum/
# 下載mysql源安裝包shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm# 安裝mysql源shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm
檢查mysql源是否安裝成功
shell> yum repolist enabled | grep "mysql.*-community.*"
看到上圖所示表示安裝成功
2、安裝MySQL
shell> yum install mysql-community-server
3、啓動MySQL服務
shell> systemctl start mysqld
查看MySQL的啓動狀態
shell> systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
Active: active (running) since 五 2016-06-24 04:37:37 CST; 35min ago
Main PID: 2888 (mysqld)
CGroup: /system.slice/mysqld.service
└─2888 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
6月 24 04:37:36 localhost.localdomain systemd[1]: Starting MySQL Server...6月 24 04:37:37 localhost.localdomain systemd[1]: Started MySQL Server.
4、開機啓動
shell> systemctl enable mysqldshell> systemctl daemon-reload
5、修改root默認密碼
mysql安裝完成以後,在/var/log/mysqld.log文件中給root生成了一個默認密碼。經過下面的方式找到root默認密碼,而後登陸mysql進行修改:
shell> grep 'temporary password' /var/log/mysqld.log
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
或者
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
注意:mysql5.7默認安裝了密碼安全檢查插件(validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,而且長度不能少於8位。不然會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤,以下圖所示:
經過msyql環境變量能夠查看密碼策略的相關信息:
mysql> show variables like '%password%';
validate_password_policy:密碼策略,默認爲MEDIUM策略 validate_password_dictionary_file:密碼策略文件,策略爲STRONG才須要 validate_password_length:密碼最少長度 validate_password_mixed_case_count:大小寫字符長度,至少1個 validate_password_number_count :數字至少1個 validate_password_special_char_count:特殊字符至少1個 上述參數是默認策略MEDIUM的密碼檢查規則。
共有如下幾種密碼策略:
策略 |
檢查規則 |
0 or LOW |
Length |
1 or MEDIUM |
Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG |
Length; numeric, lowercase/uppercase, and special characters; dictionary file |
MySQL官網密碼策略詳細說明:http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy
修改密碼策略
在/etc/my.cnf文件添加validate_password_policy配置,指定密碼策略
# 選擇0(LOW),1(MEDIUM),2(STRONG)其中一種,選擇2須要提供密碼字典文件
validate_password_policy=0
若是不須要密碼策略,添加my.cnf文件中添加以下配置禁用便可:
validate_password = off
從新啓動mysql服務使配置生效:
systemctl restart mysqld
6、添加遠程登陸用戶
默認只容許root賬戶在本地登陸,若是要在其它機器上鍊接mysql,必須修改root容許遠程鏈接,或者添加一個容許遠程鏈接的賬戶,爲了安全起見,我添加一個新的賬戶:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'yangxin'@'%' IDENTIFIED BY 'Yangxin0917!' WITH GRANT OPTION;
7、配置默認編碼爲utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加編碼配置,以下所示:
[mysqld]character_set_server=utf8 init_connect='SET NAMES utf8'
從新啓動mysql服務,查看數據庫默認編碼以下所示:
第三方依賴包
全部節點都安裝
yum install chkconfig python bind-utils psmisc libxslt zlib sqlite fuse fuse-libs redhat-lsb cyrus-sasl-plain cyrus-sasl-gssapi
注意這個地方依賴包不安裝完下面啓動集羣的時候會死活啓動不了的,這是血的教訓啊!
在hadoop1上準備mysql的jar包
[root@hadoop1]# mkdir -p /usr/share/java
修改jar包的名字,並拷貝到/usr/share/java/目錄(下面會有截圖說明爲何修改)
[root@hadoop1]# cp mysql-connector-java-5.1.36-bin.jar /usr/share/java/mysql-connector-java.jar
安裝Cloudera-Manager
解壓cm tar包到指定目錄,全部服務器都要
mkdir /opt/cloudera-manager
tar -axvf /home/hadoop/CDHInstallFile/cloudera-manager-centos7-cm5.10.0_x86_64.tar.gz -C /opt/cloudera-manager
複製文件到各個節點
scp /home/hadoop/CDHInstallFile/cloudera-manager-centos7-cm5.10.0_x86_64.tar.gz root@sp-04:/home/hadoop/
建立cloudera-scm用戶(全部節點)
useradd -r -d /opt/cloudera-manager/cm-5.10.0/run/cloudera-scm-server -M -c "Cloudera SCM User" cloudera-scm
id cloudera-scm
配置從節點cloudera-manger-agent指向主節點服務器(根據集羣的分配這裏面應當所有節點都須要)
vim /opt/cloudera-manager/cm-5.10.0/etc/cloudera-scm-agent/config.ini
將server_host改成CMS所在的主機名即sp-06
更改後
主節點中建立parcel-repo倉庫目錄(這個只在主節點sp-06上須要)
mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
更更名稱
mv CDH-5.10.0-1.cdh5.10.0.p0.41-el7.parcel.sha1 CDH-5.10.0-1.cdh5.10.0.p0.41-el7.parcel.sha
將文件複製到/opt/cloudera/parcel-repo
cp CDH-5.10.0-1.cdh5.10.0.p0.41-el7.parcel CDH-5.10.0-1.cdh5.10.0.p0.41-el7.parcel.sha manifest.json /opt/cloudera/parcel-repo
注意:其中CDH-5.7.2-1.cdh5.7.2.p0.18-el5.parcel.sha1 後綴要把1去掉
全部節點建立parcels目錄(全部節點)
mkdir -p /opt/cloudera/parcels
受權用戶組用戶
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
解釋:Clouder-Manager將CDHs從主節點的/opt/cloudera/parcel-repo目錄中抽取出來,分發解壓激活到各個節點的/opt/cloudera/parcels目錄中
初始腳本配置數據庫scm_prepare_database.sh(在主節點上)
/opt/cloudera-manager/cm-5.10.0/share/cmf/schema/scm_prepare_database.sh mysql -hsp-06 -uroot -p1234 --scm-host sp-06 scmdbn scmdbu scmdbp
說明:這個腳本就是用來建立和配置CMS須要的數據庫的腳本。各參數是指:
mysql:數據庫用的是mysql,若是安裝過程當中用的oracle,那麼該參數就應該改成oracle。
-hsp-06:數據庫創建在hadoop1主機上面。也就是主節點上面。
-uroot:root身份運行mysql。-1234:mysql的root密碼是***。
--scm-host sp-06:CMS的主機,通常是和mysql安裝的主機是在同一個主機上。
最後三個參數是:數據庫名,數據庫用戶名,數據庫密碼。
啓動主節點cloudera-scm-server
cp /opt/cloudera-manager/cm-5.10.0/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
chkconfig cloudera-scm-server on
同時爲了保證在每次服務器重啓的時候都能啓動cloudera-scm-server,應該在開機啓動腳本/etc/rc.local中加入命令:service cloudera-scm-server restart
啓動cloudera-scm-agent全部節點
mkdir /opt/cloudera-manager/cm-5.10.0/run/cloudera-scm-agent
cp /opt/cloudera-manager/cm-5.10.0/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent
chkconfig cloudera-scm-agent on
同時爲了保證在每次服務器重啓的時候都能啓動cloudera-scm-agent,應該在開機啓動腳本/etc/rc.local中加入命令:service cloudera-scm-agent restart
啓動主節點
service cloudera-scm-server start
啓動agent
service cloudera-scm-agent start
等待主節點安裝而且啓動就在瀏覽器中進行操做了
進入sp-06:7180 默認使用admin admin登陸
此時已經完成一半的工做量了,出現這個界面說明CM已經安裝成功了,下面就在這個web界面中部署CDH吧!
配置主機!因爲咱們在各個節點都安裝啓動了agent,而且在中各個節點都在配置文件中指向hadoop1是server節點,因此各個節點的agent就會給agent發消息報告,因此這裏咱們能夠在「當前管理的主機」中看到三個主機,所有勾選並繼續,注意若是cloudera-scm-agent沒有設爲開機啓動,若是以上有重啓這裏可能會檢測不到其餘服務器。
選擇cdh
分發parcels到各個節點
主機配置正確性的檢測
這個地方要注意這個地方有兩項沒有檢查經過,能夠在集羣中使用如下命令
echo 0 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/defrag
而後再點擊上面的從新運行會發現此次所有檢查經過了
選擇要安裝的服務,這裏選擇全部服務
角色分配
數據庫設置選擇
集羣審覈,這裏都默認的
開始安裝
安裝完成
這個時候安裝完成了,能夠在瀏覽器中進入192.168.160.130:7180地址,查看集羣狀況,我這裏有挺多報警,大概查看下基本都是內存或者存儲空間使用閾值的報警,因爲咱們是本地虛擬機的,因此這些條件都有限,這裏暫時不care這些報警了
安裝完成!!!
若有轉載請標明地址http://www.cnblogs.com/baierfa/p/6688737.html