• 欢迎关注微信公众号:九万里大数据
  • 请使用Ctrl+D收藏本站到书签栏
  • 手机也可访问本站 jwldata.com

双网卡hadoop集群以外的客户端访问HDFS和提交Spark任务

大数据技术 九万里大数据 1年前 (2021-05-03) 794次浏览 0个评论 扫描二维码
文章目录[隐藏]

场景:hadoop集群双网卡,客户端在集群外,客户端只能访问外网IP。默认客户端连接hadoop是通过IP地址的,即使在客户端配置的/etc/hosts里为外网IP和域名的映射关系,也会连内网IP,导致无法访问datanode的1004端口,无法实现文件的上传和下载。为了在hadoop集群内能使用内网网卡,hadoop集群外能使用外网网卡,充分利用网络带宽,需要以下配置。

设置参数

可设置以下两个参数为true,使客户端使用datanode的hostname来访问。当然要确保在客户端配置的/etc/hosts里为外网IP和域名的映射关系。
dfs.client.use.datanode.hostname
dfs.datanode.use.datanode.hostname
双网卡hadoop集群以外的客户端访问HDFS和提交Spark任务

并将NameNode和DataNode的端口绑定到通配符地址(即0.0.0.0)上。
双网卡hadoop集群以外的客户端访问HDFS和提交Spark任务

并将ResourceManager的端口绑定到通配符地址(即0.0.0.0)上。
双网卡hadoop集群以外的客户端访问HDFS和提交Spark任务

并将HiveServer2的端口绑定到通配符地址(即0.0.0.0)上(如果没有使用haproxy的情况下)。
双网卡hadoop集群以外的客户端访问HDFS和提交Spark任务

环境检查清单

hadoop集群:

  • /etc/hosts中配的是集群机器的内网IP和hostname的映射关系
  • dfs.client.use.datanode.hostname和dfs.datanode.use.datanode.hostname设置成true
  • NameNode, DataNode, ResourceManager, HiveServer2等将端口绑定到通配符地址(即0.0.0.0)上

集群外客户端:

 

测试验证

在hadoop集群外的Spark客户端提交一个任务。

spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster  /opt/spark-2.4.0-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.4.0.jar 10

注意:spark提交方式必须是cluster模式。使用client模式会报错,因为客户端机器的hostname没有在hadoop集群的机器/etc/hosts里面配置,导致DataNode无法识别客户端机器的hostname,进而导致报错。

在hadoop集群外的Hadoop客户端进行文件上传和下载操作。

hdfs dfs -put 1.txt /tmp
hdfs dfs -get /tmp/1.txt

欢迎关注我的微信公众号“九万里大数据”,原创技术文章第一时间推送。
欢迎访问原创技术博客网站 jwldata.com,排版更清晰,阅读更爽快。


双网卡hadoop集群以外的客户端访问HDFS和提交Spark任务
 


本站文章,如未注明,均为原创 | 原创文章版权归九万里大数据所有,未经许可不得转载。
本文链接:双网卡hadoop集群以外的客户端访问HDFS和提交Spark任务
喜欢 (2)

您必须 登录 才能发表评论!