[整理]Centos6.5 + hadoop2.6.4环境搭建

搭建Hadoop集群环境(3台机器)

1 准备环境

1.1 安装系统,并配置网络使3台机器互联互通,且SSH可直连(无需密码、保存私钥)

1.1.1 安装系统

安装Centos 6.5系统

安装过程略

1.1.2 配置网络

设置三台机器的iP分别为


IP


主机名称


10.132.41.116


Hadoop.slave2


10.132.41.117


Hadoop.slave1


10.132.41.118


Hadoop.master

修改计算机名称

Vi /etc/sysconfig/network

以上修改需要重启生效。可同时立即生效,增加执行以下命令:

Sudo hostname hadoop.slave1

1.1.3 SSH配置

a).首先在hadoop.master机器上用root(hadoop用户)登录,先生成ssh密钥文件,执行

ssh-keygen -t rsa

过程中,回车3次,提示以下内容表示成功

查看公钥文件是否生成:/home/hadoop/.ssh

b).执行命令将密钥文件共享给其他机器

ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub [email protected]10.132.41.117

第一次执行需要输入hadoop的密码。

输出一下内容表示执行成功。

c).执行命令测试是否建立互信成功

使用ssh直接连接服务器,确认是否免密码登录。

ssh 10.132.41.117

登录后输入任意命令确认是否登录成功。

w

1.2 安装JDK,并配置环境变量

1.2.1 安装JDK

先执行rpm查询命令确认是否已安装了JDK其他版本

rpm –qa | grep jdk

返回不为空,且版本不对可执行以下命令,将当前版本卸载掉

rpm –c 软件包名称

下载JDK文件并上传到服务器(rpm),执行

rpm –ivh 软件包名称

1.2.2 配置环境变量

使用vi进入/etc/profile文件,在最后追加以下内容:

# set java environment
export JAVA_HOME=/usr/java/jdk1.6.0_31

# export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

之后执行以下命令,重启配置文件。

source /etc/profile

1.2.3 测试环境

执行命令确认安装是否正常。

[[email protected] hadoop]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

2 安装Hadoop

需要将所有的机器(master和slave)都需要安装hadoop,操作都一样,下面以master为示例。

2.1 下载

登录hadoop官网,下载对应版本。本示例使用了最新版2.6.4版本。

http://hadoop.apache.org/releases.html

下载后的文件hadoop-2.6.4.tar.gz,使用SFTP工具上传到hadoop.master机器上。

2.2 安装

用root用户登录hadoop.master机器,将上传上来的hadoop-2.6.4.tar.gz文件拷贝至/usr下。

执行“tar zxf hadoop-2.6.4.tar.gz hadoop”,将hadoop解压到/usr/hadoop目录下。

执行以下命令,将hadoop文件夹的归属用户和组修改到hadoop用户下。

chown –R hadoop:dadoop hadoop

配置后如下:

2.3 配置环境变量

使用vi进入/etc/profile文件,在最后追加以下内容:

# set hadoop environment
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$ HADOOP _HOME/bin

之后执行以下命令,重启配置文件。

source /etc/profile

执行以下命令,确认配置生效。

[[email protected] hadoop]# hadoop version
Hadoop 2.6.4
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 5082c73637530b0b7e115f9625ed7fac69f937e6
Compiled by jenkins on 2016-02-12T09:45Z
Compiled with protoc 2.5.0
From source with checksum 8dee2286ecdbbbc930a6c87b65cbc010
This command was run using /usr/hadoop/share/hadoop/common/hadoop-common-2.6.4.jar

3 配置Hadoop

3.1 配置master

Hadoop涉及3个配置文件etc/hadoop/core-site.xml,etc/hadoop/hdfs-site.xml,etc/hadoop/mared-site.xml文件。

注:

以下配置中的hadoop.master均可以使用masterip来替代。

所有的配置文件在2.x已经调整到$HADOOP_HOME/etc/hadoop下。

默认不存在“mapred-site.xml”文件,需要复制mapred-site.xml.template

3.1.1 配置core-site.xml

<configuration>

  <property>
    <name>fs.default.name</name>
    <value>hdfs://hadoop.master:9000</value>
    <final>true</final>
  </property>

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/hadoop/tmp</value>
    </property>

    <property>
        <name>ds.default.name</name>
        <value>hdfs://hadoop.master:54310</value>
        <final>true</final>
    </property>
</configuration>

3.1.2 配置hdfs-site.xml

<configuration>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/hadoop/dfs/name</value>
    <final>true</final>
  </property>

  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/hadoop/dfs/data</value>
    <final>true</final>
  </property>

  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
</configuration>

3.1.3 配置mapred-site.xml

<configuration>
   <property>
       <name>mapreduce.framework.name</name>
        <value>yarn</value>
   </property>
   <property>
       <name>mapreduce.jobhistory.address</name>
        <value>hadoop.master:10020</value>
   </property>
   <property>
       <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop.master:19888</value>
   </property>
</configuration>

3.1.4 配置yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
  <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>

  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop.master</value>
  </property>

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

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

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

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

  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>hadoop.master:8088</value>
  </property>
</configuration>

3.1.5 配置masters和slaves文件

分别将master的信息和所有slave机器的信息写入到masters和slaves文件中。

注:slaves文件中的数量必须大于hdfs-site.xml文件中的“dfs.replication”配置,否则namenode无法启动。

另外,masters是根据网上教程手动生成的,然后配置貌似没起到作用。

3.2 配置slave

配置slave有2种方式:1.将hadoop的安装包上传到slave机器重新配置;2.将master上的配置复制到slave机器上。本示例采用了第2种方法,即全盘复制master上的配置。

3.2.1 安装JDK和配置环境变量

操作同master,此处略。

3.2.2 配置hosts

操作同master,此处略。

3.2.3 复制master上的hadoop

首先用hadoop用户(ssh已互信)执行以下命令,将hadoop复制到slave机器上。

scp /usr/hadoop [email protected]:/home/hadoop

用root用户登录hadoop.slave1,并执行以下命令,将hadoop移至/usr目录下。

mv /home/hadoop/hadoop /usr/

修改hadoop的拥有着。

chown –R hadoop:hadoop hadoop

注:需要在环境配置时添加好hadoop用户及用户组。

3.3 关闭防火墙

[[email protected] ~]$ su root
Password:
[[email protected] hadoop]# service iptables stop
[[email protected] hadoop]# chkconfig iptables off

4 启动和验证

4.1 初始化Namenode

在Master上用hadoop用户,执行以下命令初始化Namenode。

hadoop namenode -format

注:第2次以后初始化,过程中会提示是否删除已初始化内容,输入Y即可。

4.2 启动集群

4.3 验证

4.3.1 Master验证Namenode启动

在Master上用hadoop用户执行jps,显示以下内容,即启动成功。

如果缺少进程,可以到“$HADOOP_HOME/logs”下查看日志,确认启动失败的原因。

4.3.2 Slave验证Datanode启动

在Slave上分别用hadoop用户执行jps,显示以下内容,即启动成功。

如果缺少进程,可以到“$HADOOP_HOME/logs”下查看日志,确认启动失败的原因。

注:2.X以后没有JobtrackerTasktracker进程了。

5 问题FAQ

5.1 启动时报“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable”

【问题现象】:启动时出现警告“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable”

【问题分析】:通过错误提示得知,部分文件由32位平台编译,本机是64位centos,因此报错。

【解决措施】:通过网友提供的一个编译文件,下载并替换$HADOOP_HOME/lib/native目录下文件,即可解决此警告。

博客地址:http://www.secdoctor.com/html/yyjs/31101.html

文件的下载地址:http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.6.0.tar

5.2 Master报“”,Namenode启动失败

【问题现象】:通过执行jps,发现master上没有namenode进程,查看log日志发现,有以下错误

FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.

java.net.BindException: Problem binding to [hadoop.master:9000] java.net.BindException: Cannot assign requested address; For more details see: http://wiki.apache.org/hadoop/BindException

【问题分析】:由于申请的云虚拟机,外部连接的IP为10开头的大网IP,通过ifconfig查看本机IP发现并非多网卡,而是做了IP映射,即配置的IP在本地无法访问到,导致JVM出现BindException。

【解决措施】:通过使用虚拟机本机IP(172开头)在集群中的所有机器中相互ping,如果都能ping通,则可以直接使用本机IP做配置(本例即是)。修改/etc/hosts文件中的hostname映射IP并复制到集群中所有的机器,ssh互信重做,在master上重新格式化namenode后启动即可。

5.3 Slave报“All specified directories are failed to load.”,Datanode启动失败

【问题现象】:通过执行jps,发现slave上没有datanode进程,查看log日志发现,有以下错误信息:

WARN org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException: Incompatible clusterIDs in /usr/hadoop/dfs/data: namenode clusterID = CID-1a1fabff-166c-4c0a-9bd3-b726f217cc87; datanode clusterID = CID-65c03263-c30a-4592-8019-f6b356061418

2016-03-28 17:07:09,416 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to hadoop.master/172.16.0.111:9000. Exiting.

java.io.IOException: All specified directories are failed to load.

【问题分析】:由于变动了IP和重新初始化namenode,master的clusterID已经变化,slave连接master失败。需要更新clusterID为最新的值即可。

【解决措施】:修改data/current目录下的VERSION文件中clusterID为namenode的ID,并重启。

注:data目录的配置在hdfs-site.xml文件中的“dfs.datanode.data.dir”配置项。

6 附件

6.1 本示例中的配置文件

时间: 2024-10-04 17:43:51

[整理]Centos6.5 + hadoop2.6.4环境搭建的相关文章

CENTOS6.4上KVM虚拟机环境搭建

关键词: KVM,虚拟机,windows7, VNC, 桥接网络,br0, SCSI, IDE 环境: host: CENTOS6.4 guest: windows 7 sp1 主要步骤: 安装软件包 配置桥接网络 配置VNC 安装虚拟机 1.安装软件包 yum install qemu-kvm yum install libvirt   yum install libvirt-python 其实CENTOS6.4上已经安装了这三个软件包,不用再装了. rpm -qa | grep qumu-k

Ubuntu16.04+hadoop2.7.3环境搭建

转载请注明源出处:http://www.cnblogs.com/lighten/p/6106891.html 最近开始学习大数据相关的知识,最著名的就是开源的hadoop平台了.这里记录一下目前最新版的hadoop在Ubuntu系统下的搭建过程.搭建过程中发现一篇十分清晰全面的搭建文章,本文删减了一些不重要的内容,细化了一些内容.可以点击此处查看:原文. 1.JDK的安装 hadoop是使用Java开发的一个大数据平台,自然少不了Java运行环境的安装了,当然使用hadoop不一定需要java语

VMware 安装centOS6.4虚拟机以及基础环境搭建

一个空的虚拟机就完成了 但这个虚拟机现在还是一个空壳,我们需要导入准备好的系统文件 确定,后 跳过检测 设置主机名,并配置网卡 勾选开机启动网卡 选择时区 设置密码 写入到磁盘 选择桌面版,下一步 接下来等大概十分钟,重启进入系统 不用设置用户,下一步 往下走没什么说的了,最后整个系统算是完成了 接下来是基础环境的搭建 192.168.138.131是ip地址   Bcast是广播地址   Mask是子网掩码 1.IP地址 此时网络是可以使用的 上面 ip是192.168.138.131是属于1

Centos6.5和Centos7 php环境搭建如何实现呢

首先我们先查看下centos的版本信息 代码如下: #适用于所有的linux lsb_release -a#或者cat /etc/redhat-release#又或者rpm -q centos-release 以上三种任意一种均可查看centos的版本信息. 这里我们分别在centos6.5和centos7上进行安装,安装过程中也仅仅是部分linux命令不同而已,为了方便起见,采用yum的方式进行安装,当然,如此一来安装的软件版本可能就会因为yum源的问题而不同,如果你想安装指定版本,我们后面也

hadoop2.6.0环境搭建

官网2.6.0的安装教程:http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html 安装虚拟机(NAT,桥接,仅主机三种网络模式,vmwaretools,主机共享文件)系统安装(ifconfig,环境变量,hosts,hostname,ssh无密码登陆) jdk安装(环境变量) hadoop(hadoop-env.sh,mapred-env.sh,  mapred-site.

Hadoop2.6环境搭建

Hadoop-2.6.0环境搭建 所需资源:hadoop-2.6.0.tar.gz  Hadoop-2.6.0-src.tar.gz   jdk-8u40-linux-i586.tar.gz 第一步:先安装配置JDK(如果事先有配置好JDK,这步可以略过) sudo mkdir /usr/lib/jvm sudo tar zxvf jdk-8u40-linux-i586.tar.gz –C /usr/lib/jvm 修改环境变量(如果没安装vim,可先安装:sudo apt-get instal

rsyslog+mysql+loganalyzer 环境搭建日志服务器

环境:CentOS6.6 rsyslog+mysql+loganalyzer 环境搭建日志服务器 Client端:    192.168.2.10 MySQL服务器:  192.168.2.11 # Client端安装必备的软件包 yum install rsyslog-mysql -y 生成了2个文件: /lib64/rsyslog/ommysql.so           #rsyslog支持数据库的模块文件 /usr/share/doc/rsyslog-mysql-5.8.10/creat

Mac系统下STF的环境搭建和运行

本文参考以下文章整理:MAC 下 STF 的环境搭建和运行 一. 前言 STF,全称是Smartphone Test Farm,WEB 端批量移动设备管理控制工具,就是可以用浏览器来批量控制你的移动设备,目前只支持Android设备. 二.环境搭建 1. 安装xcode和xcode 命令行工具 (安装Macport需要) Xcode:直接在App Store下载安装 Xcode Command Line Tools:在terminal中输入以下命令,然后在弹出的安装步骤中猛点下一步自动安装. 1

高效5步走,快速搭建Hadoop2伪分布环境

前两天将Hadoop2的完全分布式搭建文档整理发布于网上(http://blog.csdn.net/aaronhadoop/article/details/24859369),朋友相邀,就再将Hadoop2的伪分布式文档整理一下,搭建过Hadoop2完全分布式后,就笑对"伪分布式"说声 呵呵吧. 前期的jdk环境.SSH免密钥登录配置在此就不再赘述了,直接进入hadoop2的配置.本文Hadoop2配置文件路径:/usr/local/hadoop/etc/hadoop. 开启Hadoo