現狀和目標
Hadoop目前運行三個節點上,有一臺做Namenode,其餘爲DataNode 主機IP 功能
主機IP | 功能 |
---|---|
10.3.5.40 | NameNode |
10.3.5.39 | DataNode |
10.3.5.41 | DataNode |
Hadoop以後運行在6個節點上,有一臺做Namenode,其餘爲DataNode
主機IP | 功能 |
---|---|
10.3.5.40 | NameNode |
10.3.5.39 | DataNode |
10.3.5.41 | DataNode |
10.3.5.123 | DataNode |
10.3.5124 | DataNode |
10.3.5.125 | DataNode |
對業務影響
指標數據暫時無法查詢
前置條件和準備過程
- Transter-metricstore先關閉
- 優先關閉Transter-metricstore模塊
- 登錄10.3.5.101
[root@zfr ~]# cd /home/ycm/ycmsys/transfer-metricstore
[root@zfr ~]# ./transfer.sh stop
SSH無密碼認證
在做Hbase、OpenTsDb擴容的時候已經做好了無密碼認證。 製作無密碼進入過程可參考如下方式:
-
生成密鑰對
[root@zfr ~]# ssh-keygen -t rsa #
-
把密鑰追加到授權的key裏面去
[root@zfr ~]# cat id_rsa.pub >> authorized_keys
把公鑰複製所有的Slave機器上 把各個機器的密鑰追加到授權的key裏面去
- 修改配置文件
修改sshd_config文件
[root@zfr ~]# vi /etc/ssh/sshd_config
修改如下參數
RSAAuthentication yes # 啓用 RSA 認證
PubkeyAuthentication yes # 啓用公鑰私鑰配對認證方式
AuthorizedKeysFile .ssh/authorized_keys # 公鑰文件路徑(和上面生成的文件同)
- 重啓ssh服務
[root@zfr ~]# systemctl restart sshd.service
- 授權
授權方式需要嚴格執行
[root@zfr ~]# chmod 755 /root/.ssh
[root@zfr ~]# chmod 644 authorized_keys
[root@zfr ~]# chmod 644 id_rsa.pub
[root@zfr ~]# chmod 600 id_rsa
代碼同步 通過scp方式把現生產環境的Hadoop傳到10.3.5.123、10.3.5.124、10.3.5.125上。
- 關閉防火牆
[root@zfr ~]# service iptables stop 臨時關閉,重啓後失效
[root@zfr ~]# chkconfig iptables off 永久關閉
- 查看防火牆狀態
[root@zfr ~]# service iptables stauts
- 關閉SELinux
[root@zfr ~]# vim /etc/sysconfig/selinux
按i進入編輯模式 設置:SELINUX=disabled 按Esc進入退出編輯,輸入:wq!回車,即爲保存並退出,或者shift+z+z
搭建Java環境
修改環境變量 /etc/profile
[root@zfr ~]# vim /etc/profile
增加如下內容
export JAVA_HOME=/home/ycm/jdk8
export HADOOP_HOME=/home/ycm/hadoop272/hadoop
export PATH=$JAVA_HOME/bin:$PATH
export PATH=$HADOOP_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 修改Hosts文件
修改每臺機器的 /etc/hosts
增加如下內容,因擴容OpenTSDb的時候已經添加完畢
10.3.5.40 yyy-prod-ecs-01
10.3.5.39 yyy-prod-ecs-02
10.3.5.41 yyy-prod-ecs-03
10.3.5.123 opentsdb-1
10.3.5.124 opentsdb-2
10.3.5.125 opentsdb-3
變更過程
- 修改slave文件
修改slave 文件 在Hadoop的配置文件中添加節點的主機名稱
vim /home/ycm/hadoop/etc/hadoop/slave
yyy-prod-ecs-01
yyy-prod-ecs-02
yyy-prod-ecs-03
opentsdb-1
opentsdb-2
opentsdb-3
增加如下內容 因爲代碼是拷貝過來的,所以此步驟可以忽略
export JAVA_HOME=/home/ycm/jdk7
- 修改core-site.xml 文件
編輯 core-site.xml文件 因爲代碼是拷貝過來的,所以此步驟可以忽略
<configuration>
<property>
<name>fs.defaultFS</name>
<value>**hdfs://yyy-prod-ecs-01:9000**</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>**/home/hadoop/data/tmp**</value>
</property>
<property>
<name>hadoop.native.lib</name>
<value>true</value>
<description>Should native hadoop libraries, if present, be used.</description>
</property>
</configuration>
- 修改hdfs-site.xml文件
編輯hdfs-site.xml文件 修改副本數和數據存儲路徑
<property>
<name>dfs.replication</name>
<value>**3**</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>**/home/hadoop/data**</value>
</property>
<property>
啓動Hadoop
切換到/home/ycm/hadoop/sbin 路徑下,根據需求執行如下命令。
./hadoop-daemon.sh start secondarynamenode./hadoop-daemon.sh start namenode./hadoop-daemon.sh start datanode
注意:
因爲10.3.5.40當時Hadoop在根目錄,根目錄大小爲40G,無法擴容。所以不能啓動DataNode節點,否則會引起40這臺機器磁盤爆炸!!!造成應用不可用。
變更效果檢查
- 管理控制檯檢測
登錄Hadoop管理控制頁面
http://172.20.8.173:50070/dfshealth.html#tab-datanode 檢查
但:由於集團堡壘機把50070端口封住,所以此方法暫時無法使用。
- 進程檢測
1). 檢查Hadoop的NameNode、DataNode進程的狀況。
2). 檢測Hadoop、Hbase功能
3). Opentsdb和Hbase正常
對其服務和監控的影響 Zabbix會報警 報警預計涉及模塊:Hadoop、Hbase、OpenTsDb