解决hdfs 运行在9000端口外界不能访问

问题描述

默认情况下,hdfs运行在 127.0.0.1:9000,也就是说只运行在本地,而不是0.0.0.0,像Tomcat不管在云服务器还是虚拟机上,启动后我们直接可以用ip加端口地址访问,但是hdfs不可以。

这样带来的麻烦就是:每次都需要打包jar,然后上传到云服务器或者虚拟机中运行。不能直接在eclipse或者idea上运行。

解决方法

关键字: 内网穿透
工具使用:natapp
基本步骤:

  1. 在官网 上注册登录。
  2. 购买免费隧道。记得配置使用 TCP协议与9000端口。
  3. 下载 natapp相应的linux压缩包zip文件。
  4. 在自己的虚拟机或者云服务上启动natapp。

详细步骤

1. 下载natapp相应版本上传到云服务或虚拟机

2. 解压与配置

# 如果没有安装unzip 需要输入 yum -y install unzip 
$ unzip natapp_linux_amd64_2_3_9.zip

下载一下config.yml文件,下载地址官网上有提供https://natapp.cn/article/config_ini
需要配置一下 authtoken,对应的natapp官网上自己购买的免费隧道的authtoken,如图所示:
解决hdfs 运行在9000端口外界不能访问_第1张图片
复制下载粘贴到刚刚下载的config.yml文件中authtoken= 后面.

启动natapp

首先需要设置 natapp 文件问可执行文件。

$ chmod a+x natapp

然后运行很简单

$ ./natapp

可以看到运行效果如下:

解决hdfs 运行在9000端口外界不能访问_第2张图片

HDFS 开发相应的hdfs地址需要修改

像上图所示,我的免费natapp服务映射的是 tcp://server.natappfree.cc:33706 所以相应的,hdfs 的url需要修改成这个 hdfs://server.natappfree.cc:33706

复制粘贴一下代码就可以测试

代码地址:https://github.com/smile-yan/hadoop-demo/blob/master/src/main/java/cn/smileyan/hadoop/hdfs/HdfsBase.java
复制粘贴到自己的开发工具中,并且需要配置一下hdfs的url,然后就可以本地运行了,非常方便。
如图所示:
解决hdfs 运行在9000端口外界不能访问_第3张图片

总结

每次都打包,上传的hadoop所在的服务器上运行是很麻烦的。不如使用免费的natapp内网穿透,能够本地运行的测试,就别打包在上传,再远程测试,太麻烦了。

Smileyan
2019年10月28日 19:55

你可能感兴趣的:(我的大数据)