宿主机程序访问虚拟机HDFS
2017-02-04 14:25
381 查看
需求
读取HDFS上的/user/hadoop/input/protocols,并写到windows的E盘下。软硬件
CentOS6.7hadoop2.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
相关文章推荐
- 黄聪:从主机访问虚拟机中的网站系列教程(VBox篇)
- 主机下COBOL程序的编译? 下面是DB2访问程序的JCL编译代码,不太理解,求详解。
- 关于在虚拟机上使用mysql其他主机不能访问的解决办法
- 局域网内访问主机数据库出现TNS: 无监听程序的解决办法
- 宿主机通过SSH访问虚拟机中的Linux系统
- VMWare上虚拟机访问宿主机需要注意的一个问题
- 虚拟机无法访问主机网站
- 外网主机访问虚拟机下的web服务器
- 局域网内sqlplus 访问主机数据库 TNS: 无监听程序
- 主机访问虚拟机不能访问的解决
- linux 9.0 虚拟机如何访问外网并且和主机ping通的问题
- 主机不能访问虚拟机中的服务器
- 虚拟机和主机的连通(外部主机可访问虚拟机)
- 虚拟机配置host访问主机web
- 如何实现主机通过网络访问VBOX下的虚拟机
- 黄聪:穿过主机访问虚拟机中的SQL服务 FOR VMware NAT
- Windows下虚拟机RedHat访问主机文件
- VMWARE 虚拟机连接主机,或被其他网内的机器访问
- VirtualBox 主机与虚拟机互相访问且均上外网
- 虚拟机下开启ffserver后在主机上不能访问