作者:oDavid_仔o_880 | 2021-09-06 00:08
本文主要参考有http://www.linuxidc.com/Linux/2012-01/51767.htmhttp://www.linuxidc.com/Linux/2012-01/51768.htm准备工作文中出现名词介绍alex,用户名,3台机器用户名一致master,namenode主机名slave[1-N],datanode主机名1安装
本文主要参考有
- http://www.linuxidc.com/Linux/2012-01/51767.htm
- http://www.linuxidc.com/Linux/2012-01/51768.htm
准备工作
文中出现名词介绍
- alex,用户名,3台机器用户名一致
- master,namenode主机名
- slave[1-N],datanode主机名
1 安装系统,参考 http://blog.csdn.net/sunshine_okey/article/details/7010574
2 设置ip地址,3台机器最好是局域网里,在同一网段,
3 修改主机名,添加三台机器的ip及主机名
- #vi /etc/sysconfig/network //修改HOSTNAME=XX
- #vi/etc/hosts //把默认的机器名localhost localhost.localhostlocalhst改为XX
- //并按照"ip 主机名 域名"格式添加ip地址和主机名的映射表,3台机器都要添加
- //本人的配置为 xx.xx.xx.xx alex alex
- #reboot //修改后重启机器
本人主机名分别为,master作为namenode,slave1,slave2作为datanode
4 关闭防火墙
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp-p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp-p tcp --dport 22 -j ACCEPT
先用1),再用2)
5 开启ssh,实现master到slave1,slave2的无密码登录
6 安装jdk1.6以上,并指定JAVA_HOME
上面是前期准备工作,以下正是开始部署Hadoop,所有节点配置方式相同,所以这里我们只是配置master一台,然后再把配置后的文件直接复制到其他节点上
7 解压hadoop程序到当前用户目录,并建立连接,同时在/etc/profile环境变量中添加HADOOP_HOME=hadoop目录
- tar -zxvf hadoop-0.21.0.tar.gz
- ln -s hadoop-0.21.0 hadoop
8 进入hadoop/conf中,修改slaves
去掉localhost,添加如下
- slave1
- slave2
修改master
去掉localhost,添加如下
master
配置hadoop
修改core-site.xml
core-site.xml中在修中添加项如下:
- <property>
- <name>hadoop.tmp.dirname>
- <value>/home/alex/hadoop/tmpvalue>
- property>
- <property>
- <name>fs.defaultFSname>
- <value>hdfs://master:9000value>
- property>
修改hdfs-site.xml
这里修改的是文件存储时备份的数量,按照自己的要求来,默认为3个副本
修改mapred-site.xml
- <property>
- <name>mapreduce.jobtracker.addressname>
- <value>master:9001value>
- <description>NameNodedescription>
- property>
10 复制已经配置后的文件到其他节点上
- [hadoop@master:~]$scp -r /home/alex/hadoop slave1:/home/alex/
- [hadoop@master:~]$scp -r /home/alex/hadoop slave2:/home/alex/
至此,部署完成
11 启动hadoop 进入hadoop/bin目录,然后
$./hadoop namenode -format //格式化文件系统
$./start-all.sh //启动系统
$./jps //查看启动情况
$./stop-all.sh //关闭
具体操作可以参考文档
常见问题
1 /home/alex/hadoop/bin/../bin/hadoop-daemon.sh:line 127: /tmp/hadoop-hadoop-namenode.pid: 权限不够
解决方案:
在hadoop-config中修改hadoop-env.sh,添加:exportHADOOP_PID_DIR=$HADOOP_HOME/run/tmp。改变pid的路径。3台机子一块改。
在/etc中修改profile,添加:export HADOOP_PID_DIR=$HADOOP_HOME/run/tmp,同样,改3台机子。
重启
2 “No route to host”
主要两个:
1、防火墙挡住了,可以关闭iptable
2、网段不同,没有路由信息,可检查IP和掩码确认一下