MapReduce REST API接口介绍
功能简介
通过HTTP REST API来查看更多MapReduce任务的信息。目前Mapresuce的REST接口可以查询已完成任务的状态信息。完整和详细的接口请直接参考官网上的描述以了解其使用:http://hadoop.apache.org/docs/r3.1.1/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/HistoryServerRest.html。
准备运行环境
- 在节点上安装客户端,例如安装到“/opt/client”目录。
- 进入客户端安装目录“/opt/client”,执行下列命令初始化环境变量。
kinit 组件业务用户
kinit一次票据时效24小时。24小时后再次运行样例,需要重新kinit。
- 与HTTP服务访问相比,以HTTPS方式访问Mapreduce时,由于使用了SSL安全加密,需要确保Curl命令所支持的SSL协议在集群中已添加支持。若不支持,可对应修改集群中SSL协议。例如,若Curl仅支持TLSv1协议,修改方法如下:
登录FusionInsight Manager页面,单击“集群 > 待操作集群的名称 > 服务 > Yarn > 配置 >全部配置”,在“搜索”框里搜索“hadoop.ssl.enabled.protocols”,查看参数值是否包含“TLSv1”,若不包含,则在配置项“hadoop.ssl.enabled.protocols”中追加“,TLSv1”。清空“ssl.server.exclude.cipher.list”配置项的值,否则以HTTPS访问不了Yarn。单击“保存”,在“保存配置”中单击“确定”,保存完成后选择“更多>重启服务”重启该服务。
- MapReduce的配置项hadoop.ssl.enabled.protocols和ssl.server.exclude.cipher.list的值直接引用Yarn中对应配置项的值,因此需要修改Yarn中对应配置项的值并重启Yarn和MapReduce服务。
- TLSv1协议存在安全漏洞,请谨慎使用。
操作步骤
获取MapReduce上已完成任务的具体信息
- 命令:
curl -k -i --negotiate -u : "https://10.120.85.2:26014/ws/v1/history/mapreduce/jobs"
其中10.120.85.2为MapReduce的“JHS_FLOAT_IP”参数的参数值,26014为JobHistoryServer的端口号。
在部分低版本操作系统中使用curl命令访问JobHistoryServer会有兼容性问题,导致无法返回正确结果。
- 用户能看到历史任务的状态信息(任务ID,开始时间,结束时间,是否执行成功等信息)
- 运行结果
{ "jobs":{ "job":[ { "submitTime":1525693184360, "startTime":1525693194840, "finishTime":1525693215540, "id":"job_1525686535456_0001", "name":"QuasiMonteCarlo", "queue":"default", "user":"mapred", "state":"SUCCEEDED", "mapsTotal":1, "mapsCompleted":1, "reducesTotal":1, "reducesCompleted":1 } ] } }
- 结果分析:
通过这个接口,可以查询当前集群中已完成的MapReduce任务,并且可以得到表1