centos7+cdh5.10.0搭建


一、選擇環境:

1.說明

本次部署使用台機器,3台用於搭建CDH集群,1台為內部源。內部源機器是可以連接公網的,可以提前部署好內部源本次部署涉及到的服務器的hosts配置如下:

192.168.10.114    sp-04

192.168.10.115    sp-05

192.168.10.116    sp-06

 

本次安裝為cdh5.10.0

需要centos版本:

Jdk版本:jdk-8u73-linux-x64.tar

參考地址:https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_jdk

 

二、環境准備:

當前環境屬於重新做完系統狀況(在不做特殊說明情況下以下配置三台服務器均做相同或類比操作)

1、更改hosts文件(個人習慣)

vim /etc/hosts

 

192.168.10.114 sp-04

192.168.10.115 sp-05

192.168.10.116 sp-06

2、修改主機名稱

 

重新連接

 

3、創建新用戶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

 

3、免密碼登錄(因步驟相同所以把原來寫的直接復制過來)

主要操作步驟:

主節點執行命令生成密鑰:ssh-keygen -t rsa -P ""

 

2進入文件夾cd  .ssh (進入文件夾后可以執行ls  -a 查看文件

3將生成的公鑰id_rsa.pub 內容追加到authorized_keys(執行命令:cat id_rsa.pub >> authorized_keys

 

從節點配置

1、以同樣的方式生成秘鑰(ssh-keygen -t rsa -P "" ),然后sp-02sp-03sp-04sp-05sp-06將生成的id_rsa.pub公鑰追加到sp-01authorized_keys中)

 

執行命令scp id_rsa.pub sp-01:/home/hadoop/.ssh/id_rsa.pub.s1

psid_rsa.pub.s1可視情況定義sn;以下相同 只以s1為例)

 

2進入m1執行命令cat id_rsa.pub.s1 >> authorized_keys

 

3、最后將生成的包含三個節點的秘鑰的authorized_keys 復制到sp-02sp-03sp-04sp-05sp-06.ssh目錄下

scp authorized_keys sp-02:/home/hadoop/.ssh/

 

測試:ssh 主機名  例:ssh sp-02

 

免密碼登錄遇到的問題:

做完以上步驟時可能會無法互相免密碼登錄

解決方案

1chmod 600 /home/hadoop/.ssh/authorized_keys

 

2chmod 700 /home/hadoop/.ssh/

 

3、service sshd restartps:注意用戶權限問題)

時間同步:

使用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 managercloudera-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

manifest.json

下載地址:

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官網中下載YUMrpm安裝包:http://dev.mysql.com/downloads/repo/yum/ 

 

# 下載mysql源安裝包shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm# 安裝mysqlshell> 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

624 04:37:36 localhost.localdomain systemd[1]: Starting MySQL Server...624 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配置,指定密碼策略

# 選擇0LOW),1MEDIUM),2STRONG)其中一種,選擇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上准備mysqljar

[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-ManagerCDHs從主節點的/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主機上面。也就是主節點上面。

-urootroot身份運行mysql-1234mysqlroot密碼是***

--scm-host sp-06CMS的主機,一般是和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,並且在中各個節點都在配置文件中指向hadoop1server節點,所以各個節點的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM