参考

  • 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. 修改tomcat默认端口号

    修改tomcat端口号 端口修改tomcat tomcat服务器的默认端口号是8080 1 只启动一个tomcat的情况 当我们不想使用8080端口,需要修改为其他端口时,我们可以: 1, 打开tom ...

  2. 设置多台机器linux服务器ssh相互无密码访问

    在每台服务器上都执行ssh-keygen -t rsa生成密钥对: $ ssh-keygen -t rsa Generating public/private rsa key pair. Enter ...

  3. python传输文件

    传输文件简单版 server端: import socket import struct import json import os share_dir = r'C:\py3Project\路飞\第三 ...

  4. [Umbraco] Data Types介绍

    Data Types是在建立document type时需要用到的,系统自带了很多用于开发的类型,如常用的下拉列表dropdown, textbox, radiobox, checkbox以及上传,h ...

  5. 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 2、编程作业常见问题与答案(Programming Assignment FAQ)

    Please note that when you are working on the programming exercise you will find comments that say &q ...

  6. (转)python协程2:yield from 从入门到精通

    原文:http://blog.gusibi.com/post/python-coroutine-yield-from/ https://mp.weixin.qq.com/s?__biz=MzAwNjI ...

  7. Redis学习系列一Linux环境搭建

    1.简介 Redis是互联网技术架构中在存储系统中用的最广泛的中间件,是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一.所以Redis是.Net技术开发必须掌握的技能之一.所以通过这个系列的随 ...

  8. JavaScript -- Window-框架

    -----025-Window-框架.html----- <!DOCTYPE html> <html> <head> <meta http-equiv=&qu ...

  9. 26-hadoop-hbase简介

    hadoop的生态系统 1, hbase简介 –HBase–HadoopDatabase,是一个高可靠性.高性能.面向列.可伸缩.实时读写的分布式数据库 –利用HadoopHDFS作为其文件存储系统, ...

  10. springMVC容器和Spring容器

    前段时间有人问我,为什么一定要在web.xml中配置spring的listener呢? <listener> <description>spring监听器</descri ...