美文网首页
Hadoop概述

Hadoop概述

作者: _羊羽_ | 来源:发表于2019-08-03 23:27 被阅读0次

    概述

    官方地址:http://hadoop.apache.org/
    The Apache Hadoop project develops open-source software for reliable, scalable, distributed computing.(可靠的,可拓展的 分布式系统)
    狭义Hadoop:是一个适合大数据分布式存储(HDFS),分布式计算(MapReduce)和资源调度(YARN)的平台。
    广义的Hadoop:指的Hadoop的生态系统,Hadoop只是其中最重要的,最基础的一部分。生态圈的中的每个子系统只负责解决某一个特点的问题。

    分式文件系统Hadoop Distributed File System (HDFS)

    A distributed file system that provides high-throughput access to application data.
    大数据处理框架(如MapReduce,Spark等等)要处理的数据源大部分都是存储在HDFS之上的,Hive或者Hbase等框架的数据通常情况下也是存储在HDFS之上。
    工作机制:将文件切分成指定大小的数据块并且多副本的存储在多个机器,HDFS默认3个副本。

    分布式计算框架MapReduce

    A YARN-based system for parallel processing of large data sets.
    是一个分布式,并行处理的编程模型,开发人员主需要编写Hadoop的MapReduce作业就能使用存储在HDFS中的数据来完成相应的数据处理功能。

    分布式资源调度框架YARN

    A framework for job scheduling and cluster resource management.
    负责整个系统资源的管理和调度,并且在YARN之上运行各种不同类型(如MapReduce,Spark等等)执行框架。

    高可靠性

    数据存储:存储块多个副本
    数据计算:重新调度作业计算

    拓展性

    存储/计算资源不够时,可以横向的线性拓展机器
    一个集群中可以包含数以万计的节点

    伪分布式开发环境搭建

    SSH配置

    文件和目录的权限千万别设置成chmod 777.这个权限太大了,不安全

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 0600 ~/.ssh/authorized_keys
    

    如果没有ssh公钥,执行下面命令

    ssh-keygen -t rsa
    

    安装java

    sudo yum install  java-1.8.0-openjdk-devel
    

    安装完成后,输入 java 和 javac 命令,如果能输出对应的命令帮助,则表明jdk已正确安装。

    # javac
    用法: javac <options> <source files>
    

    配置 JAVA 环境变量
    执行命令:

    编辑 ~/.bashrc,在结尾追加:

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
    

    保存文件后执行下面命令使 JAVA_HOME 环境变量生效:

    source ~/.bashrc
    

    hadoop安装

    使用的cdh版本是hadoop-2.6.0-cdh5.7.0

    wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz
    

    将 Hadoop 安装到~/app目录下:

    #tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C ~/app
    #cd app
    # mv ./hadoop-2.6.0-cdh5.7.0/ ./hadoop
    

    配置环境变量

    vim ~/.bashrc

    export HADOOP_HOME=$HOME/app/hadoop
    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
    

    使Hadoop环境变量配置生效:

    source ~/.bashrc
    

    版本校验

    # hadoop version
    Hadoop 2.6.0-cdh5.7.0
    Subversion http://github.com/cloudera/hadoop -r c00978c67b0d3fe9f3b896b5030741bd40bf541a
    Compiled by jenkins on 2016-03-23T18:41Z
    Compiled with protoc 2.5.0
    From source with checksum b2eabfa328e763c88cb14168f9b372
    This command was run using /root/app/hadoop/share/hadoop/common/hadoop-common-2.6.0-cdh5.7.0.jar
    

    修改 Hadoop 的配置文件

    Hadoop的配置文件位于安装目录的 /etc/hadoop 目录下
    hadoop-env.sh

    # The only required environment variable is JAVA_HOME.  All others are
    # optional.  When running a distributed configuration it is best to
    # set JAVA_HOME in this file, so that it is correctly defined on
    # remote nodes.
    
    # The java implementation to use.
    export JAVA_HOME=${JAVA_HOME}
    

    编辑 core-site.xml,修改<configuration></configuration>节点的内容为如下所示:

    示例代码:/root/app/hadoop/etc/hadoop/core-site.xml

    <configuration>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/root/app/hadoop/tmp</value>
            <description>location to store temporary files</description>
        </property>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    

    同理,编辑 hdfs-site.xml,修改<configuration></configuration>节点的内容为如下所示:

    示例代码:/root/app/hadoop/etc/hadoophdfs-site.xml

    <configuration>
         <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
            <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/root/app/hadoop/tmp/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/root/app/hadoop/tmp/dfs/data</value>
        </property>
    </configuration>
    

    格式化 NameNode

    格式化NameNode:

    hdfs namenode -format
    19/08/05 15:35:35 INFO common.Storage: Storage directory /root/app/hadoop/tmp/dfs/name has been successfully formatted.
    19/08/05 15:35:35 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
    19/08/05 15:35:35 INFO util.ExitUtil: Exiting with status 0
    

    开启服务

    # start-dfs.sh
    19/08/05 15:37:29 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    Starting namenodes on [localhost]
    localhost: starting namenode, logging to /root/app/hadoop/logs/hadoop-root-namenode-aliyun.out
    localhost: starting datanode, logging to /root/app/hadoop/logs/hadoop-root-datanode-aliyun.out
    

    查看结果

    # jps
    14736 NameNode
    14995 SecondaryNameNode
    15098 Jps
    14846 DataNode
    

    相关文章

      网友评论

          本文标题:Hadoop概述

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