当前位置: 代码迷 >> 综合 >> Hadoop2.6.2全分布式集群搭建
  详细解决方案

Hadoop2.6.2全分布式集群搭建

热度:70   发布时间:2023-10-13 14:52:38.0

Hadoop2.6.2全分布式集群搭建.


准备环境

1.机器以及软件下载

客户端:Win10专业版,64位操作系统,内存8G
服务器(虚拟机运行):Linux CentOS 64位 7.0 内存1.5G
虚拟软件:VMware Workstation 12
JDK:1.7.0_79 64 bit
Hadoop:2.6.2

2.网络环境

1.本次搭建采用三台虚拟机,一台作为 Master,两台是Slave。三台机器ip分配如下:

机器名 IP 类型 用户名
Master 192.168.74.147 主节点 root
Slave1 192.168.74.144 从节点 root
Slave2 192.168.74.146 从节点 root

机器之间可以相互ping通。

2.所有机器防火墙全部关闭。

[root@master home]# firewall-cmd --state 
#查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
[root@master home]# systemctl stop firewalld.service 
#停止firewall
[root@master home]# systemctl disable firewalld.service 
#禁止firewall开机启动

集群搭建步骤

1.安装配置JDK1.7.0_79

在Master节点中的/home中建好java,soft目录。将jdk1.7.0_79压缩包放在soft目录中。

[root@master home]# mkdir java soft

进入soft目录,将下载好的jdk安装包解压到java目录下。

[root@master soft]# tar -zxvf jdk1.7.0_79.tar.gz -C /home/java

进入配置文件./bash_profile配置Java路径。

[root@master home]# vim ~/.bash_profile

在文件末尾加入如下信息:

JAVA_HOME=/home/java/jdk1.7.0_79
HADOOP_HOME=/home/hadoop/hadoop-2.6.2PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH:$HOME/binexport PATH
[root@master home]# source ~/.bash_profile
#使配置文件生效

查看java信息成功,则配置生效。

[root@master home]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

到此,Master节点Java信息配置成功。从节点配置同上方法。

2.集群搭建配置

1.机器信息配置


[root@master home]# vim /etc/hostname
#在此文件中改名字

配置网络信息:

[root@master home]# vim /etc/sysconfig/network

添加如下信息:

# Created by anacondaNETWORKING=yes
NETWORKING_IPV6=no
PEERNTP=no
GATEWAY=192.168.74.147
HOSTNAME=master                 

关联机器名和IP,使个节点可以通过机器名访问。

[root@master home]# vim /etc/hosts

添加节点和IP信息。

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.74.147  master
192.168.74.144  slave1
192.168.74.146  slave2                

2.ssh免密码登录


修改三台机器ssh配置文件

[root@master home]# vim /etc/ssh/sshd_config

去掉如下三行注释,退出

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

接着产生公钥

[root@master .ssh]# ssh-keygen -t rsa

将各节点产生的公钥合并到authorized_keys中,并且用scp命令传给其他节点

[root@master .ssh]# cat id_rsa.pub >>authorized_keys
[root@master .ssh]# ssh root@slave1 cat ~/.ssh/id_rsa.pub >> authorized_keys
[root@master .ssh]# ssh root@slave2 cat ~/.ssh/id_rsa.pub >> authorized_keys
[root@master .ssh]# scp authorized_keys root@slave1:/root/.ssh/authorized_keys
[root@master .ssh]# scp authorized_keys root@slave2:/root/.ssh/authorized_keys

成功后用ssh无密码登录

[root@master home]# ssh slave1
Last login: Sun Apr  9 19:20:24 2017
[root@slave1 ~]# ssh slave2
ssh: connect to host slave2 port 22: No route to host
[root@slave1 ~]# ssh master
Last login: Sun Apr  9 19:30:58 2017
[root@master ~]# 

3.Hadoop安装

将下载到soft的压缩包解压到/home/hadoop目录下

[root@master soft]# tar -zxvf hadoop.tar.gz -C /home/hadoop

在/home/hadoop/下建立hdfs和tmp目录,并且在hdfs中建立name和data目录

[root@master hadoop]# ls 
hadoop-2.6.2  hdfs  inputs  ncdc  ncdc.jar  tmp
[root@master hadoop]# cd hdfs
[root@master hdfs]# ls
data  name
[root@master hdfs]# 

接下来配置主要配置文件,首先进入/home/hadoop/hadoop-2.6.2/etc/hadoop
进入slaves文件加入节点名字

[root@master hadoop]# vim slaves
slave1
slave2

进入core-site.xml配置文件系统和临时目录等参数

[root@master hadoop]# vim core-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><property><name>hadoop.tmp.dir</name><value>/home/hadoop/tmp</value></property>
</configuration>

配置hdfs-site.xml文件冗余数设为2

[root@master hadoop]# vim hdfs-site.xml
<configuration><property><name>dfs.namenode.name.dir</name><value>/home/hadoop/hdfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>/home/hadoop/hdfs/data</value></property><property><name>dfs.replication</name><value>2</value></property>
</configuration>

配置mapred-site.xml.template 文件,此文件只有从节点需要配置

[root@master hadoop]# vim mapred-site.xml.template 
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>dfs.permissions</name><value>false</value></property>
</configuration>

配置yarn-site.xml文件,管理节点名字等

[root@slave1 hadoop]# vim yarn-site.xml
<configuration><!-- Site specific YARN configuration properties -->
<property><name>yarn.resourcemanager.hostname</name><value>master</value>
</property>
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property></configuration>

配置hadoop-env.sh,mapred-env.sh和yarn-env.sh中的JAVA_HOME。

# The java implementation to use.
export JAVA_HOME=/home/java/jdk1.7.0_79

将配置好的hadoop文件压缩后传给每个节点

[root@slave1 home]# tar -czf hadoop.tar.gz hadoop/
[root@slave1 home]# scp hadoop.tar.gz root@slave1:/home/
[root@slave1 home]# scp hadoop.tar.gz root@slave2:/home/

这样主节点配置信息传递到每个从节点,hadoop集群配置完成。
接下来在主节点格式化

[root@slave1 home]# hadoop namenode -format

提示信息就不演示了,最后会有提示格式化成功。
然后接下来可以启动集群,首先进入/home/hadoop/hadoop-2.6.2/sbin查看可执行的命令

[root@slave1 sbin]# ls
distribute-exclude.sh    start-all.cmd        stop-balancer.sh
hadoop-daemon.sh         start-all.sh         stop-dfs.cmd
hadoop-daemons.sh        start-balancer.sh    stop-dfs.sh
hdfs-config.cmd          start-dfs.cmd        stop-secure-dns.sh
hdfs-config.sh           start-dfs.sh         stop-yarn.cmd
httpfs.sh                start-secure-dns.sh  stop-yarn.sh
kms.sh                   start-yarn.cmd       yarn-daemon.sh
mr-jobhistory-daemon.sh  start-yarn.sh        yarn-daemons.sh
refresh-namenodes.sh     stop-all.cmd
slaves.sh                stop-all.sh

启动集群可以用 ./start-all.sh命令同时启动start-dfs.sh and start-yarn.sh

[root@slave1 sbin]# ./start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh

启动成功后jps查看java进程,master进程如下:

[root@master sbin]# jps
5916 ResourceManager
5773 SecondaryNameNode
6170 Jps
5596 NameNode

slave进程如下:

[root@slave1 ~]# jps
4151 Jps
3894 DataNode
3995 NodeManager

至此hadoop集群已经搭建成功!你也可以通过浏览器来查看集群信息。
Hadoop2.6.2全分布式集群搭建
注意这里实际上是主节点IP:192.168.74.147,之所以输入hadoop可以访问是因为在客户机中对hosts文件中添加了“192.168.74.147 hadoop”进行了关联,如果没有此步骤可以输入:主节点IP:+端口50070 来查看。

我们可以看到活节点数是2,说明节点正常运行。
Hadoop2.6.2全分布式集群搭建

当然我们还可以通过此页面来看日志文件
Hadoop2.6.2全分布式集群搭建
Hadoop2.6.2全分布式集群搭建

总结

1.不成功原因

首先对linux操作要有一定的熟悉程度,其次要学会查看日志和找错误提示,在修改配置文件时要仔细。如果hadoop和Java版本不合适也会导致无法搭建,博客中的版本并不是最好的,事实上hadoop1.7.3和Java1.8在后续使用中更好。此博文作为大数据学习有很多不足的地方,欢迎留言指出。

2.用到的知识

  • Makedown指南
  • Apache? Hadoop?
  • CentOS wiki