Hadoop REST API -- WebHDFS(上)

本文介绍了如何通过Hadoop的WebHDFS REST API进行HDFS文件系统的操作,包括配置步骤、启动Httpfs服务及验证配置正确性的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 介绍

Hadoop提供了一个Java native API来支持对文件系统进行创建,重命名,删除文件或者目录,打开读取或者写文件,设置文件权限等操作。这对于运行在hadoop集群中的应用程序来说是挺棒的,但是,也有许多外部的应用程序需要操作HDFS的情况,怎么办?如果解决这种问题呢?Hortonworks 开发了一些额外的API来支持这些基于标准REST功能的需求。


2 WebHDFS REST API

WebHDFS观念是基于HTTP操作,比如GET、PUT、POST和DELETE。像OPEN、GETFILESTATUS、LISTSTATUS的操作是使用HTTP GET,其它的像CREAT、MKDIRS、RENAME、SETPERMISSION是依赖于HTTP PUT类型。APPEND操作时基于HTTP POST类型,然而,DELETE是使用HTTP DELETE。

认证方式可以使用基于user.name参数或者如果安全机制开启了就依赖于Kerberos。标准的URL格式如下所示:

http://host:port/webhdfs/v1/?op=operation&user.name=username

默认的启动对口是14000,你可以在httpfs-env.sh 中配置端口的值。所有与httpfs有关的环境参数变量,你可以再httpfs-env.sh中进行个性化的配置。


3 Httpfs 配置启动

编辑core-site.xml文件,添加如下内容:

 <property>
 <name>hadoop.proxyuser.#HTTPFSUSER#.hosts</name>
 <value>*</value>
 </property>
 <property>
 <name>hadoop.proxyuser.#HTTPFSUSER#.groups</name>
 <value>*</value>
 </property>

….

值得注意的是,#HTTPFSUSER#指的是用户名,即linux启动httpfs的用户。

编辑hdfs-site.xml文件,添加下列属性配置。

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

另外,想知道更多的有关HDFS端口信息,请参考Cloudera blog.

启动httpfs,执行如下命令:

  httpfs.sh start

4 验证

一切配置好了之后,测试一下是否配置成功是非常有必要的。有这样一种情况,我们需要知道hdfs 目录下tmp的文件状态。按照这样的需求,我们可以编写这样的命令:

命令行下

curl –i http://hadoop-master:14000/webhdfs/v1/tmp?user.name=app&op=GETFILESTATUS
HTTP/1.1 200 OK
Server:Apache-Coyote/1.1
Set-Cookie:hadoop.auth="u=app&p=app&t=simple&e=1393293979907&s=9YBXB7GM3oiIOYgflAjlq3GIpxc=";Version=1; Path=/
Content-Type:application/json
Transfer-Encoding:chunked
Date: Mon, 24Feb 2014 16:06:20 GMT
 
{"FileStatus":{"pathSuffix":"","type":"DIRECTORY","length":0,"owner":"app","group":"supergroup","permission":"720","accessTime":0,"modificationTime":1391352186043,"blockSize":0,"replication":0}}


浏览器中:

http://hadoop-master:14000/webhdfs/v1/tmp?user.name=app&op=GETFILESTATUS


返回信息:


{"FileStatus":{"pathSuffix":"","type":"DIRECTORY","length":0,"owner":"app","group":"supergroup","permission":"720","accessTime":0,"modificationTime":1391352186043,"blockSize":0,"replication":0}}


后续,请等待…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值