您当前的位置: 首页 >  hdfs

星许辰

暂无认证

  • 4浏览

    0关注

    466博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

访问HDFS常见的客户端

星许辰 发布时间:2021-07-28 14:33:14 ,浏览量:4

目录
  • 1.HDFS Shell Command
  • 2.Java API
  • 3.C API libhdfs
  • 4.其它访问HDFS的方式
    • 4.1.WebHDFS
    • 4.2.HttpFS
    • 4.3.WebHDFS和HttpFS之间区别
访问HDFS常见的客户端有HDFS Shell Command、Java API、C API libhdfs等等。

1.HDFS Shell Command

HDFS Shell Command的操作俗称HDFS命令行操作,其命令类似于Linux的shell对文件的操作,许多命令也与其相似,例如ls、mkdir、rm等等。其命令格式如下:hadoop fs < args >或hdfs dfs < args >。 更多命令的使用可以参考《HDFS——入门介绍》这篇文章中的HDFS的Shell命令。

2.Java API

HDFS Java API是大数据开发中经常使用的HDFS操作方式之一,它提供了使用Java代码去操作访问HDFS的能力。有关其具体细节可以参考使用Java API访问HFDS这篇文章。

3.C API libhdfs

libhdfs是用于HDFS的基于JNI的C API,它支持C语言客户端,可以用来操纵HDFS文件以及文件系统。此外,libhdfs是Hadoop发行版中的一部分,它已经预编译在${HADOOP_HOME}/libhdfs/libhdfs.so中,可以直接使用。

4.其它访问HDFS的方式

如果Hadoop集群外的一台主机作为客户端访问HDFS,在没有Hadoop和Java环境的情况下,可以通过WebHDFS和HttpFS来访问。

4.1.WebHDFS

(1)WebHDFS概述

  • WebHDFS 提供了访问HDFS的RESTful接口,内置组件,默认是开启的。
  • WebHDFS 使得集群外的客户端可以不用安装HADOOP和JAVA环境就可以对HDFS进行访问,且客户端不受语言限制。
  • 当客户端请求某文件时,WebHDFS会将其重定向到该资源所在的DataNode。
  • 经常使用的HDFS Web UI,其文件浏览功能底层就是基于WebHDFS来操作HDFS实现的。 在这里插入图片描述

(2)基于RESTful的HDFS API——WebHDFS

  • WebHDFS的文件系统schema为webhdfs:// URL格式为:webhdfs://< HOST >:< HTTP_PORT>/< PATH> 效果相当于: hdfs://< HOST>:< RPC_PORT>/< PATH>
  • 在RESTful风格的API中,相应的HTTP URL格式:http://< HOST>:< HTTP_PORT>/webhdfs/v1/< PATH>?op=… 有关HTTP RESTful API参数op的详细介绍可以参考此官网。

(3)应用举例 目标:查看/source/weibo/目录下的所有文件以及目录,相当于hadoop fs -ls / 请求URL:http://node1:9870/webhdfs/v1/source/weibo?op=LISTSTATUS 结果以json格式返回: 在这里插入图片描述

4.2.HttpFS

(1)HttpFS概述

  • HttpFS 是一个提供RESTful 接口的网关的服务器,该网关支持所有HDFS文件系统操作。
  • 对于文件CURD的操作全部提交给HttpFS服务进行中转,然后由HttpFS去跟HDFS集群交互。
  • HttpFS是一个独立于HDFS的服务,如果使用需要手动安装。 在这里插入图片描述

(2)HttpFS工作原理

  • HttpFS本身是Java Web应用程序,使用内置的Jetty服务器对外提供服务。
  • HttpFS是一个独立于HDFS的服务,其本质上是一个代理服务。
  • HttpFS API的底层通过是映射到HDFS的HTTP RESTful API调用实现的。
  • HttpFS默认端口号为14000。

(3)配置HttpFS (3.1)在hadoop安装目录下/etc/hadoop/的core-site.xml文件中添加以下配置:


    hadoop.proxyuser.root.hosts
    *


    hadoop.proxyuser.root.groups
    *

(3.2)同步配置文件到集群中的其他节点,并且重启HDFS集群 (3.3)启动HttpFS服务命令为:hdfs --daemon start httpfs 若启动成功,在使用jps命令后可以查看到其端口号以及对应的HttpFSServerWebServer。(注:将启动命令中的start改为stop后即为关闭命令)

(4)HttpFS的默认服务

NameDescription/confDisplay configuration properties/jmxJava JMX management interface/logLevelGet or set log level per class/logsDisplay log files/stacksDisplay JVM stacks/static/index.htmlThe static homepage

(5)应用举例

  • 访问HttpFS首页:http://node1:14000/static/index.html 在这里插入图片描述

  • 查看/source/weibo/目录下的所有文件以及目录:http://node1:14000/webhdfs/v1?user.name=root&op=LISTSTATUS 在这里插入图片描述

4.3.WebHDFS和HttpFS之间区别 WebHDFSHttpFSHDFS内置、默认是开启的独立服务,需要手动开启重定向到资源所在的DataNode数据先传输到该HttpFS server,再由其传输到client客户端和NameNode、DataNode交互客户端不跟HDFS直接交互,需要HttpFS服务进行中转端口默认值为9870端口默认值为14000
关注
打赏
1665627467
查看更多评论
立即登录/注册

微信扫码登录

0.3786s