zoukankan      html  css  js  c++  java
  • 大数据的框架-流程梳理

    大数据技术栈

      存储  HDFS  Hbase
      资源管理和协调 YARN Zookeeper
      计算: Hive  Spark  Flink
       其他: ES redis 
    

    框架系统构成

      配置
      执行目录
      文件构成
      日志系统
      服务
     01.配置
        hadoop/etc/hadoop/hdfs-site.xml
        hbase/conf/hbase-site.xml
        /etc/redis/redis.conf
     02.日志
        hadoop/logs/hadoop-evs-namenode-evs-xps.log
     03.启动
        hadoop/sbin/start-all.sh
        hadoop/sbin/stop-all.sh
        hbase/bin/start-hbase.sh
            hbase/bin/start-hbase.sh
            hbase/bin/hbase-daemon.sh start regionserver
     04.运行
         hadoop/bin/hdfs
         /usr/bin/redis-server
     05.服务
      jps
        HDFS: NameNode  SecondaryNameNode  datanode
        YARN: ResourceManager
        Hbase: HMaster  HRegionServer HQuorumPeer  
      服务:
         systemctl status redis
    

    具体

     构成组件
     基本功能
     启动流程-执行流程-启动的服务
     文件系统
    

    大数据详情

      配置和命令
    

    1.Hadoop

     hadoop fs -du -s -h /test
      hadoop fs -ls   /test
      -s, --summarize       display only a total for each argument
      -h, --human-readable
      -d, --max-depth=N 
     'hadoop-env.sh' 中 JAVA_HOME= 的配置
        ls  /usr/lib/jvm
        export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
        export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
        export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64/jre
    

    大数据比较

    1.MapReduce

     将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数:Map和Reduce
       大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理
       将小数据集进一步分为<key, value>对
    
     1.spark提供了更丰富的算子
       Map阶段的map, flatMap, filter, keyBy,
       Reduce阶段的reduceByKey, sortByKey, mean, gourpBy, sort
     2.Flink
        有状态的计算
    	  Managed State是由Flink管理的,Flink帮忙存储、恢复和优化,
    	  Raw State是开发者自己管理的,需要自己序列化
    	状态的数据结构上来说,Managed State支持了一系列常见的数据结构,
    	    如ValueState、ListState、MapState
    	对Managed State继续细分,它又有两种类型:
    	  Keyed State和Operator State
    

    3.split-apply-combine模式

    大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,
     有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较。
     因此对数据的转换,可以采用split – apply – combine模式来进行处理:
       split:把要处理的数据分割成小片断;
     apply:对每个小片断独立进行操作;
     combine:把片断重新组合。
    
     利用这种模式解决问题在很多数据分析或编程问题中都会出现:
       Python当中,是map( ),filter( ),reduce( );
       Google 有 MapReduce;
       R 当中是split( ),*apply( ),aggregate( )…,以及plyr包
            base包中的apply函数族及其它的一些函数,直接对向量,数组,列表和数据框实现循环的操作
     baseR
       在R当中,split这个步骤是由split( ),subset( )等等函数完成的。 
       apply – combine步骤主要由apply函数族完
     plyr包
        可以针对不同的数据类型,在一个函数内同时完成split-apply-combine三个步骤,从而实现最大限度的高效和简洁   
         对应apply族的replicates和mapply这两个函数,分别表示n次重复和多元函数参数的情况
    	 输入参数:
    	   参数.data是我们要用来分片-计算-合并的;
    	   参数.margins或者.variables描述了分片的方式;
           参数.fun表示用来处理的函数,其它更多的参数是传递给处理函数的
    	   其中
    	      输入类型时向量a时,其分片的话只能按照维度分,于是便有了.margins参数,
    	      输入类型为数据框d时,分片只能是某一个特征向量.variables,
    	      输入类型列表的分片只能是其元素了,唯一确定,便不需指定了。
    

    参考

    数据转换:split-apply-combine模式
  • 相关阅读:
    记支付宝接口对接,涉及到提取证书SN号的解决方案
    Second Level Cache for Entity Framework 6.1
    记一个dynamic的坑
    使用EntityFramwork[6.1]进行级联保存的时候出现异常
    转:Transform Web.Config when Deploying a Web Application Project
    转:程序员如何增加收入
    超实用的JavaScript技巧及最佳实践(下)
    超实用的JavaScript技巧及最佳实践(上)
    Oracle PL/SQL入门语法点
    轻量级IOC框架:Ninject (下)
  • 原文地址:https://www.cnblogs.com/ytwang/p/15329058.html
Copyright © 2011-2022 走看看