您的位置:首页 > 运维架构 > Linux

宿主机程序访问虚拟机HDFS

2017-02-04 14:25 381 查看

需求

读取HDFS上的/user/hadoop/input/protocols,并写到windows的E盘下。

软硬件

CentOS6.7

hadoop2.6.0

IDEA 2016

资源

[hadoop@name01 hadoop]$ hadoop fs -ls /user/hadoop/input
-rw-r--r--   1 hadoop supergroup       6455 2017-02-03 03:26 /user/hadoop/input/protocols


测试代码

这里就不给出详细代码了

String outputDir = "e:/protocols";

FileSystem fs = null;
InputStream in = null;
OutputStream out = null;
try {
//Config and open
Configuration conf = new Configuration();
fs = FileSystem.get(URI.create("hdfs://192.168.147.128:9000"), conf);
in = fs.open(new Path("/user/hadoop/input/protocols"));

//Read and output
out = new FileOutputStream(outputDir);
//读取并写资源到本地
} catch (IOException e) {
//异常检测
} finally {
//释放资源
}

System.out.println("Finished.");


可能问题

(1)无法访问
(2)9000端口Connection refused

(3)50010端口没有更多内容

情况

(1)在虚拟机上可telnet 9000和50010端口

(2)在宿主机无法telnet成功

分析

(1)core-site.xml的fs.default.name不用设置localhost,用虚拟机的ip

(2)有可能是虚拟机的防火墙

解决方案(以root用户为例)

(1)编辑/etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Fri Feb  3 10:40:29 2017
*filter
:INPUT ACCEPT [53:4699] #具体参考链接(2)
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [34:4139]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT #开放lo接口的所有端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT #开放22端口

-P INPUT DROP #关闭所有的端口

-A INPUT -p tcp -m tcp --dport 50070 -j ACCEPT #开放50070端口,用于访问浏览器namenode
-A INPUT -p tcp -m tcp --dport 50090 -j ACCEPT #secondary namenode,也可以用浏览器进行访问
-A INPUT -p tcp -m tcp --dport 50010 -j ACCEPT #用于访问datanode
-A INPUT -p tcp -m tcp --dport 50075 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 50020 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8088 -j ACCEPT #用于浏览器访问yarn
-A INPUT -p tcp -m tcp --dport 9000 -j ACCEPT #用于程序访问hdfs

COMMIT
# Completed on Fri Feb  3 10:40:29 2017
~


(2)重启iptables

service iptables restart


相关链接

(1)http://www.sxt.cn/info-5826-u-5660.html

(2)http://www.tuicool.com/articles/B7vMzmI
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hdfs linux