现状和目标
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