如果你还没有虚拟机,请参考:http://www.linuxidc.com/Linux/2017-03/141646.htm
如果你还没有试过单机模式,请参考:http://www.linuxidc.com/Linux/2017-03/142050.htm
参考:http://Hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html
集群规划
主机名 | ip | 安装的软件 | 进程 |
---|---|---|---|
master | 192.168.1.111 | jdk、hadoop | namenode ressourcemanager |
slave1 | 192.168.1.112 | jdk、hadoop | datanode secondnamenode |
slave2 | 192.168.1.113 | jdk、hadoop | datanade |
免登录
这里直接用root用户,注意将防火墙关掉:
#关闭防火墙
sudo systemctl stop firewalld.service
#关闭开机启动
sudo systemctl disable firewalld.service
免密码登录:
cd /root/.ssh/
ssh-keygen -t rsa
这里上个回车就ok,会在当前目录生成两个文件,一个公钥一个私钥
将公钥拷贝到其它机器上,实现免密码登录
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
这样会在slave1 的/root/.ssh/目录下生成一个authorized_keys 就可以实现master免登录到slave1,如下:
ssh slave1
安装JDK
在/opt/下创建soft-install文件夹来存放安装的软件,创建soft来安装软件
tar -zxvf jdk-8u91-linux-x64.tar.gz -C /opt/soft/
修改环境变量:
# 修改配置文件
vi /etc/profile
# 在最后下添加
export JAVA_HOME=/opt/soft/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 刷新配置文件
source /etc/profile
安装Hadoop
解压
tar -zxvf ./soft-install/hadoop-2.7.2.tar.gz -C /opt/soft/
删除docs
cd /opt/soft/hadoop-2.7.2/share
rm -rf doc/
修改环境变量
# 修改配置文件
vi /etc/profile
# 在最后下添加
export HADOOP_HOME=/opt/soft/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
# 刷新配置文件
source /etc/profile
修改配置文件
这些配置文件全部位于 /opt/soft/Hadoop-2.7.2/etc/hadoop 文件夹下
hadoop-env.sh
core-site.xml
<configuration>
<!-- 指定HDFS老大(namenode)的通信地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/soft/hadoop-2.7.2/tmp</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<!-- 设置namenode的http通讯地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<!-- 设置secondarynamenode的http通讯地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
<!-- 设置namenode存放的路径 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/soft/hadoop-2.7.2/name</value>
</property>
<!-- 设置hdfs副本数量 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 设置datanode存放的路径 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/soft/hadoop-2.7.2/data</value>
</property>
</configuration>
mapred-site.xml
必须先
mv mapred-site.xml.template mapred-site.xml
<configuration>
<!-- 通知框架MR使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<!-- 设置 resourcemanager 在哪个节点-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- reducer取数据的方式是mapreduce_shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
masters
新建一个masters的文件,这里指定的是secondary namenode 的主机
slave1
slaves
slave1
slave2
创建文件夹:
mkdir tmp name data
复制到其他主机
复制/etc/hosts(因为少了这个导致secondarynamenode总是在slave1启动不起来)
scp /etc/hosts slave1:/etc/
scp /etc/hosts slave2:/etc/
复制/etc/profile (记得要刷新环境变量)
scp /etc/profile slave1:/etc/
scp /etc/profile slave2:/etc/
复制/opt/soft
scp -r /etc/soft slave1:/opt/
scp -r /etc/soft slave2:/opt/
记得在slave1和slave2上刷新环境变量
启动
第一次启动得格式化
./bin/hdfs namenode -format
启动dfs
./sbin/start-dfs.sh
启动yarn
./sbin/start-yarn.sh
查看
master
slave1
slave2
通过浏览器测试hdfs:
192.168.2.111:50070
注意这里有数据才是成功,我因为没把hosts文件复制到其他主机,导致启动的进程都是正确的,但是这里就是没数据,后来查资料检查才是没复制hosts文件。复制之后就一切正常了
通过浏览器测试yarn:
192.168.2.111:8088
可以看到一切正常。2个节点。
至此我们的三台hadoop运行。
下面关于Hadoop的文章您也可能喜欢,不妨看看:
Ubuntu14.04下Hadoop2.4.1单机/伪分布式安装配置教程 http://www.linuxidc.com/Linux/2015-02/113487.htm
CentOS 6.3下Hadoop伪分布式平台搭建 http://www.linuxidc.com/Linux/2016-11/136789.htm
Ubuntu 14.04 LTS下安装Hadoop 1.2.1(伪分布模式) http://www.linuxidc.com/Linux/2016-09/135406.htm
Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) http://www.linuxidc.com/Linux/2013-01/77681.htm
实战CentOS系统部署Hadoop集群服务 http://www.linuxidc.com/Linux/2016-11/137246.htm
Hadoop 2.6.0 HA高可用集群配置详解 http://www.linuxidc.com/Linux/2016-08/134180.htm
Spark 1.5、Hadoop 2.7 集群环境搭建 http://www.linuxidc.com/Linux/2016-09/135067.htm
在Ubuntu X64上编译安装Hadoop http://www.linuxidc.com/Linux/2016-12/138568.htm
CentOS 6.7安装Hadoop 2.7.3 http://www.linuxidc.com/Linux/2017-01/139089.htm
CentOS7+Hadoop2.5.2+Spark1.5.2环境搭建 http://www.linuxidc.com/Linux/2017-01/139364.htm
更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13