Solar's Blog
克隆虛擬機器
我克隆過來是直接可用的,可以 ping 通外網;若克隆出來的虛擬機器有問題,可以查閱相關資料進行修改。 VMware虛擬機器克隆CentOS後網絡卡修改方法
配置ssh 免登入
- 啟動三臺機器,分別修改機器名為 master、slave1、slave2 ,重啟系統
[[email protected] ~]# vim /etc/sysconfig/network
NETWORKING=yes
iHOSTNAME=master
- 修改master 上的 etc/hosts
[[email protected] ~]# vim /etc/hosts 1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomai n4 2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomai n6 3 192.168.1.121 master 4 192.168.1.115 slave1 5 192.168.1.116 slave2 6 192.168.1.127 slave3
3.將hosts檔案複製到slave1 和slave2
[[email protected] ~]# su hadoop
[[email protected] root]$
[[email protected] root]$ cd
[[email protected] ~]$ sudo scp /etc/hosts [email protected]:/etc
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for hadoop:
The authenticity of host 'slave1 (192.168.1.115)' can't be established.
RSA key fingerprint is 59:a1:54:8c:86:55:eb:a8:a8:85:76:ca:59:05:f4:6f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'slave1,192.168.1.115' (RSA) to the list of known hosts.
[email protected]'s password:
hosts 100% 242 0.2KB/s 00:00
[[email protected] ~]$ sudo scp /etc/hosts [email protected]:/etc
- 在master機器上執行 ssh -keygen -t rsa 命令產生公鑰。
[[email protected] ~]$ ssh -keygen -t rsa
Bad escape character 'ygen'.
[[email protected] ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
ec:38:ba:0a:39:6d:97:60:b0:41:5a:e6:f3:b7:94:3e [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| .o |
|o+ |
|+ o |
| + o o |
|. o . + S |
| + . = + |
|+ o o E . |
| + . . o |
| ..o. |
+-----------------+
第一次配置失敗,第二次配置時將三臺主機命名為了 node1 node2 node3 ;分別對應於 master slave1 slave3 ;注意區分即可,都是一樣的。
- 複製到其他節點
[[email protected] .ssh]# scp id_dsa.pub node2:/tmp
[email protected]'s password:
id_dsa.pub 100% 600 0.6KB/s 00:00
[[email protected] .ssh]# scp id_dsa.pub node3:/tmp
[email protected]'s password:
id_dsa.pub 100% 600 0.6KB/s 00:00
- 將剛剛複製過來的追加到本節點
[[email protected] ~]# cd /root/.ssh/
[[email protected] .ssh]# ls
authorized_keys id_dsa id_dsa.pub
[[email protected] .ssh]# cat /tmp/id_dsa.pub >> authorized_keys
- 三臺主機兩兩進行ssh免登入
- 再次登入,可以發現不需要密碼就可以登入slave1 ,slave2
v[[email protected] ~]$ ssh slave1
[[email protected] ~]$
安裝JDK
- 使用 yum search jdk 線上查詢jdk 列表,任意選擇一個版本進行安裝。(也可採用離線安裝)
[[email protected] ~]# yum search jdk
[[email protected] ~]# yum install java-1.7.0-openjdk-devel.i686 -y
- 配置Java環境變數
# 查詢Jdk 路徑
[[email protected] ~]# whereis java
java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java /usr/share/man/man1/java.1.gz
[[email protected] ~]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 Sep 21 19:41 /usr/bin/java -> /etc/alternatives/java
#修改配置檔案
法一:直接在末尾追究如下語句
[[email protected] ~]# vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-devel.i686
export MAVEN_HOME=/home/hadoop/local/opt/apache-maven-3.3.1
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=${JAVA_HOME}/bin:$MAVEN_HOME/bin:$PATH
法二:系統環境變數檔案一般不要輕易更改,可以選擇在 /etc/profile.d/java.sh 檔案中更改
[[email protected] ~]# vim /etc/profile.d/java.sh
新增如上所示的語句,然後儲存。
# 儲存配置後使用source 命令立即生效,進行測試
[[email protected] ~]# source /etc/profile.d/java.sh
[[email protected] ~]$ java -version
java version "1.7.0_191"
OpenJDK Runtime Environment (rhel-2.6.15.4.el6_10-i386 u191-b01)
OpenJDK Client VM (build 24.191-b01, mixed mode, sharing)
安裝依賴包
yum install chkconfig python bind-utils psmisclibxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb -y
安裝配置MySQL(主節點)
#安裝mysql伺服器
[[email protected] ~]# yum install mysql-server
#設定開機啟動
[[email protected] ~]# chkconfig mysqld on
#啟動mysql服務
[[email protected] ~]# service mysqld start
Initializing MySQL database: Installing MySQL system tables...
OK
#設定root的初始密碼
[[email protected] ~]# mysqladmin -u root password '******'
#進入mysql命令列,建立以下資料庫
[[email protected] ~]# mysql -uroot -p******
mysql> #hive
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> #activity monitor
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;Query OK, 1 row affected (0.00 sec)
#設定root授權訪問以上所有的資料庫
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
所有節點配置NTP服務
叢集中的所有主機必須保持時間同步,如果時間相差較大會引起一些問題。具體配置如下
所有節點安裝 NTP:
yum install ntp
配置開機啟動:
chkconfig ntpd on
檢查是否設定成功:
chkconfig --list ntpd (2-5 為 on 狀態則成功)
設定同步:
ntpdate -u ntp.sjtu.edu.cn(時鐘伺服器根據實際環境設定、本文采用 210.72.145.44-國家授時
中心伺服器 IP 地址)
- 修改配置檔案 開啟master機器 /etc/ntp.conf 檔案,留下關鍵資訊。
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 8
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
安裝Cloudera Manager Server 和Agent
主節點解壓安裝 cloudera manager的目錄預設位置在/opt下,解壓:cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz 將解壓後的cm 5.12.1 和cloudera目錄放到/opt目錄下。
[[email protected] opt]# cd cloudera-manager-centos7-cm5.12.1_x86_64
[[email protected] cloudera-manager-centos7-cm5.12.1_x86_64]# mv cloudera /opt/
[[email protected] cloudera-manager-centos7-cm5.12.1_x86_64]# mv cm-5.12.1 /opt/
注:我在官網上下載的是 .rpm格式。經過多次加壓之後可以找到目標檔案:mysql-connector-java-8.0.12.jar 。但是執行如下命令後會有警告。經過多次實踐還是重新下載了 mysql-connector-java-5.1.26-bin.jar 才得以成功執行。
注意注意:在linux環境下,rpm格式應該用相關命令是可以解壓的,這個我沒有實驗。
- 在主節點初始化CM5的資料庫
[[email protected] schema]# ./scm_prepare_database.sh mysql -h master -uroot -p123456 --scm-host master scm scm scm --force
JAVA_HOME=/usr/java/jdk1.8.0_181
Verifying that we can write to /opt/cm-5.12.1/etc/cloudera-scm-server
Creating SCM configuration file in /opt/cm-5.12.1/etc/cloudera-scm-server
Executing: /usr/java/jdk1.8.0_181/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cm-5.12.1/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cm-5.12.1/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[ main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!
- Agent配置 修改/opt/cm-5.3.3/etc/cloudera-scm-agent/config.ini中的server_host為主節點的主機名。
- 同步Agent到其他節點
scp -r /opt/cm-5.3.3 [email protected]:/opt/
scp -r /opt/cm-5.3.3 [email protected]:/opt/:
- 在所有節點建立cloudera-scm使用者
useradd --system --home=/opt/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment “Cloudera SCM User” cloudera-scm
準備Parcels,用以安裝CDH
- 將CHD5相關的Parcel包放到主節點的/opt/cloudera/parcel-repo/目錄中(parcel-repo需要手動建立)。 相關的檔案如下:
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
manifest.json
最後將 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 ,重新命名為CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha,這點必須注意,否則,系統會重新下載CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 檔案。
- 相關啟動指令碼
通過/opt/cm-5.12.1/etc/init.d/cloudera-scm-server start啟動服務端。
通過/opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start啟動Agent服務。
我們啟動的其實是個service指令碼,需要停止服務將以上的start引數改為stop就可以了,重啟是restart。
成功啟動後,便可通過 node1:7180(192.168.1.123:7180 進行訪問)。預設使用者名稱及密碼為: admin
在啟動agent時失敗,如下所示。通過檢視日誌資訊,即使已經將預設的python2.6.7 更換成了python 2.7 ,還是沒有解決問題,. 所以還是強烈建議大家按照之前前輩們已經安裝好的各類版本進行操作。當然如果哪位能夠指正錯誤,自然是非常感謝。
- 寫在最後:
搭建環境的過程中由於版本不一致或者配置命令可能會引起不可預見的結果。筆者搭建時曾遇到過種種問題,也在逐個解決。最後是可以啟動 cloudera-scm-server ,但是agent 依舊啟動失敗,估計可能是版本問題。
為此,經過查詢多個資料,終於找到一部完整的可參考的資料。雖然版本較低,但也不影響使用。我們初次使用,還是先讓他跑起來再說吧! 為使學習資料長期有效,我將它放在了公眾號後臺(包括視訊講解),回覆 CDH ,便可下載。
從一名不羈的碼農開始,歡迎關注我的公眾號