您的位置:首页 > 运维架构 > Linux

Linux环境Hadoop2.8.0搭建(单机模式-伪分布式模式)

2017-04-17 16:36 489 查看
Hadoop是分为3种安装模式的,单机模式,伪分布模式和完全分布模式。众所周知,完全分布模式是企业真实开发用的,大型的系统可能需要成千上万台电脑。没有条件的话,可以搭建单机模式或者伪分布模式。本文主要是讲解怎么应用Hadoop2.8.0搭建单机模式和伪分布模式Hadoop。

1.单机模式

 

  □ 所需软件

    - RHEL 6.8

    - JRE 1.8

    - Hadoop 2.8.0

  □ 安装软件

    - RHEL 6.8安装

    - JRE 1.8

      $ rpm -ivh jre-8-linux-i586.rpm

    - Hadoop 2.8.0

      $ tar -xzf hadoop-2.8.0.tar.gz -C /usr

  □ 修改下主机名为master,修改hosts中的主机名,重启系统

     $ sudo vi /etc/sysconfig/network

     $ sudo vi /etc/hosts

  □ Hadoop配置

    - /etc/profile添加,然后执行source /etc/profile使其有效。

    $ export JAVA_HOME=/usr/java/jre1.8.0

        $ export HADOOP_HOME=/usr/hadoop-2.8.0

        $ export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

        $ export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

    - 编辑 hadoop-env.sh,yarn-env.sh,mapred-env.sh文件,将JAVA_HOME设置为Java安装根路径

        $ export JAVA_HOME=/usr/java/jre1.8.0

    -运行$ bin/hadoop命令

  □ Hadoop Sample运行

    $ mkdir input

    $ cp etc/hadoop/*.xml input

    $ bin/hadoop jar /文件路径/hadoop-mapreduce-examples-2.8.0.jar wordcount input output

    $ cat output/*

2.伪分布式模式

  □ 前四步和单机模式一样

  □ 修改/usr/hadoop-2.8.0/etc/hadoop/中,配置文件 core-site.xml。

    <configuration>

            <property>

                 <name>hadoop.tmp.dir</name>

                 <value>file:/usr/hadoop-2.8.0/tmp</value>

                 <description>Abase for other temporary directories.</description>

            </property>

            <property>

                 <name>fs.defaultFS</name>

                 <value>hdfs://localhost:9000</value>

            </property>

    </configuration>

   

       ★Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果

         需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。

         此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),

         不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个

         目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,

         同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

  □ 修改/usr/hadoop-2.8.0/etc/hadoop/中,配置文件 hdfs-site.xml 。

    <configuration>

            <property>

                 <name>dfs.replication</name>

                 <value>1</value>

            </property>

            <property>

                 <name>dfs.namenode.name.dir</name>

                 <value>file:/usr/hadoop-2.8.0/tmp/dfs/name</value>

            </property>

            <property>

                 <name>dfs.datanode.data.dir</name>

                 <value>file:/usr/hadoop-2.8.0/tmp/dfs/data</value>

            </property>

    </configuration>

  □ 修改/usr/hadoop-2.8.0/etc/hadoop/中,配置文件 mapred-site.xml 。

    <configuration>

            <property>

                 <name>mapreduce.framework.name</name>

                 <value>yarn</value>

            </property>

    </configuration>

  □ 修改/usr/hadoop-2.8.0/etc/hadoop/中,配置文件 yarn-site.xml 。

    <configuration>

            <property>

                 <name>yarn.resourcemanager.hostname</name>

                 <value>hostname</value>

            </property>

            <property>

                 <name>yarn.nodemanager.aux-services</name>

                 <value>mapreduce_shuffle</value>

            </property>

    </configuration>

  □ 免密码ssh设置

     - 现在确认能否不输入口令就用ssh登录localhost:

       $ ssh localhost

     - 如果不输入口令就无法用ssh登陆localhost,执行下面的命令:

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

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

 

  □ 配置完成后,执行 NameNode 的格式化:

     $./bin/hdfs namenode -format

     ★成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,

       若为 “Exitting with status 1” 则是出错。

  □ 启动Hadoop守护进程:

     $ sbin/start-all.sh

     ★查看运行情况hadoop dfsadmin -report或者用jsp命令查看

□ Hadoop Sample运行

     - 创建输入HDFS系统的目录:

       $ bin/hadoop fs -mkdir -p /user/data/input

       ★1.使用-p参数可以创建路径中的各级父目录

       ★2.lib/native下的libhadoop.so.1.0.0如果和OS不匹配的话,下面的命令会报错(unable to load native-library)

         查看libhadoop.so.1.0.0文件的版本可以用命令【$file libhadoop.so.1.0.0】,也可以用【$hadoop checknative -a】

         命令来检查native状态。

     - 将输入文件拷贝到分布式文件系统:

       $ bin/hadoop fs -put <localfile path> /user/data/input

       ★这里有可能会报could only be replicated to 0 nodes, instead of 1 错误

         这个问题主要原因是

         1、节点通信 包括域名解析 ssh免密 关闭防火墙

         2、nameNode格式化不完全 比如之前格式化过 最好先删除tmp和data目录再格式化

     - 运行发行版提供的示例程序:

       $ bin/hadoop jar /文件路径/hadoop-mapreduce-examples-2.8.0.jar wordcount /user/data/input /user/data/output

     - 查看输出文件:

       - 将输出文件从分布式文件系统拷贝到本地文件系统查看:

         $ bin/hadoop fs -get /user/data/output ./output

         $ cat output/*

       - 或者在分布式文件系统上查看输出文件:

         $ bin/hadoop fs -cat /user/data/output/*

□ 完成全部操作后,停止守护进程:

     $ sbin/stop-all.sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop 分布式 linux
相关文章推荐