YARN和HDFS的调用方式汇总
总结涉及到运行YARN和HDFS的几种方式,包括使用命令行,JAVA API,REST API,oozie等.
调用YARN的几种方式
1. 命令行方式
hadoop jar wordcount.jar hdfs_input hdfs_output
2. JAVA API
hadoop API docs包含了hadoop的全部包,针对YARN的API也包含其中。
3. 使用YARN REST APIS
通过YARN(MapReduceV2)提供的api,用户可以自定义提交作业,查看作业状态等,参见Hadoop YARN - Introduction to the web services REST API’s.
以查看某个job运行状态为例,参见Cluster Application State API.用户查询id为"application_1399397633663_0003"的job的运行状态时,发送的Request和收到的Response如下,
HTTP Request
GET http://<rm http address:port>/ws/v1/cluster/apps/application_1399397633663_0003/state
Response Header:
HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Server: Jetty(6.1.26)
Response Body:
{ "state":"ACCEPTED" }
4. 使用oozie
4.1 使用oozie代理提交作业
使用oozie来提交hadoop作业前,需配置hadoop的core-site.xml文件,如下所示,参见--Oozie Quick Start.
<!-- OOZIE -->
<property>
<name>hadoop.proxyuser.[OOZIE_SERVER_USER].hosts</name>
<value>[OOZIE_SERVER_HOSTNAME]</value>
</property>
<property>
<name>hadoop.proxyuser.[OOZIE_SERVER_USER].groups</name>
<value>[USER_GROUPS_THAT_ALLOW_IMPERSONATION]</value>
</property>