Hadoop中必须配置hostname的源码分析
2016-03-24 14:14
190 查看
搭建Hadoop的时候必须配置两个文件:/etc/sysconfig/network和/etc/hosts
/etc/sysconfig/network的作用是设定机器的hostname
/etc/hosts的作用是主机名与ip地址的匹配,如果没有DNS服务器的话,系统上的所有网络程序都通过查询该文件解析主机名对应的ip地址
在Hadoop中,各个结点先通过getLocalHost()读取host,然后对应到ip,NodeManager开始启动
其中getLocalHost()方法是InetAddress类的静态方法,在getLocalHost()方法中会调用InetAddressImpl接口的getLocalHostName()方法
String local = impl.getLocalHostName();
getLocalHostName()方法的实现是native方法,此native方法中最终会调用linux的gethostname内核函数
linux中的hostname是个变量,由系统初始化的时候在shell启动脚本中/etc/rc.d/rc.sysinit中的$HOSTNAME环境变量赋值,$HOSTNAME环境变量由/bin/hostname赋值,主要是读取/etc/sysconfig/network中的HOSTNAME的值
需要注意:
如果文件中没有HOSTNAME,那么默认会使用localhost
因此String local的值即是linux中调用hostname命令所获取的值
如果local的值是localhost,则返回127.0.0.1(IPV4)或者::1
否则调用此代码
InetAddress.getAddressesFromNameService(local, null)
此代码需要查询/etc/hosts文件
因此必须在/etc/sysconfig/network和/etc/hosts中配置好别名和ip的对应
不然会出现异常:org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Failed NodeManager login
/etc/sysconfig/network的作用是设定机器的hostname
/etc/hosts的作用是主机名与ip地址的匹配,如果没有DNS服务器的话,系统上的所有网络程序都通过查询该文件解析主机名对应的ip地址
在Hadoop中,各个结点先通过getLocalHost()读取host,然后对应到ip,NodeManager开始启动
其中getLocalHost()方法是InetAddress类的静态方法,在getLocalHost()方法中会调用InetAddressImpl接口的getLocalHostName()方法
String local = impl.getLocalHostName();
getLocalHostName()方法的实现是native方法,此native方法中最终会调用linux的gethostname内核函数
linux中的hostname是个变量,由系统初始化的时候在shell启动脚本中/etc/rc.d/rc.sysinit中的$HOSTNAME环境变量赋值,$HOSTNAME环境变量由/bin/hostname赋值,主要是读取/etc/sysconfig/network中的HOSTNAME的值
需要注意:
如果文件中没有HOSTNAME,那么默认会使用localhost
因此String local的值即是linux中调用hostname命令所获取的值
如果local的值是localhost,则返回127.0.0.1(IPV4)或者::1
否则调用此代码
InetAddress.getAddressesFromNameService(local, null)
此代码需要查询/etc/hosts文件
因此必须在/etc/sysconfig/network和/etc/hosts中配置好别名和ip的对应
不然会出现异常:org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Failed NodeManager login
相关文章推荐
- [Linux]Linux的chattr与lsattr命令详解
- linux signal
- Windows下的回车换行转换Linux系统下的回车换行
- Hadoop 源码阅读系列
- Linux-DNS服务器(2):BIND区域传送
- Linux下使用Jmeter进行性能测试
- Linux的SOCKET编程详解
- linux下c++获取进程号
- 为nginx添加ip访问频率限制
- Linux 第五章 学习笔记
- Linux 第五章 学习笔记
- Linux启动新进程的几种方法及比较
- CentOS 6.4下Squid代理服务器的安装与配置
- 网站的最大并发连接数
- Linux-DNS服务器(1):DNS介绍及BIND安装
- centos下彻底删除MYSQL和重新安装MYSQL [yum方式]
- shell输入输出重定向
- 《Linux内核分析》第五周学习总结
- linux命令---awk基础
- OpenSessionInViewFilter的配置