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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值