美文网首页我爱编程
Hadoop入门学习之(一):Hadoop单机安装

Hadoop入门学习之(一):Hadoop单机安装

作者: staconfree | 来源:发表于2017-11-28 16:29 被阅读107次

    1、前期准备

    1.1、新建一个用户

    $ su 
       password: 
    # useradd hadoop 
    # passwd hadoop 
       New passwd: 
       Retype new passwd 
    

    1.2、SSH设置和密钥生成

    $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    $ chmod 600 ~/.ssh/authorized_keys
    

    1.3、下载jdk和hadoop
    都是解压然后设置环境变量就可以。这里不做详细说明,本文使用的jdk版本是jdk1.8.0_111,hadoop版本是Hadoop 2.8.1
    修改 ~/.bashrc

    export JAVA_HOME=/usr/local/jdk1.8.0_111
    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export YARN_HOME=$HADOOP_HOME
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export HADOOP_INSTALL=$HADOOP_HOME
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
    

    修改后执行 source ~/.bashrc
    然后分别查看 java -version 和hadoop version,确认能正常显示版本信息。

    1.4、修改hosts
    vi /etc/hosts 增加如下语句,其中roy为主机名
    127.0.0.1 roy

    1.5、创建默认日志文件夹,并赋值权限给hadoop用户
    mkdir /usr/local/hadoop/logs
    chown hadoop:hadoop /usr/local/hadoop/logs

    2、单机部署

    Hadoop部署方式分三种,Standalone mode、Pseudo-Distributed mode、Cluster mode,其中前两种都是在单机部署。
    2.1、tandalone mode(本地单独模式)
    这种模式,仅1个节点运行1个java进程,主要用于调试。这里不做具体介绍
    hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar
    有时候会碰到这个错误
    解决 Unable to load native-hadoop library for your platform

    2.2、pseudo-distributed mode(伪分布模式)
    这种模式是,1个节点上运行,HDFS daemon的 NameNode 和 DataNode、YARN daemon的 ResourceManger 和 NodeManager,分别启动单独的java进程,主要用于调试。

    • 2.2.1、修改$HADOOP_HOME/etc/hadoop/里面的配置文件
      core-site.xml
    <configuration>
       <property>
          <name>fs.default.name </name>
          <value>hdfs://localhost:9000</value> 
       </property>
    </configuration>
    

    hdfs-site.xml

    <configuration>
       <property>
          <name>dfs.replication</name>
          <value>1</value>
       </property>
    </configuration>
    
    • 2.2.2、到$HADOOP_HOME/sbin/下启动dfs,依次运行以下语句
      • rm -rf /tmp/hadoop-hadoop/

      • hdfs namenode -format

        出现如下信息代表format成功: image.png
      • sh start-dfs.sh

      • jps
        查看可以看到如下信息:

    [hadoop@roy sbin]$ jps
    15333 DataNode
    15613 Jps
    15198 NameNode
    15502 SecondaryNameNode
    
    • 2.2.3、访问NameNode的web页面
      http://localhost:50070/

      image.png
    • 2.2.4、重启dfs
      sh stop-dfs.sh
      hdfs namenode -format
      sh start-dfs.sh
      重启后,jps命令查看可能会发现没有DataNode的情况,需要删除dfs.data的临时目录/tmp/hadoop-${user}/ ,再重启。

    • 2.2.5、测试dfs
      依次执行如下语句

    #创建文件夹
    hdfs dfs -mkdir /user /user/test /user/test/input
    #上传本地文件到hdfs
    hdfs dfs -put $HADOOP_HOME/*.txt /user/test/input
    #查看input文件
    hadoop fs -ls /user/test/input
    #删除output文件夹,如果output存在的话,测试wordcount会报错:Output directory hdfs://localhost:9000/user/hadoop/output already exists
    hdfs dfs -rm -r output
    #执行wordcount脚本
    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar wordcount /user/test/input output
    #显示执行结果
    hdfs dfs -cat output/*
    #内容太长,可以拷贝到本地查看
    hdfs dfs -get output /home/hadoop/output
    
    也可以通过web界面查看数据 image.png
    • 2.2.6、执行YARN job
      MapReduce V2框架叫YARN
    • 2.2.6.1、修改配置文件mapred-site.xml,yarn-site.xml
    # cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
    # vi etc/hadoop/mapred-site.xml
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    
    # vi etc/hadoop/yarn-site.xml
    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    </configuration>
    
    • 2.2.6.2、启动
      sbin/start-yarn.sh
    • 2.2.6.3、jsp确认,多出NodeManager和ResourceManager
    $ jps
    5185 Jps
    2785 ResourceManager
    1778 NameNode
    2082 SecondaryNameNode
    1913 DataNode
    2891 NodeManager
    

    参考资料
    Hadoop环境安装设置
    Hadoop系列之(一):Hadoop单机部署

    相关文章

      网友评论

        本文标题:Hadoop入门学习之(一):Hadoop单机安装

        本文链接:https://www.haomeiwen.com/subject/sffebxtx.html