本帖最后由 明雨轻弹 于 2017-12-2 15:54 编辑
本人是初学者,第一次使用hadoop搭建伪分布就遇到一个解决了一周的问题,真心求助,已经解决了一周了。谢谢。
问题描述:
我使用腾讯云(之前使用的是阿里云)部署了伪分布式hadoop,目前只配置了HDFS。在腾讯云服务器中使用shell命令操作文件,一切正常,很完美。但是在本地使用java api操作hdfs,怎么弄都不对,在网上找了各种解决方法,比如防火墙,端口权限,操作权限,namenode,datanode是否开启正常,内存问题等等,都试了,使用java api操作就是不行。使用公网ip也可以打开50070页面
存在问题:
1、在云服务器中使用shell一切正常
2、使用java api操作可以上传文件、但是内容为空
3、使用java api操作可以创建文件夹
配置截图:
1、hostname -> hadoop000
2、hosts -> 10.139.153.11 hadoop000 (其中119.27.190.152为分配的公网地址,10.139.153.11为内网地址)
3、core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop000:8082</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/root/temp</value> </property> </configuration>
4、hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
5、slave
hadoop000
主要配置就是这些,操作的用户是root
异常截图:
1、上传文件异常如下
INFO BlockStateChange: BLOCK* processReport: from storage DS-d96f29c8-724b-4c65-9bfd-d8da87c9dee1 node DatanodeRegistration(10.139.153.11, datanodeUuid=6c4734c7-8176-4612-8f04-f463dd915245, infoPort=50075, infoSecurePort=0, ipcPort=50020, storageInfo=lv=-56;cid=CID-4fa581a3-dc2d-48c1-a9b3-74fdc5691f93;nsid=1215230189;c=0), blocks: 1, hasStaleStorage: false, processing time: 2 msecs2017-12-02 15:16:07,493 INFO org.apache.hadoop.hdfs.server.blockmanagement.CacheReplicationMonitor: Rescanning after 30000 milliseconds2、读取文件异常如下org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-1260603395-119.27.190.152-1512142941561:blk_1073741825_1001 file=/hello.txtat org.apache.hadoop.hdfs.DFSInputStream.chooseDataNode(DFSInputStream.java:1001)
这是为的服务器密码,希望真心求助Sk@.123456
|