HTTPFS: 基于HTTP操作hadoop hdfs文件系统

一、HTTPFS简介

    1:httpfs是cloudera公司提供的一个hadoop hdfs的一个http接口,通过WebHDFS REST API 可以对hdfs进行读写等访问

 

    2:与WebHDFS的区别是不需要客户端可以访问hadoop集群的每一个节点,通过httpfs可以访问放置在防火墙后面的hadoop集群

 

    3:httpfs是一个Web应用,部署在内嵌的tomcat中

 

    用这种方式在数据共享给其他系统时,网络安全上更容易实现,使用请参考:

http://archive.cloudera.com/cdh4/cdh/4/hadoop/hadoop-project-dist/hadoop-hdfs/WebHDFS.html

 

二、启动服务(针对使用cloudera manager安装了CDH4或CDH5) 

    在cm控制台,打开hdfs实例页面,添加httpfs服务,然后启动即可。

三、安装可参考(手工安装)

    http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-Installation-Guide/cdh4ig_topic_25_8.html    

   http://blog.csdn.net/ganglia/article/details/25902873

四、curl操作命令示例(需要将host替换为实际部署httpfs的服务器IP)

    curl -c ~/.httpsauth "http://host:14000/webhdfs/v1?op=gethomedirectory&user.name=hdfs"

    curl -b ~/.httpsauth "http://host:14000/webhdfs/v1?op=gethomedirectory"

    curl -b ~/.httpsauth "http://host:14000/webhdfs/v1/test/data1.txt?op=OPEN"

    curl -b ~/.httpsauth -X DELETE "http://host:14000/webhdfs/v1/test/data1.txt?op=DELETE"

    创建和追加都是分为两步,测试都没有成功(注意,一定要追加--header参数,否则创建会失败)
    curl -b ~/.httpsauth -i -X PUT "http://172.168.63.221:14000/webhdfs/v1/test2?op=CREATE&buffersize=1000"
    curl -b ~/.httpsauth -i -X PUT -T data2.txt --header "Content-Type: application/octet-stream" "http://172.168.63.221:14000/webhdfs/v1/test2/data.txt?op=CREATE&user.name=hdfs&buffersize=1000&data=true"

五、基于JAVA操作httpfs的开源代码

    开源项目地址,有什么问题可以直接反馈给我

    https://github.com/gitriver/httpfs-client

   说明

   1  包com.catt.httpfs.client.httpclient是采用commons-httpclient.jar,
    基于http请求实现的,没有使用到hadoop相关的jar
    2  包org.apache.hadoop.fs.http.client根据httpfs项目的源代码,
    根据需要修改了一下,使用了hadoop相关的jar

时间: 2024-10-03 21:52:49

HTTPFS: 基于HTTP操作hadoop hdfs文件系统的相关文章

代码-java连接hadoop hdfs文件系统报错

问题描述 java连接hadoop hdfs文件系统报错 10C 报错信息:java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag.; Host Details : local host is: ""localhost.local

基于key/value+Hadoop HDFS 设计的存储系统的shell命令接口

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   对于hadoop HDFS 中的所有命令进行解析(其中操作流程是自己的想法有不同意见欢迎大家指正) 接口名称 功能 操作流程 get 将文件复制到本地文件系统 .如果指定了多个源文件,本地目的端必须是一个目录. (1)按照上述机制,在Config server上的存储引擎中逐层读取K-V,直到获得文件名(或大文件元数据信息): (2)根据文件名(或大文件元数据信

Hadoop (HDFS)分布式文件系统基本操作

Hadoop HDFS提供了一组命令集来操作文件,它既可以操作Hadoop分布式文件系统,也可以操作本地文件系统.但是要加上theme(Hadoop文件系统用hdfs://,本地文件系统用file://) 1. 添加文件,目录 HDFS文件系统(需要加hdfs://): 因为我们在core-site.xml中配置了fs.default.name 所以所有和HDFS打交道的命令都不需要加上前缀hdfs://192.168.129.35:9000 比如我们要在Hadoop 文件系统中创建一个目录叫

Java访问Hadoop分布式文件系统HDFS的配置说明_java

配置文件 m103替换为hdfs服务地址. 要利用Java客户端来存取HDFS上的文件,不得不说的是配置文件hadoop-0.20.2/conf/core-site.xml了,最初我就是在这里吃了大亏,所以我死活连不上HDFS,文件无法创建.读取. <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <co

Hadoop Shell命令(基于linux操作系统上传下载文件到hdfs文件系统基本命令学习)

Apache-->hadoop的官网文档命令学习:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme://authority/path.对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file.其中scheme和aut

hadoop分布式文件系统(HDFS)

1.hadoop版本介绍 0.20.2版本以前(不含该版本)的配置文件都在default.xml中. 0.20.x以后的版本不含有eclipse插件的jar包,由于eclipse的版本不一,所以就需要自己编译源码生成对应的插件. 0.20.2--0.22.x版本的配置文件集中在conf/core-site.xml. conf/hdfs-site.xml 和 conf/mapred-site.xml. 中. 0.23.x 版本有添加了yarn技术,配置文件集中在 conf/core-site.xm

Hadoop分布式文件系统HDFS的工作原理详述

Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统. 1.分布式文件系统 多台计算机联网协同工作(有时也称为一个集群)就像单台系统一样解决某种问题,这样的系统我们称之为分布式系统. 分布式文件系统是分布式系统的一个子集,它们解决的问题就是数据存储.换句话说,它们是横跨在多台计算机上的存

开源Hadoop HDFS高可用性介绍、安装与配置

那么 CAMP 服务器对开源 Hadoop 的高可用性是否支持?答案是 肯定的.本文将介绍如何在 CAMP 服务器上使用 PLinux 操作系统实现开源 Hadoop HDFS 的高可用性.Hadoop 是目前最热门的大数据计算系统,它实现了一个可扩展的分布式文件系统 HDFS 作为海量数据的存储系统.HDFS 是主从式的分布式系统(如图 1),NameNode 管理整个文件系统的元数据,负责数据的分配,并管理着 DataNode:而 DataNode 负责存储数据块,按块(用户可设置,默认是

HDFS文件系统和对象存储有何不同?

最近在Quora上有人提到一个问题,有关Hadoop分布式文件系统和OpenStack对象存储的不同. 问题原文如下: "HDFS (Hadoop分布式文件系统)和OpenStack对象存储(OpenStack Object Storage)似乎都有着相似的目的:实现冗余.快速.联网的存储.什么样的技术特性让这两种系统因而不一样?这两种存储系统最终趋于融合是否大有意义?" 问题提出之后,很快有OpenStack的开发者进行了回复.本文在此摘抄了前两名回复进行翻译,以供各位参考. 排名第