• Hadoop学习笔记(一)


    前言

    学习前准备工作

    • 下载JDK(jdk-8u211-linux-x64)
    • 下载hadoop(hadoop-3.1.2)
    • 找一台虚拟机(本教程基于阿里云低配版ECS)

    安装过程

    • jdk安装大家百度下,关键就是配置下环境变量
    # vim ~/.bashrc
    // 文件末尾添加如下内容
    export JAVA_HOME=/opt/app/jdk1.8.0_211
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    
    // 加载环境变量
    # source ~/.bashrc
    
    // 测试是否安装成功(显示如下内容安装成功)
    # java -version
    java version "1.8.0_211"
    Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
    
    
    • 安装hadoop
    // 参考文档:http://hadoop.apache.org/docs/r3.1.2/hadoop-project-dist/hadoop-common/SingleCluster.html
    // 下载安装包(如果链接不可用 可以在官网找到下载链接)
    # wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
    // 解压安装包
    # tar -zxvf hadoop-3.1.2.tar.gz
    # mv hadoop-3.1.2 /opt/app/
    # cd /opt/app/hadoop-3.1.2
    
    // 显示如下内容表示已经安装成功
    # ./bin/hadoop version
    Hadoop 3.1.2
    Source code repository https://github.com/apache/hadoop.git -r 1019dde65bcf12e05ef48ac71e84550d589e5d9a
    Compiled by sunilg on 2019-01-29T01:39Z
    Compiled with protoc 2.5.0
    
    // 初步安装完成
    

    配置

    hadoop 支持三种模式 介绍

    • Local (Standalone) Mode
      下载Hadoop在系统中,默认情况下之后,它会被配置在一个独立的模式,用于运行Java程序。
    • Pseudo-Distributed Mode
      这是在单台机器的分布式模拟。Hadoop守护每个进程,如 hdfs, yarn, MapReduce 等,都将作为一个独立的java程序运行。这种模式对开发非常有用。
    • Fully-Distributed Mode
      这种模式是完全分布式的最小两台或多台计算机的集群。

    Local (Standalone) Mode

    • 准备工作
    // 添加环境变量
    # Hadoop Environment Variables
    export HADOOP_HOME=/opt/app/hadoop-3.1.2
    export HADOOP_INSTALL=$HADOOP_HOME
    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 PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
    
    # hadoop version 
    // 显示如下内容
    Hadoop 3.1.2
    Source code repository https://github.com/apache/hadoop.git -r 1019dde65bcf12e05ef48ac71e84550d589e5d9a
    Compiled by sunilg on 2019-01-29T01:39Z
    Compiled with protoc 2.5.0
    From source with checksum 64b8bdd4ca6e77cce75a93eb09ab2a9
    
    // 即环境变量添加正常
    
    • 测试本地模式
    # cd /opt/app/hadoop-3.1.2
    # mkdir input
    # cp etc/hadoop/*.xml input/
    
    // 执行单机分析
    # bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar grep input output 'dfs[a-z.]+'
    
    // 查看结果文件
    # cat output/*
    // 输出结果
    1	dfsadmin
    
    • Pseudo-Distributed Operation

    伪分布式模式下在单节点上运行,其中每个Hadoop守护程序在单独的Java进程中运行。

    1. 配置文件修改
      etc/hadoop/core-site.xml:
     <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    

    etc/hadoop/hdfs-site.xml:

    <configuration>
       <property>
           <name>dfs.replication</name>
           <value>1</value>
       </property>
    </configuration>
    
    1. 设置免密码登录
    // 检查本地是否可以免密码登录
    # ssh localhost
    // 不可以登录则走下面的步骤
    # ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    # cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    # chmod 0600 ~/.ssh/authorized_keys
    
    // 再次测试完成会显示登录完成
    # ssh localhost
    
    
    1. 执行

    以下说明是在本地运行MapReduce作业

    准备工作不能少

    将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数 不然启动的时候会有各种报错

    HDFS_DATANODE_USER=root
    HADOOP_SECURE_DN_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root
    

    如以下这样的报错
    ERROR: Attempting to operate on hdfs namenode as root
    ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.

    // 1. 格式化文件系统
    # hdfs namenode -format
    // 2.启动NameNode DateNode
    # start-dfs.sh
    
    // 执行jps 命令 会显示以下内容 证明启动成功
    # jps
    25314 SecondaryNameNode
    24963 NameNode
    25444 Jps
    25092 DataNode
    
    // 3. 访问NameNode - http://localhost:9870/
    //  以上几步骤一般不会有什么问题
    

    至此完成hadoop 的安装。
    本人才疏学浅, 也在学习过程中,会持续更新该系列的文章。欢迎大家一起学习交流。

  • 相关阅读:
    bzoj2564: 集合的面积(闵可夫斯基和 凸包)
    省选前做题记录
    loj#2978. 「THUSCH 2017」杜老师(乱搞)
    loj#6437. 「PKUSC2018」PKUSC(计算几何)
    洛谷P4501/loj#2529 [ZJOI2018]胖(ST表+二分)
    loj#6436. 「PKUSC2018」神仙的游戏(NTT)
    洛谷P4459/loj#2511 [BJOI2018]双人猜数游戏(博弈论)
    洛谷P4458 /loj#2512.[BJOI2018]链上二次求和(线段树)
    洛谷P4457/loj#2513 [BJOI2018]治疗之雨(高斯消元+概率期望)
    loj#6435. 「PKUSC2018」星际穿越(倍增)
  • 原文地址:https://www.cnblogs.com/logy/p/11123874.html
Copyright © 2020-2023  润新知