Hadoop伪分布式环境搭建

1、环境介绍

  linux系统:CentOS 7.0 (64位)
  内存:4G
  Hadoop版本:2.7.0 (仅供学习使用,暂不建议生产使用)
  面向人群:Hadoop初学者

2、Hadoop介绍

  http://hadoop.apache.org/docs/r2.7.1/

3、Hadoop基础环境搭建

3.1 、修改主机名:

在etc/sysconfig/network文件中,找到HOSTNAME参数,并将参数值为相应的主机名称,例如:hadoop01。

$vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME= hadoop01

3.2、设置静态ip:

编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,先注释掉该文件中的其他参数项,然后在文件的最后添加一下内容:

$vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:0c:29:48:35:64
IPADDR=192.168.10.9
NETMASK=255.255.255.0
GATEWAY=192.168.10.1

为了让修改的参数立即生效,需要使用重启网卡:
先关闭:

$ /sbin/ifdown eth0

再启动:

$/sbin/ifup eth0

3.3、设置ip映射关系:

编辑/etc/hosts文件,添加IP地址映射主机名关系,在文件最后添加如下的信息:

$ vi /etc/hosts
192.168.10.1 hadoop01

3.4、安装JDK

目前基于JVM开发的应用程序都需要JDK编译环境和JRE运行环境。因此,将Java JDK作为基础软件安装。首先需要在/user目录下,创建JDK创建安装目录,执行命令:

$mkdir java

本次安装采用的JDK的二进制文件,安装步骤非常简单,只需要复制到/user/java目录,执行解压操完成了JDK的安装。

$cp jdk-6u45-linux-x64.bin /user/java
$cd /user/java
$chmod +x jdk-6u45-linux-x64.bin
$./ jdk-6u45-linux-x64.bin

配置JDK环境变量,在/etc/profile文件的最后,添加JDK环境变量内容:

$vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.6.0_45
export CLASSPATH=$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH

(注意:如果操作系统已经自带了JRE环境,为了使用新的JRE环境,需要将 JAVAHOME/bin PATH前面)

执行source命令,使得JDK环境变量立即生效:

$source /etc/profile

3.5、创建用户

为了便于管理用户,先创建hadoop用户组,然后创建hadoop用户隶属hadoop组。

$groupadd hadoop
$useradd -g hadoop hadoop

创建完hadoop用户后,还需要修改hadoop用户的密码,执行passwd hadoop命令,并输入密码:

$passwd hadoop

为了规范Hadoop安装流程,需要在根目录下创建两个目录,并授权给hadoop用户,分别用于安装Hadoop软件和存储Hadoop数据:
1)创建Hadoop软件安装目录:

$mkdir /hadoop
$chown -R hadoop:hadoop /hadoop 

2)创建Hadoop数据存储目录:

$mkdir /data
$chown -R hadoop:hadoop /data

以上,所有的步骤都是使用root用户执行。接下来的步骤就需要使用刚才创建的hadoop用户进行执行。

4、Hadoop伪分布式安装配置

Hadoop需要通过SSH来启动Slave列表中主机的Hadoop守护进程,对于伪分布式,Hadoop会采用与集群相同的处理方式,即依次启动/etc/hadoop/savle文件中配置的主机进程,只不过是在伪分布式中Slave为localhost,即Master和Slave为同一台机器。下面的所有操作都在hadoop用户下执行。

4.1、配置SSH免密码登录:

使用hadoop用户登陆到CentOS 7.0,并在hadoop用户的home目录下执行以下命令:

$ssh-keygen  -t  dsa  -P  ''  -f  ~/.ssh/id_dsa

(注解:ssh-keygen表示生成密钥;-t指定密钥类型;-P 提供密语;-f生成的密钥文件)
其中:~表示当前目录,此处为/home/hadoop,”单引号之间没有空格。执行命令后,会在在/home/hadoop目录下创建.ssh目录,并在.ssh目录下生成id_dsa及id_dsa.pub 文件。这是SSH的一对私钥和公钥。

把id_dsa.pub(公钥)追加到授权的key中,并修改key的权限

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

验证是否可以免密码登陆,第一次可能需要输入密码:

[hadoop@master .ssh]$ ssh localhost
Last login: Sat Dec 20 14:53:48 2014 from 192.168.10.1

出现这样的信息,表示SSH配置成功。

4.2、Hadoop伪分布配置:

Hadoop的伪分布式安装过程非常简单,只需要将Hadoop安装包解压到指定的目录就可以了,接下来对Hadoop的主要配置文件进行配置。

将Hadoop安装包解压到/hadoop 目录下:

$tar –zxvf hadoop-2.7.0.tar.gz -C /hadoop

然后针对/hadoop/hadoop-2.7.0/etc/hadoop目录下几个主要文件进行配置:
hadoop-env.sh、yarn-env.sh 、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves

4.2.1、配置hadoop-env.sh

编辑hadoop-env.sh,找到JAVA_HOME指定JDK的安装配置

$vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_45

4.2.2、配置yarn-env.sh

编辑yarn-env.sh,找到JAVA_HOME指定JDK的安装配置

$vi yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_45

4.2.3、配置core-site.xml

$vi core-site.xml

<configuration>
    <property> 
        <name>fs.defaultFS</name>
         <!--hadoop01为主机名-->
        <value>hdfs://hadoop01:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
       <value>file:/data/hadoop/tmp</value>
        <description>Abase for othertemporary directories.</description>
    </property>
</configuration>

4.2.4、配置hdfs-site.xml

Hadoop中的HDFS配置,主要配置备份方式,及NameNode、DataNode、NameSecondary存储地址。
$vi hdfs-site.xml

<configuration>
    <property>
       <name>dfs.replication</name>
       <value>1</value>
    </property>
    <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:/data/hadoop/dfs/name</value>
    </property>
    <property>
       <name>dfs.datanode.data.dir</name>
       <value>file:/data/hadoop/dfs/data</value>
    </property>
     <property>
       <name>dfs.namenode.checkpoint.dir</name>
       <value>file:/data/hadoop/dfs/namesecondary</value>
    </property>   
</configuration>

4.2.5、配置mapred-site.xml

Hadoop的MapReduce框架配置,配置MapReduce框架名称
$vi mapred-site.xml

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>yarn.app.mapreduce.am.staging-dir</name>
                <value>/tmp/hadoop-yarn/staging</value>
        </property>
</configuration>

4.2.6、配置yarn-site.xml

$vi yarn-site.xml

<configuration>
    <property> 
       <name>yarn.nodemanager.aux-services</name> 
       <value>mapreduce_shuffle</value> 
    </property> 
    <property> 
       <name>yarn.resourcemanager.hostname</name> 
        <value>hadoop01</value> 
    </property> 
</configuration>

4.2.7、配置slaves节点列表

对于伪分布式安装,可以不用修改该文件,采用默认配置,即可。

$vi slaves
localhost

(注解:slaves节点配置列表,默认:localhost)

4.2.8、配置Hadoop环境变量

这是一个可选步骤,为了方便执行Hadoop命令,可以在hadoop用户的环境变量中添加Hadoop环境变量。切换到hadoop用户的home目录,编辑.bash_profile文件,添加以下内容:
$vi .bash_profile

export  HADOOP_HOME=/hadoop/hadoop-2.7.0
export  HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export  PATH=$HADOOP_HOME/bin:$PATH

使用source命令,使其立即生效:source .bash_profile,到此,整个Hadoop伪分布式安装完毕,接下来就可以格式HDFS文件系统,并启动Hadoop系统。

4.3、格式化hdfs文件系统

在启动Hadoop系统之前,需要格式化Hadoop的HDFS文件系统。注意,只有首次启动Hadoop系统时,才需要格式化HDFS文件系统,执行hdfs命令格式HDFS文件系统:

$hdfs namenode –format

出现以下信息,说明格式化HDFS文件系统成功:

14/12/21 14:25:34 INFO util.ExitUtil: Exiting with status 0
14/12/21 14:25:34 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop01/192.168.10.1
************************************************************/

4.4、启动Hadoop系统

Hadoop安装目录的sbin目录下,封装了启动Hadoop系统的脚本。那么就进入安装Hadoop安装目录的sbin目录,启动Hadoop,验证是否安装成功!

4.4.1、启动HDFS文件系统:

$ cd /hadoop/hadoop-2.7.0/sbin/ 
$ ./start-dfs.sh

如果没报任何错误,则使用java的jps命令,查看HDFS文件系统是否启动成功!

$ jps
6649 DataNode
6876 SecondaryNameNode
7049 Jps
6504 NameNode

4.4.2、启动YARN资源管理器

$ cd /hadoop/hadoop-2.7.0/sbin/ 
$ ./start-yarn.sh

如果没报任何错误,则使用java的jps命令,查看YARN资源管理器是否启动成功!

$ jps
7230 NodeManager
6649 DataNode
6876 SecondaryNameNode
7303 Jps
6504 NameNode
7108 ResourceManager

细心的朋友可能已经发现多了一个ResourceManager进程。
这时,打开浏览器,输入:
http://192.168.10.9:50070/
如果能够查看信息说明Hadoop安装成功了

也可以使用./start-all.sh脚本启动Hadoop系统,start-all.sh脚本封装了start-dfs.sh脚本和start-yarn.sh脚本。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值