【hadoop】一 hdsf开启restful API访问文件系统 之 webHDFS 以及 remoteException问题

版权声明:转载请标明出处。 https://blog.csdn.net/u010720408/article/details/89679474

hdfs开启resutful API 有两种方式

一 : web HDFS 是hdfs文件系统自带的
二 :httpFS 非自带需要额外下载包安装

web HDFS 与 httpFS 使用区别

有HA时,因namenode 的地址动态分配,不方便随时修改,推荐使用httpFS;

web HDFS 自带,在高并发、大数据文件下比httpFS性能好,因为httpFS是帮忙代理转发数据流都会集中通过httpFS访问的那一台机器进行传输;

(均是通过restful 的http访问请求,底层封装调用namenode 的rpc访问,下面谈到的RemoteException也是与此有关)

webHDFS 开启

①hdfs-site.xml 文件中 开启webHDFS的功能

<property>
      <name>dfs.webhdfs.enabled</name>
       <value>true</value>
</property>

②hdfs-sit.xml文件 中 关闭 验证功能(很恶心的最好关闭,反正我没开启)

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

webHDFS 验证

OPEN、LISTSTATUS都是get方式的http

curl -v –i "http://hostip:port/webhdfs/v1/filepath?user.name=hdfs&op=OPEN"

#hostip是任一datanode的ip
#port是dfs.datanode.http.address=50070  (小心别看错,我环境别人配的是50075,fucking a dog)
# /webhdfs/v1/  是webHDFS默认插入的气候就是文件路径 ?号后就是提交的参数了
# filepath是你文件路径
#user.name=hdfs就是那个用户的文件,可以不指定,默认就是当前
#op值操作类型,挺多的自己查去

结果出现异常:

{“RemoteException”:{"exception":"IllegalArgumentException","javaClassName":"java.lang.IllegalArgumentException","message":"Invalid operation OPEN"}}

异常解决答案:

https://stackoverflow.com/questions/18150050/getting-error-remoteexceptionexceptionillegalargumentexception-javacl#

需要在参数中指定namenode及其rpc端口,webHDFS也不知为何自己找不到,很蛋疼,金融公司环境太严格,软件入库操蛋、入生产库更加蛋疼,俺想辞职。

正确操作:

扫描二维码关注公众号,回复: 6187907 查看本文章
curl -v –i "http://hostip:port/webhdfs/v1/filepath?user.name=hdfs&op=OPEN&namenoderpcaddress=host1:port1"

#host1 是namenode中的一台的ip,但是我而不知为什么是dfs.namenode.rpc-address.hdfsha.nn2这一台而不是nn1那台
#port1 是 hdfs-site.xml文件中的 dfs.namenode.rpc-address.[hdfsha].nn1 与dfs.namenode.rpc-address.[hdfsha].nn2
#[hdfsha] 来自 hdfs-site.xml的 dfs.nameservices中的值 我的是8020
注意 1.

OPEN用于文件打开获取,
前面端口用的dfs.datanode.http.address,
末尾要额外指定namenoderpcaddress

注意 2.

LISTSTATUS用于查看指定路径下的各个文件信息,
前面的ip只能用dfs.namenode.http-address.hdfsha.nn2(我的是nn2不明白为啥不是nn1)
前面端口用的却是另一个dfs.namenode.http-address.hdfsha.nn1 nn2中的port,
因为用的是namenode所以后面也就不是再指定namenoderpcaddress

至于其他的命令我没有精力去细细使用,有空再补上

(大数据真蛋疼)

搞定收工记录之

猜你喜欢

转载自blog.csdn.net/u010720408/article/details/89679474