Hadoop的安装与配置

Hadoop的三大工程

1 MapReduce(离线计算框架)

   A:基本思想     
          对海量数据的处理(分布式)
          思想:
             分而治之
             大数据集分为小的数据集
             每一个数据集,进行逻辑业务处理(Map)
             合并统计数据结果(reduce)
      B:计算过程(Map阶段和Reduce阶段)
         Map阶段并行处理输入数据(分开处理数据)
         Reduce阶段对Map结果进行汇总
         Shuffle连接Map和Reduce两个阶段
         Map Task将数据写到本地磁盘
         Reduce Task从每个Map Task上读取一份数据
      C:优缺点
          具有很好的容错性和扩展性
          适合简单的批处理任务
          启动开销大、过多使用磁盘导致效率低下等
      input -> map --> shuffle(洗牌) --> reduce --> output

2、HDFS:存储海量数据
      A:基本概念
         分布式
         安全性:(存在副本数据,默认存储3份)
         数据是以block(块)的方式存储的

      B:HDFS的组成部分
         NameNode:
                   a、主节点,存储文件的元数据,如文件名,文件目录,文件属性(生成时间,副本数,文件权限)
                   以及每个文件的块列表和块所在的DataNode等
                   b、数据存在内存和本地磁盘中
                      本地磁盘中有镜像文件(fsimage)和编辑日志(edites) 
         DataNode:
                   a、在本地文件系统存储文件块数据,以及快数据的校验和
         Secondary NameNode:用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据快照

3、YARN:分布式资源管理架构
      A:基本概念
         管理整个集群资源(内存、CUP核数)
         分配调度集群资源
      B:组成部分
         ResourceManager:资源管理者,进行应用的管理,资源的调度,每个运行在YARN上的应用都需要向 ResourceManager申请资源
         NodeManager:每一台机器都是一个NodeManager,YARN是一个分布式资源管理器,所有的机器的资源都是交给 ResourceManager管理
         AppMstr(ApplicationManager):每一个运用在YARN上的应用有一个AppMstr(应用管理者),应用通过AppMstr去申请资源,划分任务。
                  应用申请的资源会放在一个Container中,每个任务只在Container上运行
         Container:运行每一个任务

二、Hadoop按照配置(为分布式)

1、准备工作:

       jdk 环境
      下载hadoop-2.5.0.tar.gz 并解档,(下载地址: http://archive.apache.org/dist/hadoop/common/)

2、配置host 

vim /etc/hosts  

192.168.0.135  zhuojing-virtual-machine-com

3、配置HDFS与启动

   a:配置 hadoop下的/etc/hadoop/hadoop-env.sh 和 mapred-env.sh jdk路径

   

   b:配置hadoop下etc/hadoop/core-site.xml


    
    
        fs.defaultFS
        hdfs://zhuojing-virtual-machine-com:9000
    
    
    
        hadoop.tmp.dir
        /home/zhuojing/big-data/cdh5.3.6/hadoop-2.5.0-cdh5.3.6/data/tmp
    

    c:配置hadoop下etc/hadoop/core-site.xml


     
    
        dfs.replication
        1
    
    
    
        dfs.namenode.secondary.http-address
        zhuojing-virtual-machine-com:50090
    
    
    
        dfs.namenode.http-address
        zhuojing-virtual-machine-com:50070
    
    
    
        dfs.permissions
        false
    

d:文件格式化

bin/hdfs namenode -format (第一次启动是执行即可)

e:启动

sbin/hadoop-daemon.sh start namenode   启动HDFS的namenode主节点
sbin/hadoop-daemon.sh start datanode   启动HDFS的datanode从节点

启动后 使用 jps可以看见namenode和datanode进程

注:启动后可以用jps查看进程,同时在hadoop下会生成logs的日志目录
       web界面:ip:50070
         云服务用内网注册(注意不要再hosts文件中做外网的映射,不然datanode无法启动)


 f:案例,使用mapreduce程序读取HDFS上是文件(统计单词的程序)
         ①:创建目录:bin/hdfs dfs -mkdir -p /user/ubuntu/mapreduce/wordcount/input     注:bin/hdfs dfs -mkdir -p hdfs文件上路径
         ②:将文件移入HDFS目录中:
              bin/hdfs dfs -put wcinput/input.txt  /user/ubuntu/mapreduce/wordcount/input/   注:bin/hdfs dfs -put 为本地文件  hdfs文件目录
             查看文件:bin/hdfs dfs -cat  /user/ubuntu/mapreduce/wordcount/input/input.txt
         ③:运行mapreduce程序(单词统计)
           

 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount  /user/ubuntu/mapreduce/wordcount/input /user/ubuntu/mapreduce/wordcount/output

4、配置yarm和启动

a:配置hadoop写etc/hadoop下的yarn-env.sh  配置java环境(export JAVA_HOME=路径)不配的也行

b:etc/hadoop/yarn-site.xml


    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
        yarn.resourcemanager.hostname
        zhuojing-virtual-machine-com
    
    
        yarn.log-aggregation-enable
        true
    
    
        yarn.log-aggregation.retain-seconds
        640800
    

b: 启动主节点:
     sbin/yarn-daemon.sh start resourcemanager
   启动从节点  
   sbin/yarn-daemon.sh start nodemanager

  启动后使用jps 可看到 resourcemanager  和 nodemanager进程

c:配置mapreduce程序在yarn上运行

  ①:配置jdk路径(可以不配):配置etc/hadoop/下mapred-env.sh

   ② 重命名:mapred-site.xml.template为:mapred-site.xml(etc/hadoop/)
                 mv mapred-site.xml.template mapred-site.xml

  配置etc/hadoop/mapred-site.xml



    
        mapreduce.framework.name
        yarn
    
    
                    

你可能感兴趣的:(Hadoop,Hadoop,大数据)