1.hadoop的dfs.nameservices如何配置?
2.集群配置中hdfs://mycluster的作用是什么?
3.如何将namenode2切换为active状态?
在参考本手册前请确保Hadoop中HDFS组件已经成功部署并正常运行,同时系统基本环境完备,包括ssh免密码登录、/etc/hosts等。
假设目前NameNode在服务器namenode1上运行,服务器namenode2作为standbynamenode,确保namenode2上至少已经安装了namenode服务。
操作过程中尽量避免使用root用户操作,这里假设使用hadoop用户操作,具体部署步骤如下:
1. 关闭所有节点上的HDFS进程,主要是namenode1上的namenode和datanode进程。
2. 修改系统配置文件core-site.xml和hdfs-site.xml
- hdfs-site.xml中添加:
[XML] 纯文本查看 复制代码
|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
|
- core-site.xml中修改
| fs.default | hdfs://mycluster |
注意:这些更改需要更新到每个运行HDFS进程的节点。
其中,namenode1和namenode2在hdfs-site.xml中有一项配置不同:
| 服务器 | 配置项 | 值 |
| namenode1 | dfs.namenode.http-address | namenode1:50070 |
| namenode2 | dfs.namenode.http-address | namenode2:50070 |
3. 分别在namenode1和namenode2上启动journalnode:
$HADOOP_HOME/sbin/hadoop-daemon.sh start journalnode
4. 在namenode1上对journalnode的共享数据进行初始化,然后启动namenode进程:
$HADOOP_HOME/bin/hdfsnamenode -initializeSharedEdits
$HADOOP_HOME/sbin/hadoop-daemon.sh start namenode
5. 在namenode2上同步journalnode的共享数据,然后启动namenode进程:
$HADOOP_HOME/bin/hdfsnamenode -bootstrapStandby
$HADOOP_HOME/sbin/hadoop-daemon.sh start namenode
6. 分别在namenode1和namenode2中启动datanode:
$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
7. 此时如果通过网页访问两个namenode的http-address,可以看到两个namenode都是standby状态,也可以通过hadoop自带的命令行工具来查看状态:
$HADOOP_HOME/bin/hdfs haadmin -getServiceState nn1
注意:此处的nn1为在hdfs-site.xml中配置的namenode服务的名称。
8. 确定要转为active的namenode的id,这里将namenode1设为active,使用命令行工具进行状态切换:
$HADOOP_HOME/bin/hdfs haadmin -failover --forcefence --forceactive nn2 nn1
注意:此处“nn2 nn1”的顺序表示active状态由nn2转换到nn1上(虽然nn2在转化前也是standby状态)。
9. 上一步中把namenode1的状态切换为active后,系统自动把namenode2上的namenode进程关闭,再把错误原因排除后重启该namenode进程,启动后该namenode状态为standby,等待下一次namenode1出现故障时即可将namenode2状态切换为active,使用命令行工具:
$HADOOP_HOME/bin/hdfs haadmin -failover --forcefence --forceactive nn1 nn2
相应的,转换完以后namenode1上的namenode进程被关闭,需要排除故障后重新启动。
10.hdfs haadmin
参考本手册操作过程中,如遇实际错误,请自行查阅相关日志文件排除错误。
参考:
https://www.cnblogs.com/nucdy/p/5707914.html