hadoop配置 - http address绑定内网地址

hadoop默认配置里http address接口domain段均为0.0.0.0,表示可通过任一网卡访问http接口,对于双网卡服务器(一个内网,一个外网),意味着公网用户可以随意访问hadoop系统开放的web资源,存在极大的安全隐患。我们可以修改配置将domain段替换成内网IP,这对于dfs.http.address、mapred.job.tracker.http.address没什么问题,但dfs.datanode.http.address需要到每个datanode上去修改,这太不现实了,可以通过以下方法实现自动配置。

通过local.bind.address参数 为http address绑定内网IP:

1、修改$HADOOP_HOME/conf/hadoop-env.sh(我采用最后一种方式,将hostname指向内网IP)

#bind_ip=$(/sbin/ifconfig eth1:0 | grep 'inet addr:' | cut -d: -f2 | awk '{print $1}')
#replace eth1:0 with your NIC / alias  这种方式需要所有机器内外网对应的网卡顺序一致
#bind_ip=$(/sbin/ifconfig | fgrep 'inet addr:172.16' | cut -d: -f2 | awk '{print $1}')
#这种方式需要所有机器内网IP前缀一致
bind_ip=$(/bin/hostname)
#这种方式需要在/etc/hosts里将hostname指向内网IP
export BIND_OPTS="-Dlocal.bind.address=${bind_ip}"
# Command specific options appended to HADOOP_OPTS when specified
export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS $BIND_OPTS"
export HADOOP_SECONDARYNAMENODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_SECONDARYNAMENODE_OPTS $BIND_OPTS"
export HADOOP_DATANODE_OPTS="-Dcom.sun.management.jmxremote $HADOOP_DATANODE_OPTS $BIND_OPTS"
export HADOOP_BALANCER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_BALANCER_OPTS $BIND_OPTS" 
export HADOOP_JOBTRACKER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_JOBTRACKER_OPTS $BIND_OPTS"
export HADOOP_TASKTRACKER_OPTS="-Dcom.sun.management.jmxremote $HADOOP_TASKTRACKER_OPTS $BIND_OPTS"

2、修改$HADOOP_HOME/conf/hdfs-site.xml( 这一步只能将datanode相关的address替换为预设变量)

<property>
?? ?<name>dfs.http.address</name> ?
?? ?<value>Master1-IP:50070</value> ?
</property> ?
<property> ?
?? ?<name>dfs.https.address</name> ?
?? ?<value>Master1-IP:50470</value> ?
</property> ?
<property> ?
?? ?<name>dfs.secondary.http.address</name> ?
?? ?<value>Master2-IP:50090</value> ?
</property> ?
<property> ?
?? ?<name>dfs.datanode.address</name> ?
?? ?<value>${local.bind.address}:50010</value> ?
</property> ?
<property> ?
?? ?<name>dfs.datanode.ipc.address</name> ?
?? ?<value>${local.bind.address}:50020</value> ?
</property> ?
<property> ?
?? ?<name>dfs.datanode.http.address</name> ?
?? ?<value>${local.bind.address}:50075</value> ?
</property> ?
<property> ?
?? ?<name>dfs.datanode.https.address</name> ?
?? ?<value>${local.bind.address}:50475</value> ?
</property>  

3、修改$HADOOP_HOME/conf/mapred-site.xml(这一步只能将tasktracker相关的address替换为预设变量)

<property>
    <name>mapred.job.tracker.http.address</name>  
    <value>Master1-IP:50030</value>  
</property>  
<property>  
    <name>mapred.task.tracker.http.address</name>  
    <value>${local.bind.address}:50060</value>  
</property>  

4、重启

$HADOOP_HOME/bin/stop-all.sh  
$HADOOP_HOME/bin/start-all.sh 

附:

1.下表列出了多种HDFS中默认端口

2.下表列出的各种MapReduce服务使用的默认端口

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值