大數據的框架-流程梳理


大數據技術棧

  存儲  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模式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM