zoukankan      html  css  js  c++  java
  • Hadoop HDFS 的 HttpFS

    参考

    • Hadoop权威指南 第3章中3.4节

    背景

    要写一个操作HDFS的web后台(文件CRUD),虽然可以直接使用HDFS提供的FileSystem类然后通过get方法获取到一个DistributedFileSystem(假设提供的文件url的模式是hdfs://开头)的实例来操作HDFS,但是这种方法有个限制就是调用方必须能和HDFS集群中的所有主机通信。然后这个要求有时并不能满足,比如HDFS集群部署在一个内部隔离网络中,而WEB服务器部署在另外一个网络中,虽然namenode做了NAT可以被外部网络访问,但如前所述这是不够的。

    WebHDFS

    WebHDFS提供了访问HDFS的RESTful接口,在自己安装的Hadoop 2.6中是默认启动的。它和Web管理界面同在namenode的50070端口下,比如可以通过如下地址来列出HDFS根目录的文件:

    http://10.214.208.138:50070/webhdfs/v1/?op=LISTSTATUS
    
    {"FileStatuses":{"FileStatus":[
    {"accessTime":0,"blockSize":0,"childrenNum":1,"fileId":16389,"group":"supergroup","length":0,"modificationTime":1438583475410,"owner":"ubuntu","pathSuffix":"user","permission":"755","replication":0,"storagePolicy":0,"type":"DIRECTORY"},
    {"accessTime":0,"blockSize":0,"childrenNum":0,"fileId":16387,"group":"supergroup","length":0,"modificationTime":1438583448451,"owner":"ubuntu","pathSuffix":"users","permission":"755","replication":0,"storagePolicy":0,"type":"DIRECTORY"},
    {"accessTime":0,"blockSize":0,"childrenNum":0,"fileId":16391,"group":"supergroup","length":0,"modificationTime":1438584555313,"owner":"ubuntu","pathSuffix":"yellowbook","permission":"755","replication":0,"storagePolicy":0,"type":"DIRECTORY"}
    ]}}
    

    通过将HDFS文件路径的模式部分换成webhdfs可以获得WebHdfsFileSystem,但是使用它还是需要跟集群不同机器进行交互的。

    HttpFS

    HttpFS本质上是一个代理服务,它部署在能够完全访问HDFS集群的网络内,对于文件CURD的操作全部提交给HttpFS服务,然后由它去更HDFS集群交互,所以客户端不需要能够访问所有HDFS主机。HttpFS服务提供的操作接口是HTTP协议的RESTful接口,但是官方没有提供现成的Java客户端。HttpFS服务默认没有启动,可以使用在hadoop-2.6.0/sbin中提供的httpfs.sh脚本来启动。HttpFS相关的文件在hadoop-2.6.0/share/hadoop/httpfs目录下。

  • 相关阅读:
    定时器准确定时八位时钟
    数码管八位显示时钟
    串口通讯
    定时器/计数器0(定时器)
    定时器/计数器0之计数器
    定时器/计数器0(计数器)
    外部中断0
    LCD带字符液晶显示I LOVE YOU
    Altium Designer Summer 09换成中文步骤
    BAT小米奇虎美团迅雷携程等等各大企业校招,笔试面试题。
  • 原文地址:https://www.cnblogs.com/lailailai/p/4701151.html
Copyright © 2011-2022 走看看