前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0734-5.16.1-集群外客户端跨网段向Kerberos环境的Hadoop集群提交作业(续)

0734-5.16.1-集群外客户端跨网段向Kerberos环境的Hadoop集群提交作业(续)

作者头像
Fayson
发布2019-12-16 15:09:52
2.1K0
发布2019-12-16 15:09:52
举报
文章被收录于专栏:Hadoop实操

文档编写目的

在前面的文章《如何在集群外节点跨网段向HDFS写数据》和《外部客户端跨网段访问Hadoop集群方式(续)》中介绍了如何在集群外的客户端节点上访问Hadoop集群,本篇文章在前面文章的基础上基于Kerberos环境的CDH集群介绍,如何在集群外客户端跨网段向Kerberos环境的Hadoop集群提交MapReduce和Spark作业。

  • 测试环境

1.Redhat7.4

2.CDH5.16.1

3.集群已启用Kerberos

修改HDFS配置

1.进入HDFS服务的配置页面

2.在搜索栏输入“bind”勾选如下配置,将各服务的端口号绑定到0.0.0.0

3.搜索“core-site.xml”在高级配置项增加如下配置

代码语言:javascript
复制
<property>
    <name>hadoop.security.token.service.use_ip</name>
    <value>false</value>
</property>

4.搜索“hdfs-site.xml”在高级配置项增加如下配置

代码语言:javascript
复制
<property>
  <name>dfs.client.use.datanode.hostname</name>
  <value>true</value>
</property>

注意:该配置属于HDFS的Gateway角色高级参数,这个配置可以只在集群外客户端的配置文件增, 这里为了统一方便集群配置下发。

修改Yarn配置

由于需要在集群外客户端跨网段提交MapReduce和Spark作业,需要将Yarn服务的端口号绑定到0.0.0.0,根据如下操作修改Yarn配置。

1.进入Yarn服务的配置界面,搜索“bind”

完成上述所有配置后,回到CM主页根据提示重启相应服务及分发客户端配置。

修改hosts配置

1.将集群内所有节点的/etc/hosts信息配置为如下格式

2.将集群外客户端节点的/etc/hosts信息配置为如下格式:

注意:注意集群内和集群外节点的/etc/hosts配置文件内容及格式,未按照要求配置则可能会出现Kerberos集群外节点无法提交MapReduce和Spark作业到集群。

同步配置到客户端

由于集群外客户端节点并不在Cloudera Manager的管理范围,需要将集群的客户端配置同步至集群外的客户端节点,可以参考Fayson之前的文章《如何在CDH集群外配置Kerberos环境的Spark2和Kafka客户端环境》,由于本篇文章主要讲述跨网段在集群外客户端节点提交MapReduce和Spark作业,所以需要将/etc目录下的hadoop和spark配置信息同步。

1.检查客户端配置文件/etc/hadoop/conf/hdfs-site.xml是否包含如下配置信息

代码语言:javascript
复制
cat /etc/hadoop/conf/hdfs-site.xml

2.检查客户端配置文件/etc/hadoop/conf/core-site.xml是否包含如下配置信息

代码语言:javascript
复制
cat /etc/hadoop/conf/core-site.xml

3.检查/etc/spark/conf/yarn-conf目录下的hdfs-site.xml和core-site.xml配置文件中是否有dfs.client.use.datanode.hostname和hadoop.security.token.service.use_ip配置项。

功能验证

1.在集群外客户端执行命令验证hadoop命令是否可用

代码语言:javascript
复制
kinit fayson
hadoop fs -ls /
hadoop fs -put hosts /tmp
hadoop fs -ls /tmp
hadoop fs -rm /tmp/hosts

2.向集群提交一个MapReduce作业

代码语言:javascript
复制
hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 5 5

作业执行成功

3.向集群提交一个Spark作业

代码语言:javascript
复制
spark-submit --class org.apache.spark.examples.SparkPi   --master yarn-client   /opt/cloudera/parcels/CDH/lib/spark/lib/spark-examples.jar 10 

作业运行成功

总结

1.通过在集群外客户端配置文件/etc/hadoop/hdfs-site.xml配置中增加dfs.client.use.datanode.hostname为ture实现实现跨网段访问Kerberos环境下的HDFS服务。

2.需要跨网段向Kerberos集群提交Spark和MapReduce作业,需要将Yarn相应服务的端口号绑定在0.0.0.0上,同时需要在HDFS服务的core-site.xml配置文件中增加hadoop.security.token.service.use_ip为false,该参数需要在服务端和client端都存在,否则会报Kerberos认证失败的异常。

3.在配置Kerberos集群外节点提交Spark和MapReduce作业时,需要注意集群内外节点的hosts文件配置,按照文章中说明的格式配置,否则会导致作业提交失败。

参考:

代码语言:javascript
复制
https://community.cloudera.com/t5/Community-Articles/Parameters-for-Multi-Homing/ta-p/245732
https://issues.apache.org/jira/browse/HADOOP-7733
https://issues.apache.org/jira/browse/HADOOP-12954
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档