共计 2826 个字符,预计需要花费 8 分钟才能阅读完成。
1. 配置
namenode 的 hdfs-site.xml 是必须将 dfs.webhdfs.enabled 属性设置为 true,否则就不能使用 webhdfs 的 LISTSTATUS、LISTFILESTATUS 等需要列出文件、文件夹状态的命令,因为这些信息都是由 namenode 来保存的。
————————————– 分割线 ————————————–
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
Hadoop LZO 安装教程 http://www.linuxidc.com/Linux/2013-01/78397.htm
Hadoop 集群上使用 Lzo 压缩 http://www.linuxidc.com/Linux/2012-05/60554.htm
————————————– 分割线 ————————————–
在 namenode 和一台 datanode 中向 /etc/hadoop/conf/hdfs-site.xml 中添加属性:
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
2. 使用说明
访问 namenode 的 hdfs 使用 50070 端口,访问 datanode 的 webhdfs 使用 50075 端口。访问文件、文件夹信息使用 namenode 的 IP 和 50070 端口,访问文件内容或者进行打开、上传、修改、下载等操作使用 datanode 的 IP 和 50075 端口。要想不区分端口,直接使用 namenode 的 IP 和端口进行所有的 webhdfs 操作,就需要在所有的 datanode 上都设置 hefs-site.xml 中的 dfs.webhdfs.enabled 为 true。
3.curl 操作 webhdfs
创建并写一个文件
curl -i -X PUT “http://localhost:50070/webhdfs/v1/<PATH>?op=CREATE
[&overwrite=<true|false>][&blocksize=<LONG>][&replication=<SHORT>]
[&permission=<OCTAL>][&buffersize=<INT>]“
curl -i -X PUT -T <LOCAL_FILE> “http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?
op=CREATE…“
注意这个地方填入的是 DataNode 的信息
在一个文件内追加内容
curl -i -X POST “http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=APPEND[&buffersize=<INT>]”
curl -i -X POST -T <LOCAL_FILE> “http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?
op=APPEND…“
注意该条命令获得的是 DataNode 的信息。
打开并读取一个文件
curl -i -L “http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=OPEN
[&offset=<LONG>][&length=<LONG>][&buffersize=<INT>]“
创建一个目录
curl -i -X PUT “http://<HOST>:<PORT>/<PATH>?op=MKDIRS[&permission=<OCTAL>]“
重名命文件、文件夹
curl -i -X PUT “<HOST>:<PORT>/webhdfs/v1/<PATH>?op=RENAME&destination=<PATH>”
删除文件 / 文件夹
curl -i -X DELETE “http://<host>:<port>/webhdfs/v1/<path>?op=DELETE [&recursive=<true|false>]“
文件 / 文件夹的状态信息
curl -i“http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETFILESTATUS“
目录列表
curl -i “http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=LISTSTATUS”
获取目录的上下文环境汇总信息
curl -i “http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETCONTENTSUMMARY”
获取 Check Sum File
curl -i “http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETFILECHECKSUM”
获取 Home 目录
curl -i “http://<HOST>:<PORT>/webhdfs/v1/?op=GETHOMEDIRECTORY”
设置权限
curl -i -X PUT “http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETPERMISSION [&permission=<OCTAL>]“
设置所有者
curl -i -X PUT “http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETOWNER [&owner=<USER>][&group=<GROUP>]”
设置备份
curl -i -X PUT “http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETREPLICATION [&replication=<SHORT>]“
参考
Hadoop 2.0 详细配置教程 http://www.linuxidc.com/Linux/2014-05/101532.htm
更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13