Hadoop Hdfs擴容

現狀和目標

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

對業務影響

指標數據暫時無法查詢

前置條件和準備過程

  1. Transter-metricstore先關閉
  2. 優先關閉Transter-metricstore模塊
  3. 登錄10.3.5.101
[root@zfr ~]# cd /home/ycm/ycmsys/transfer-metricstore
[root@zfr ~]# ./transfer.sh stop

SSH無密碼認證

在做Hbase、OpenTsDb擴容的時候已經做好了無密碼認證。 製作無密碼進入過程可參考如下方式:

  1. 生成密鑰對

    [root@zfr ~]# ssh-keygen -t rsa #

  2. 把密鑰追加到授權的key裏面去

    [root@zfr ~]# cat id_rsa.pub >> authorized_keys

把公鑰複製所有的Slave機器上 把各個機器的密鑰追加到授權的key裏面去

  1. 修改配置文件

修改sshd_config文件

[root@zfr ~]# vi /etc/ssh/sshd_config
修改如下參數

RSAAuthentication yes # 啓用 RSA 認證
PubkeyAuthentication yes # 啓用公鑰私鑰配對認證方式
AuthorizedKeysFile .ssh/authorized_keys # 公鑰文件路徑(和上面生成的文件同)
  1. 重啓ssh服務
[root@zfr ~]# systemctl restart sshd.service
  1. 授權

授權方式需要嚴格執行

[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上。

  1. 關閉防火牆
[root@zfr ~]# service iptables stop 臨時關閉,重啓後失效
[root@zfr ~]# chkconfig iptables off 永久關閉
  1. 查看防火牆狀態
[root@zfr ~]# service iptables stauts
  1. 關閉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

變更過程

  1. 修改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
  1. 修改hadoop-env.sh 文件

增加如下內容 因爲代碼是拷貝過來的,所以此步驟可以忽略

export JAVA_HOME=/home/ycm/jdk7
  1. 修改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>
  1. 修改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這臺機器磁盤爆炸!!!造成應用不可用。

變更效果檢查

  1. 管理控制檯檢測

登錄Hadoop管理控制頁面

http://172.20.8.173:50070/dfshealth.html#tab-datanode 檢查
但:由於集團堡壘機把50070端口封住,所以此方法暫時無法使用。

  1. 進程檢測

1). 檢查Hadoop的NameNode、DataNode進程的狀況。
2). 檢測Hadoop、Hbase功能
3). Opentsdb和Hbase正常
對其服務和監控的影響 Zabbix會報警 報警預計涉及模塊:Hadoop、Hbase、OpenTsDb

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章