参考

  • 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目录下。

Hadoop HDFS 的 HttpFS的更多相关文章

  1. Hadoop HDFS 用户指南

    This document is a starting point for users working with Hadoop Distributed File System (HDFS) eithe ...

  2. Hadoop HDFS负载均衡

    Hadoop HDFS负载均衡 转载请注明出处:http://www.cnblogs.com/BYRans/ Hadoop HDFS Hadoop 分布式文件系统(Hadoop Distributed ...

  3. Hive:org.apache.hadoop.hdfs.protocol.NSQuotaExceededException: The NameSpace quota (directories and files) of directory /mydir is exceeded: quota=100000 file count=100001

    集群中遇到了文件个数超出限制的错误: 0)昨天晚上spark 任务突然抛出了异常:org.apache.hadoop.hdfs.protocol.NSQuotaExceededException: T ...

  4. Hadoop程序运行中的Error(1)-Error: org.apache.hadoop.hdfs.BlockMissingException

    15/03/18 09:59:21 INFO mapreduce.Job: Task Id : attempt_1426641074924_0002_m_000000_2, Status : FAIL ...

  5. Hadoop HDFS编程 API入门系列之HDFS_HA(五)

    不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs3; import java.io.FileInputStream;import ...

  6. Hadoop HDFS编程 API入门系列之简单综合版本1(四)

    不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs4; import java.io.IOException; import ja ...

  7. [转]hadoop hdfs常用命令

    FROM : http://www.2cto.com/database/201303/198460.html hadoop hdfs常用命令   hadoop常用命令:  hadoop fs  查看H ...

  8. org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hive/warehouse/page_view. Name node is in safe mode

    FAILED: Error in metadata: MetaException(message:Got exception: org.apache.hadoop.ipc.RemoteExceptio ...

  9. Hadoop HDFS文件常用操作及注意事项

    Hadoop HDFS文件常用操作及注意事项 1.Copy a file from the local file system to HDFS The srcFile variable needs t ...

随机推荐

  1. 「PKUSC2018」星际穿越(倍增)

    倍增好题啊! 我们我们预处理 \(f[x][i]\) 表示 \(x\) 点最左到达的端点,\(sum[x][i]\) 表示 \(x\) 点最左到达的端点时 \(f[x][i]\sim x\) 的答案, ...

  2. I/O类型

    同步和异步 synchronous  asyncronous 关注的是消息通知机制 同步:调用发出之后不会立即返回,但一旦返回,则返回即是最终结果. 异步:调用发出之后,被调用方立即返回消息,但返回的 ...

  3. MapReducer

    MapReducer    概述        是一个分布式的计算框架(编程模型),最初由由谷歌的工程师开发,基于GFS的分布式计算框架.后来Cutting根据<Google Mapreduce ...

  4. 远程连接阿里云服务器出现"远程桌面,身份验证错误:要求的函数不受支持"解决办法

    ---恢复内容开始--- 更新:win10专业版用户可以看之前的的直接来,但家庭版用户用下面的好像并不能完美解决,献上在网上找到的一个终极解决办法 windows+R打开运行  输入regedit打开 ...

  5. odoo开发笔记--模型中常用的方法

    create方法在数据表中插入一条记录(或新建一个对象的resource)格式:def create(self,cr,uid,vals,context={})参数:vals:待新建记录的字段值,是一个 ...

  6. odoo开发笔记--工作流

    虽然odoo10里边取消了工作流 Odoo Workflow http://www.jeffzhang.cn/Odoo-Workflow-Notes/

  7. (转)【深度长文】循序渐进解读Oracle AWR性能分析报告

    原文:https://dbaplus.cn/news-10-734-1.html https://blog.csdn.net/defonds/article/details/52958303 作者介绍 ...

  8. (转)Python的web服务器

    1.浏览器请求动态页面过程 2.WSGI Python Web Server Gateway Interface (或简称 WSGI,读作“wizgy”). WSGI允许开发者将选择web框架和web ...

  9. Elasticsearch 5.X 使用 Docker 运行使用 Head 插件

    ES 5.X 版本后就不支持 elasticsearch-head  以插件方式来安装了. for Elasticsearch 5.x: site plugins are not supported. ...

  10. Google Optimization Tools介绍

    Google Optimization Tools(OR-Tools)是一款专门快速而便携地解决组合优化问题的套件.它包含了: 约束编程求解器. 简单而统一的接口,用于多种线性规划和混合整数规划求解, ...