Hadoop2.6.2全分布式集群搭建

来源:互联网 发布:无线网卡无法识别网络 编辑:程序博客网 时间:2024/05/08 10:03

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_79HADOOP_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 -versionjava 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=yesNETWORKING_IPV6=noPEERNTP=noGATEWAY=192.168.74.147HOSTNAME=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  master192.168.74.144  slave1192.168.74.146  slave2                

2.ssh免密码登录


修改三台机器ssh配置文件

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

去掉如下三行注释,退出

RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile      .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 slave1Last login: Sun Apr  9 19:20:24 2017[root@slave1 ~]# ssh slave2ssh: connect to host slave2 port 22: No route to host[root@slave1 ~]# ssh masterLast 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]# lsdata  name[root@master hdfs]# 

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

[root@master hadoop]# vim slaves
slave1slave2

进入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]# lsdistribute-exclude.sh    start-all.cmd        stop-balancer.shhadoop-daemon.sh         start-all.sh         stop-dfs.cmdhadoop-daemons.sh        start-balancer.sh    stop-dfs.shhdfs-config.cmd          start-dfs.cmd        stop-secure-dns.shhdfs-config.sh           start-dfs.sh         stop-yarn.cmdhttpfs.sh                start-secure-dns.sh  stop-yarn.shkms.sh                   start-yarn.cmd       yarn-daemon.shmr-jobhistory-daemon.sh  start-yarn.sh        yarn-daemons.shrefresh-namenodes.sh     stop-all.cmdslaves.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]# jps5916 ResourceManager5773 SecondaryNameNode6170 Jps5596 NameNode

slave进程如下:

[root@slave1 ~]# jps4151 Jps3894 DataNode3995 NodeManager

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

我们可以看到活节点数是2,说明节点正常运行。
hadoop

当然我们还可以通过此页面来看日志文件
hadoop
hadoop

总结

1.不成功原因

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

2.用到的知识

  • Makedown指南
  • Apache™ Hadoop®
  • CentOS wiki
1 0
原创粉丝点击