首 页 行业资讯 新车 试驾评测 养车用车 车型库

hadoop怎么获取connection

发布网友 发布时间:2022-04-20 11:52

我来回答

1个回答

热心网友 时间:2023-09-12 20:07

今天帮别人装hadoop 伪分布 遇到了个问题解决了很久 记录一下。 
环境:ubuntu VM虚拟机下安装的 hadoop 1.2.1 
在使用hdfs的 java api 时,连接hadoop 伪分布式安装的hdfs, 总是报出 Connection Refused。查遍了网上诸多博客,尝试了很多办法。包括: 
重新配置了ip,确认关闭了防火墙(ubuntu 的 ufw),确认能ping通虚拟机ip,NameNode的再次格式化,hadoop开启后,jps命令显示五个进程也正常工作。其中,NameNode重新格式化要注意删除hadoop.tmp.dir 配置的文件夹,不然DataNode 和NameNode 数据不一致,DataNode会启动失败。 
最奇怪的是,网页端的访问是ok的,如果虚拟机不能访问,或者端口没有成功打开,那网页怎么能显示,而且网页hdfs的端口号就是9000,这与配置文件的设置也是一致的。 

hadoop@hadoop-master:~$ jps33 Jps6331 TaskTracker6098 SecondaryNameNode6183 JobTracker5944 DataNode123456
conf中几个重要文件配置:
core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://www.hadoop.org:9000</value>
</property>  

<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-1.2.1/tmp</value>
</property>   </configuration>12345671011
hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>  

<property>
<name>dfs.permissions</name>
<value>false</value>
</property></configuration>12345671011

而我为了能在window中显示网页,统一配置了ubuntu 和window端的hosts 主机名和域名,这样ubuntu返回的域名在window中照样可以找到对应的ip,也就可以方便后面MapRece job的查看 和 hdfs 的查看,方便一些。 
C:\Windows\System32\drivers\etc\hosts添加

#hadoop 1.x192.168.159.128  hadoop-master www.hadoop.org12

ubuntu 端的/etc/hosts 如下

127.0.0.1       localhost127.0.1.1       hadoop-master    www.hadoop.org12

这样配置后,理论上eclipse 是可以顺利操作HDFS的,毕竟50070端口的webUi 是可以显示dfs上的文件,但是不管是执行java api 代码 还是用hadoop 1.2.1 的eclipse插件,都拒绝连接,no futher information。万念俱灰打算放弃的时候,尝试修改了下 /etc/hosts。修改为:

127.0.0.1            localhost192.168.159.128      hadoop-master    www.hadoop.org12

再试了以下,eclipse 成功连接了。究其原因,可能是eclipse读取配置文件,hdfs默认名为 hdfs://www.hadoop.org:9000 ,在ubuntu中执行时,www.hadoop.org域名对应的是127.0.1.1,而在eclipse中再试图连接,显然连接不上。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com