client如何访问HA HDFS

client如何访问HA HDFS

1:实验目的

A:client如何访问HA HDFS

B:client如何访问HA HDFS + Federation



2:client如何访问HA HDFS


本实验相关的 hadoop配置文件下载(HA+JN+ZK)

根据上面相关资料重新配置HA+JournalNode+zookeeper环境,并格式化后启动,然后使用物理机192.168.100.111(机器名wyy)作为客户端来访问集群。



A:启动集群

[hadoop@product202 ~]$ /app/hadoop/zookeeper345/bin/zkServer.sh start

[hadoop@product202 ~]$ /app/hadoop/hadoop220/sbin/hadoop-daemon.sh start journalnode

[hadoop@product203 ~]$ /app/hadoop/zookeeper345/bin/zkServer.sh start

[hadoop@product203 ~]$ /app/hadoop/hadoop220/sbin/hadoop-daemon.sh start journalnode

[hadoop@product204 ~]$ /app/hadoop/zookeeper345/bin/zkServer.sh start

[hadoop@product204 ~]$ /app/hadoop/hadoop220/sbin/hadoop-daemon.sh start journalnode



[hadoop@product201 ~]$ cd /app/hadoop/hadoop220/

[hadoop@product201 hadoop220]$ bin/hdfs namenode -format

[hadoop@product201 hadoop220]$ bin/hdfs zkfc -formatZK

[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start zkfc

[hadoop@product202 ~]$ cd /app/hadoop/hadoop220/

[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start zkfc

[hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start namenode

[hadoop@product202 hadoop220]$ bin/hdfs namenode -bootstrapStandby

[hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start namenode

[hadoop@product201 hadoop220]$ sbin/hadoop-daemons.sh start datanode



B:客户端连结测试

将hadoop集群的配置文件复制到客户端192.168.100.111(机器名wyy)的配置目录中,并在客户端的/etc/hosts解析集群的NN机器名。

hadoop@wyy:/app/hadoop/hadoop220/etc$ scp -r hadoop@product201:/app/hadoop/hadoop220/etc/hadoop ./

hadoop@wyy:/app/hadoop/hadoop220/etc$ cat /etc/hosts

   
   
192.168 . 100.201 product201 product201 . product
192 . 168.100 . 202 product202 product202 . product

hadoop@wyy:/app/hadoop/hadoop220$ cat etc/hadoop/core-site.xml

   
   
<property>
  <name> fs.defaultFS </name>
  <value> hdfs://product201:8020 </value>
</property>

hadoop@wyy:/app/hadoop/hadoop220/etc$ cd ..

hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -mkdir /test

hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -put /home/mmicky/data/2013.txt /test/.

hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -ls /test

Found 1 items

-rw-r--r--   3 hadoop supergroup  258570165 2014-02-23 13:35 /test/2013.txt



杀死product201 namenode进程,模拟HA故障转移:

[root@product201 ~]# jps

1964 NameNode

1906 DFSZKFailoverController

2425 Jps

2061 DataNode

[root@product201 ~]# kill 1964





此时在客户端连结hadoop 集群的时候就会出错:

hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -ls /test

ls: Call From wyy/127.0.1.1 to product201:8020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused



C:解决方案

使用参数dfs.client.failover.proxy.provider.[nameservice ID],该参数定义HDFS客户端用来和活动的namenode节目联系的java类。配置的java类是用来给HDFS客户端判断哪个namenode节点是活动的,当前是哪个namenode处理客户端的请求,目前hadoop2.2.0提供了唯一的一个实现类是ConfiguredFailoverProxyProvider,除非你自己定义了一个类,否则都将使用这个类。



重新配置hdfs-site.xml和core.xml,然后重新将配置文件发布到所有节点和客户端,再进行测试。

[hadoop@product201 hadoop]$ vi hdfs-site.xml

[hadoop@product201 hadoop]$ cat hdfs-site.xml

   
   
<property>
  <name> dfs.client.failover.proxy.provider.cluster1 </name>
  <value> org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider </value>
</property>

[hadoop@product201 hadoop]$ vi core-site.xml

[hadoop@product201 hadoop]$ cat core-site.xml

   
   
<property>
  <name> fs.defaultFS </name>
  <value> hdfs://cluster1 </value>
</property>

注意以上配置中cluster1是hdfs-site.xml中定义的[nameservice ID]



重新启动hadoop集群

hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -ls /test

Found 1 items

-rw-r--r--   3 hadoop supergroup  258570165 2014-02-23 13:35 /test/2013.txt



杀死product201 namenode进程,模拟HA故障转移:

[hadoop@product201 hadoop220]$ jps

1776 DFSZKFailoverController

1834 NameNode

1978 Jps

[hadoop@product201 hadoop220]$ kill 1834



此时在客户端连结hadoop集群的时候还是能正常访问

hadoop@wyy:/app/hadoop/hadoop220$ bin/hdfs dfs -ls /test

Found 1 items

-rw-r--r--   3 hadoop supergroup  258570165 2014-02-23 13:35 /test/2013.txt





3:client如何访问HA HDFS + Federation
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值