没有进行单点配置的同学,请参考的的上一篇博客hadoop单点配置
1、域名映射
编辑/etc/hosts 文件,注意host name不要有下划线
192.168.0.128 master
192.168.0.129 slave1
重启网络服务
service network restart
ubuntu下:/etc/init.d/networking restart
2、 验证
ssh 服务端主机名或IP
无须再输入密码短语。
如果要客户端与服务端都要互相无密码登录,则服务端要按照客户端的设置的方法进行设置,
而客户端要按照服务端的设置的方法进行设置。
设置方法参考下面:
拷贝本地生产的key到远程服务器端
$cat ~/.ssh/id_dsa.pub | ssh 远程用户名@远程服务器ip 'cat - >> ~/.ssh/authorized_keys'
' 3、在Hadoop目录下创建临时文件夹,并在后面配置文件中指定路
mkdir /usr/local/hadoop/tmp
4、修改Hadoop相关文件
(1)配置hadoop环境变量
修改"/etc/profile"文件(配置java环境变量的文件),将以下语句添加到末尾,并使其有效:
set hadoop path
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH :$HADOOP_HOME/bin
使环境变量生效
source /etc/profile
(2)配置core-site.xml文件
修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号。
- <configuration>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/usr/hadoop/tmp</value>
- (备注:请先在 /usr/hadoop 目录下建立 tmp 文件夹)
- <description>A base for other temporary directories.</description>
- </property>
- <!-- file system properties -->
- <property>
- <name>fs.default.name</name>
- <value>hdfs://localhost:9000</value>
- </property>
- </configuration>
备注:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。
(3)配置hdfs-site.xml文件
修改Hadoop中HDFS的配置,配置的备份方式默认为3。
- <configuration>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- (备注:replication 是数据副本数量,默认为3,salve少于3台就会报错)
- </property>
- <configuration>
(4)配置mapred-site.xml文件
修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。
- <property>
- <name>mapred.job.tracker</name>
- <value>http://192.168.0.129:9001</value>
- </property>
- </configuration>
(5)配置masters文件
去掉"localhost",加入Master机器的IP:192.168.0.128
(6)配置slaves文件(Master主机特有)
去掉"localhost",加入集群中所有Slave机器的IP,也是每行一个。
例如:添加形式如下
192.168.0.129
192.168.0.130
现在在Master机器上的Hadoop配置就结束了,剩下的就是配置Slave机器上的Hadoop
4、将配置好的Hadoop目录拷贝到其它slave机器
将 Master上配置好的hadoop所在文件夹"/usr/local/hadoop"复制到所有的Slave的"/usr/local"目录下(实际上Slave机器上的slavers文件是不必要的, 复制了也没问题), 接着在slave机器上修改"/etc/profile"文件(配置 java 环境变量的文件),将以下语句添加到末尾,并使其有效(source/etc/profile):
- # set hadoop environment
- export HADOOP_HOME=/usr/local/hadoop
- export PATH=$PATH :$HADOOP_HOME/bin
5、 启动及验证
(1)启动hadoop
在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。
service iptables stop
ubuntu下执行:sudo ufw disable
启动hadoop
start-all.sh
(2)验证hadoop
在Master和slave机器上用 java自带的小工具jps查看进程。
jps
结果如下:
10749 DataNode
11058 JobTracker
11430 Jps
10518 NameNode
10973 SecondaryNameNode
11302 TaskTracker
(b) 网页查看集群
访问http://192.168.0.128:50030
访问http://192.168.0.128:50070
如果出现错误,请先清空logs,然后重启hadoop,查看log
另附hadoop/conf下核心配置文件内容:
core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
<description>(备注:请先在 /opt/hadoop 目录下建立 tmp 文件夹)</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>其中fs.default.name 为hdfs地址</description>
</property>
</configuration>
hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.0.128:9001</value>
</property>
</configuration>