Hadoop集群搭建详细步骤(2.6.0)

本文记录在3台物理机上搭建Hadoop 2.6.0的详细步骤及碰到的问题解决。默认使用root账号操作,实际中建议使用专用的hadoop用户账号。

1. 环境

机器: 物理机3台,ip分别为192.168.1.130、192.168.1.132、192.168.1.134

操作系统: CentOS 6.6

Java: 1.7

Hadoop: 2.6.0

请确保JDK已安装,使用java -version确认。

hosts配置

配置主机hosts文件:

vim /etc/hosts
192.168.1.130 master
192.168.1.132 slave1
192.168.1.134 slave2

ssh配置

master上的namenode需要无密码ssh访问两台salve,一次需要配置无密码ssh。步骤如下:

在master上:

使用下面命令生成密钥对:

ssh-keygen -t rsa

-t参数表示类型,这里选择rsa。选择保存位置的时候直接回车,使用默认的/root/.ssh/id_rsa。提示输入密码的时候,直接回车。如下图:

上述命令将在/root/.ssh目录下生成公钥文件id_rsa.pub。将此文件拷贝到.ssh目录下的authorized_keys:

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

ssh登录本机,确保能够免密码登录:

然后将公钥复制到两台slave:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.132
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.134

ssh-copy-id 把公钥分发即追加到远程主机的 .ssh/authorized_key 上,并确保目录及文件有对应的权限。确保可以从master免密码登录到slave1和slave2:

配置文件目录

在master常见name,data,ymp分别用于保存HDFS的namenode文件,数据及临时文件:

mkdir /home/data/hdfs
cd /home/data/hdfs
mkdir name
mkdir data
mkdir tmp

然后将hdfs文件拷贝到两台slave对应的位置:

scp -r hdfs/ root@192.168.1.132:/home/data/hdfs
scp -r hdfs/ root@192.168.1.134:/home/data/hdfs

2. 安装及配置

下载hadoop 2.6

cd /home/soft/
mkdir hadoop
cd hadoop
wget http://apache.fayea.com/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

解压到home目录下:

tar zxvf hadoop-2.6.0.tar.gz -C /home/

配置Hadoop集群:

Hadoop的配置文件位于安装目录下的etc/hadoop文件。

配置core-site.xml

vim /home/hadoop-2.6.0/etc/hadoop/core-site.xml 
<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/data/hdfs/tmp</value>
    <description>A base for other temporary directories.</description>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
  </property>
  <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
  </property>
  <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
  </property>
</configuration>

配置hdfs-site.xml

基本配置包括副本数量,数据存放目录等。

vim /home/hadoop-2.6.0/etc/hadoop/hdfs-site.xml 
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/data/hdfs/name</value>
    <final>true</final>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/data/hdfs/data</value>
    <final>true</final>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:9001</value>
  </property>
  <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.permissions</name>
    <value>false</value>
  </property>
</configuration>

配置yarn-site.xml

vim /home/hadoop-2.6.0/etc/hadoop/yarn-site.xml 
<configuration>

  <!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>

  <property>
    <name>yarn.resourcemanager.address</name>
    <value>master:18040</value>
  </property>

  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:18030</value>

  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:18088</value>
  </property>

  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:18025</value>

  <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>master:18141</value>
  </property>

  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>

  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
</configuration>

配置mapred-site.xml

vim /home/hadoop-2.6.0/etc/hadoop/mapred-site.xml 
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

配置salve

vim /home/hadoop-2.6.0/etc/hadoop/slaves 
slave1
slave2

将hadoop整个文件copy到两台slave:

cd /home
scp -r  hadoop-2.6.0 root@slave1:/home/
scp -r  hadoop-2.6.0 root@slave2:/home/

配置path

vim /etc/profile
export HADOOP_HOME=/home/hadoop-2.6.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
. /etc/profile

这样在master机器上的任意路径都可以运行hadoop命令。

3. 运行Hadoop

Hadoop提供了很丰富的脚本供使用,主要在安装目录中的bin及sbin。

启动namenode

启动之前需要格式化一下:

在master机器上执行下面的命令,格式化HDFS文件系统:

hadoop namenode -format

格式化成功,现在启动namenode守护进程:

hadoop-daemon.sh start namenode

查看hadoop进程:

ps -ef | grep hadoop

可以看到已经有hadoop进程启动:

使用jps命令查看JVM进程:

jps

可以看到namenode成功启动:

如果提示你找不到jps,请确保你安装了JDK而不是jre并将jdk/bin设置到PATH环境变量中。

启动datanode

启动datanode命令如下:

hadoop-daemons.sh start datanode

该命令会远程启动slave上的datanode守护进程。但是启动出现错误:

echo $JAVA_HOME看到已经配置了,查明是因为hadoop-env.sh没有配置JAVA_HOME,修改配置如下(集群其他节点需同步修改):

 vim /home/hadoop-2.6.0/etc/hadoop/hadoop-env.sh

重新启动datanode:

在slave上运行jps,发现没有datanode,查看日志:

vim /home/hadoop-2.6.0/logs/hadoop-root-datanode-brandon132.out

提示mapred-site.xml配置有问题,查看果然如此:

修正后重新启动datanode:

两台slave运行jps都证明datanode启动成功:

上述两个步骤(启动namenode和datanode可以合并为一个命令)

start-dfs.sh 

该脚本位于Hadoop安装目录中bin目录下,我们已经加入到PATH环境变量中。

启动YARN:

yarn-daemon.sh start resourcemanager

启动nodemanager:

yarm-daemon.sg start nodemanager

上述两步一样可以合并为:

start-yarn.sh

在master上运行jps,ResourceManager已启动:

在salve上运行jps,发现只有datanode而没有nodemanager:

查看log日志:

发现shuffle这个aux-serviece配置非法,经查证,新版本中mapreduce.shuffle需改为mapreduce-shuffle,即在mapred-site.xml中配置修改如下(集群其他节点需同步修改):

原来:

 <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce.shuffle</value>
  </property>

改为下划线:

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

修改后重启,成功:

查看HDFS管理界面:

访问YARN管理界面:

4. 运行实例

搭建完成之后,我们运行一个Mapreduce作业感受一下:

hadoop jar /home/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar pi 5 10

启动之后发现总是卡住:

管理界面的状态也一直处于Accepted,没有任何变化:

折腾了很久,总算找到原因,是因为hostname配置与/etc/hosts中的配置不一样,/etc/hosts中master的配置如下:

192.168.1.130 master

master机器上使用hostname查,显示为brandon130。先使用hostname命令临时修改一下主机名:

hostname master

其他两台slave对应修改。

然后重新提交pi运算作业,总算成功:

从进度日志可以看到map和reduce作业是可以一定程度上并行的:

查看YARN管理界面:

大功告成。

5. 常见问题及其他

1) 防火墙

请确保集群机器的防火墙都关闭,否则可能会出现各种莫名的问题,需要你自己去看日志排查原因。关闭防火墙方法如下:

临时生效,重启后复原:

service iptables start // 开启
service iptables stop  // 关闭

永久性生效,重启后不会复原

chkconfig iptables on // 开启
chkconfig iptables off // 关闭

2) 主机名配置

前面提到的主机名修改是临时的,重启机器之后会恢复原来的样子,要永久修改主机名,需要对应修改/etc/sysconfig/network文件,如下图,将HOSTNAME改成对应的master,其他两台对应slave1,slave2。

(完)

时间: 2024-10-06 07:25:43

Hadoop集群搭建详细步骤(2.6.0)的相关文章

redis3.0.2 分布式集群安装详细步骤

redis3.0.2 分布式集群安装详细步骤 --(centos5.8 X64系统) 版本历史 时间 版本 说明 编写者 2015-06-5 1.0 redis3.0.2 分布式集群安装详细步骤 csc 一: redis cluster介绍篇 1:redis cluster的现状 目前redis支持的cluster特性(已亲测): 1):节点自动发现 2):slave->master 选举,集群容错 3):Hot resharding:在线分片 4):进群管理:cluster xxx 5):基于

Solr集群搭建详细教程(二)

注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人[email protected]. 之前步骤:Solr集群搭建详细教程(一) 三.solr集群搭建 注意,在搭建solr集群前,建议最好有一个solr服务是已经搭建好的,可以简化大量重复的配置操作. 单机solr服务搭建过程参看我的这篇文章: Solr服务在Linux上的搭建详细教程 这个单机solr服务在solr集群搭建第二步和第三步里需要,搭建好一个solr服务后,就可以进行集群搭建了. 第一步

hadoop 集群搭建-suse linux 11

好久都没写了啊.感觉自己都不像是一个搞技术都了.来个存货吧! hadoop 集群搭建 3台机器 suse 系统 规划 IP 主机名 hostname hadoop角色10.96.91.93 namenode93 NameNode.SecondaryNameNode .ResourceManage. DataNode .NodeManager10.96.91.129 datanode129 DataNode NodeManager10.96.91.130 datanode130 DataNode

三节点Hadoop集群搭建

1. 基础环境搭建 新建3个CentOS6.5操作系统的虚拟机,命名(可自定)为masternode.slavenode1和slavenode2.该过程参考上一篇博文CentOS6.5安装配置详解 2.Hadoop集群搭建(以下操作中三个节点相同的地方就只给出主节点的截图,不同的才给出所有节点的截图)   2.1 系统时间同步 使用date命令查看当前系统时间 系统时间同步 [[email protected] ~]# cd /usr/share/zoneinfo/ [[email protec

Hadoop集群搭建步骤

实验性操作是在虚拟机里进行的,除了搭建hadoop本身的操作之外,遇到的其它问题总结如下: 1. 虚拟机挂载windows磁盘: 添加硬件,要保证该硬件此时没有被读写访问等,因为挂载后,该磁盘在宿主机上就不能用了.启动虚拟机linux,执行 fdisk –l 查看windows磁盘的分区,如/dev/sdb2,然后执行挂载命令: mount /dev/sdb2 /mnt/win/ 然后就可以到/mnt/win目录下访问磁盘上的内容了 2. hadoop启动时如果报错,提示JAVA_HOME is

Hadoop集群搭建文档

  环境: Win7系统装虚拟机虚拟机VMware-workstation-full-9.0.0-812388.exe Linux系统Ubuntu12.0.4 JDK                jdk-7u17-linux-i586.tar.gz 搭建步骤: 首先在win系统装虚拟机,执行VMware-workstation-full-9.0.0-812388.exe: 其次需要在虚拟机上装Ubuntu12.0.4: 安装完成Ubuntu12.0.4之后,需要安装JDK,(注意:安装JDK需

Hadoop集群搭建配置文件汇总

核心内容: 1.Hadoop1.1.2伪分布(或集群)搭建核心配置文件 2.Hadoop2.4.1伪分布(或集群无HA)搭建核心配置文件 3.Hadoop2.4.1 + HA 集群搭建核心配置文件 1.Hadoop1.1.2伪分布(或集群)搭建核心配置文件 hadoop1.1.2伪分布(集群)搭建 前期准备(略) 安装hadoop1.1.2 1.解压缩 2.修改配置文件 ----------------------core-site.xml--------------------- <prope

Redis 集群搭建详细指南

先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司!为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛,「大」总有大的好.当然,如果你要有能力找一个胸大个子高就更完美了. Redis 集群简介 Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存.Redis 在3.0版本前只支持单实例模式,虽然支持主从模式.哨兵模式部署来解决单点故障,但是现在互

Hadoop学习之路(四)Hadoop集群搭建和简单应用

概念了解 主从结构:在一个集群中,会有部分节点充当主服务器的角色,其他服务器都是从服务器的角色,当前这种架构模式叫做主从结构. 主从结构分类: 1.一主多从 2.多主多从 Hadoop中的HDFS和YARN都是主从结构,主从结构中的主节点和从节点有多重概念方式: 1.主节点 从节点 2.master slave 3.管理者 工作者 4.leader follower Hadoop集群中各个角色的名称: 服务 主节点 从节点 HDFS NameNode DataNode YARN Resource