Hadoop系列-Hadoop简介与运行环境搭建

作者: gengqing | 来源:发表于2019-07-08 21:32 被阅读2次

    hadoop简介

    hadoop主要是解决海量数据的存储和海量数据的分析计算问题,狭义上来说,hadoop最擅长做海量离线的日志分析;广义上来说,hadoop还是指一个更加广泛的概念--hadoop生态圈。

    hadoop 核心

    HDFS:分布式文件系统
    YARN:资源管理调度系统
    Mapreduce:分布式运算框架

    hadoop有三个发行版本:Apache、Cloudrea、Hortonworks。
    Apache 版本最原始(最基础)的版本,对于入门学习最好。
    Cloudera 在大型互联网企业中用的较多。
    Hortonworks 文档较好。

    选择hadoop的优势(4高)

    1. 高可靠性: Hadoop底层维护多个数据副本, 所以即使Hadoop某个计算元素或存储出现故障, 也不会导致数据的丢失。
    2. 高扩展性:在集群间分配任务数据, 可方便的扩展数以千计的节点。
    3. 高效性:在MapReduce的思想下, Hadoop是并行工作的, 以加快任务处理速度。
    4. 高容错性:能够自动将失败的任务重新分配。

    Hadoop1.x和Hadoop2.x区别

    image.png

    如图,在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度, 耦合性较大, 在Hadoop2.x时代, 增加了Yarn。 Yarn只负责资源的调度,MapReduce只负责运算。

    HDFS架构

    1. NameNode( nn) :存储文件的元数据, 如文件名, 文件目录结构, 文件属性( 生成时间、 副本数、文件权限) , 以及每个文件的块列表和块所在的DataNode等。


      image.png
      image.png
    2. DataNode(dn):在本地文件系统存储文件块数据, 以及块数据的校验和。


      image.png
      image.png

    (上面四幅图片是对NameNode和DataNode最形象的比喻,我们可以把NameNode看作是文件的目录,而DataNode是文件的内容)

    1. Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序, 每隔一段时间获取HDFS元数据的快照。

    MapReduce 架构

    MapReduce 将计算过程分为两个阶段: Map 和 Reduce。其中
    1) Map 阶段并行处理输入数据
    2) Reduce 阶段对 Map 结果进行汇总
    如下图所示的两个阶段:


    hadoop运行环境搭建

    1. 安装对应版本的JDK

    由于hadoop是安装的最新版本的3.2.0版本,所以JDK选择的是1.8.0版本,这个版本一定要注意,安装之前google一下,否则后边会出现很多问题。
    首先官网下载对应版本的JDK,我是下载到了Downloads目录下,然后解压到opt/jvm目录下(jvm是新建的文件夹,解压好的文件都放到了这个文件夹中),命令如下:
    sudo tar zxvf jdk-8u211-linux-x64.tar.gz -C /opt/jvm

    2. 配置JDK的环境变量

    切换到JDK所在目录,运行如下命令:

    dreamgeng at dreamgeng-ubuntu in ~ 
    $ cd /opt/jvm/jdk1.8.0_211   #切换目录
    dreamgeng at dreamgeng-ubuntu in /opt/jvm/jdk1.8.0_211 
    $ pwd   
    /opt/jvm/jdk1.8.0_211  # pwd获得JDK路径
    dreamgeng at dreamgeng-ubuntu in /opt/jvm/jdk1.8.0_211 
    $ sudo vi /etc/profile  # vim编辑/etc/profile文件,将JDK 的路径添加进去
    

    在 profile 文件末尾添加 JDK 路径

    在 profile 文件末尾添加 JDK 路径
    #JAVA_HOME
    export JAVA_HOME=/opt/jvm/jdk1.8.0_211
    export PATH=$PATH:$JAVA_HOME/bin
    

    让修改后的文件生效

    dreamgeng at dreamgeng-ubuntu in /opt/jvm/jdk1.8.0_211 
    $ sudo -s source /etc/profile  # 这里加了-s,网上很多教程是没有的,但是如果不加会提示找不到source命令的错误
    

    到这里jdk就安装完成了。

    3. 安装 Hadoop

    首先官网下载3.2.0最新版本的hadoop,均下载.tar.gz 版本的,然后和安装jdk一样,将其解压到opt/jvm目录下,这里不再重复。

    4. 将 Hadoop 添加到环境变量

    dreamgeng at dreamgeng-ubuntu in /opt/jvm 
    $ cd hadoop-3.2.0
    dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
    $ pwd
    /opt/jvm/hadoop-3.2.0
    dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
    $ sudo vi /etc/profile
    将如下内容添加到/etc/profile文件中
    ##HADOOP_HOME
    export HADOOP_HOME=/opt/jvm/hadoop-3.2.0
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
    保存后退出
    dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
    $ sudo -s source /etc/profile  # 激活
    如果 Hadoop 命令不能用,则需要重启
    dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
    $ sync  
    dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
    $ sudo reboot    
    输入ll可查看Hadoop 目录结构
    dreamgeng at dreamgeng-ubuntu in /opt/jvm/hadoop-3.2.0 
    $ ll                         
    total 228K
    drwxr-xr-x 3 dreamgeng      1002 4.0K Jul  7 20:12 bin
    drwxrwxr-x 3 dreamgeng dreamgeng 4.0K Jul  8 10:54 data
    drwxr-xr-x 3 dreamgeng      1002 4.0K Jan  8 14:13 etc
    drwxr-xr-x 2 dreamgeng      1002 4.0K Jan  8 15:59 include
    drwxrwxr-x 2 dreamgeng dreamgeng 4.0K Jul  8 08:47 input
    drwxr-xr-x 3 dreamgeng      1002 4.0K Jan  8 15:58 lib
    drwxr-xr-x 4 dreamgeng      1002 4.0K Jan  8 15:59 libexec
    -rw-rw-r-- 1 dreamgeng      1002 148K Oct 19  2018 LICENSE.txt
    drwxr-xr-x 2 dreamgeng root      4.0K Jul  8 16:00 logs
    -rw-rw-r-- 1 dreamgeng      1002  22K Oct 19  2018 NOTICE.txt
    drwxr-xr-x 2 dreamgeng dreamgeng 4.0K Jul  8 09:12 output
    -rw-rw-r-- 1 dreamgeng      1002 1.4K Oct 19  2018 README.txt
    drwxr-xr-x 3 dreamgeng      1002 4.0K Jan  8 14:13 sbin
    drwxr-xr-x 4 dreamgeng      1002 4.0K Jan  8 16:32 share
    drwxrwxr-x 2 dreamgeng dreamgeng 4.0K Jul  8 09:39 wcinput
    drwxr-xr-x 2 dreamgeng dreamgeng 4.0K Jul  8 09:47 wcoutput
    

    其中重要目录:
    ( 1) bin 目录:存放对 Hadoop 相关服务( HDFS,YARN)进行操作的脚本
    ( 2) etc 目录: Hadoop 的配置文件目录,存放 Hadoop 的配置文件
    ( 3) lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
    ( 4) sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
    ( 5) share 目录:存放 Hadoop 的依赖 jar 包、 文档、 和官方案例

    相关文章

      网友评论

        本文标题:Hadoop系列-Hadoop简介与运行环境搭建

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