1. 程式人生 > >Spark流式處理框架案例網站流量分析&大資料生態圈介紹

Spark流式處理框架案例網站流量分析&大資料生態圈介紹

一, 大資料框架(處理海量/流式資料)

1. 以HADOOP 2.x為體系的大資料生態系統處理框架

MapReduce:中間結果儲存在磁碟。Shuffle過程:map將資料寫入到本地磁碟,reduce通過網路的方式到各個map task所執行的機器中拷貝自己要處理的資料。

HDFS(分散式儲存系統)

YARN(分散式的叢集資源管理和任務排程框架)

Hive:基於SQL的處理框架

將SQL解析為MapReduce程式,處理存在HDFS上的資料,並執行在YARN上。

SQOOP:RDBMS - HDFS/HIVE 匯入匯出

HBASE:大資料分散式資料庫

資料實際還是儲存在hdfs上,Hbase可以與MapReduce進行整合,可以讀取hbase的資料進行分析處理,也可將分析結果儲存到hbase表中。也可以與hive整合,建立整合表,使用hive進行分析。

2. 以SPARK為體系的大資料處理框架(類似於hadoop和stome的整合)

Spark和MapReduce類似,區別在於Spark是一個記憶體處理框架,將處理資料過程中的中間結果資料存放在記憶體中。而Mapreduce的shuffle過程中間結果儲存在磁碟。

SparkCore

SparkSQL:類似於hive

SparkSQL可以直接從RDBMS/JOSN/CSV中讀取資料

SparkStreaming:準實時流式處理框架,相比於stome學習簡單

KafKa + SparkStreaming,資料來源Kafka

資料深入高階分析:機器學習/深度學習/人工智慧

SparkGraphx:對圖形計算的框架

SparkMLlib:機器學習

Spark on R

3. 以Storm為體系實時流式處理框架

真正的實時處理框架,資料實時產生 -> 進行實時處理

例如:實時交通監控,實時電商營業額統計等

學習Spark的基礎

- JAVA SE基礎

- SCALA 基礎

- HADOOP 2.x

HDFS:分散式檔案系統,儲存資料,以檔案的形式儲存

Spark可以從HDFS上讀取資料進行處理

MapReduce:平行計算程式設計模型

資料處理的思想:分而治之

YARN:分散式叢集資源管理和任務排程的框架

Spark Application執行在YARN上,完全OK

- HIVE

SQL on HADOOP

給使用者提供一個介面,只需要編寫SQL語句即可,Hive將SQL轉換為MapReduce程式,讀取HDFS上的資料並且執行在YARN上。

在企業中使用Spark框架來說,70%以上都是使用SparkSQL(SQL\DSL)這個模組進行資料分析處理。

表的資料檔案儲存格式:列式儲存 parquet/orc

MapReduce:

執行速度很慢,尤其針對複雜的資料分析

原因在於:將分析中間結果資料寫入磁碟中,並且後續進行分析時,從磁碟繼續讀取(與磁碟打交道)

- map task --output--> disk

- reduce task --output--> hdfs(disk)

Spark:

類似於MapReduce的分散式計算框架

基於記憶體的分散式計算框架

資料存放和讀取來源記憶體肯定要比 磁碟 要快很多

將資料處理的中間結果儲存到記憶體中 memory

最明顯的一個比較

MapReduce與Spark框架資料處理來說,對100TB資料進行排序

Spark:

機器:使用1/10

時間:1/3 (小於)

官方定義:

- 引擎Engine

- 大規模資料集處理

- fast快速

- general通用

與HADOOP 生態系統框架來比較

Mahout

0.9.0版本以後,在2014年的時候,底層改變了,支援Spark

基於MapReduce框架實現機器學習庫

迭代計算

Spark 歷史來源

起源於加州大學伯克利分校AMPLab實驗室

AMP:A->演算法, M->機器學習,P->人類

建立一個公司DataBricks(金磚):從資料中獲取黃金(價值)

Spark框架最重要的一點,就是一個對資料分析處理的抽象

RDD:Resilient Distributed Datasets

資料結構:集合,類比於SCALA中的LIST

Step 1:

將要處理的資料轉換為RDD(將資料儲存到集合中,記憶體中)

Step 2:

處理資料的過程就是呼叫RDD中的函式,處理後的資料結構為RDD

Step 3:

將處理資料的結果RDD輸出到檔案中或者其他地方

資料處理的三步驟:

第一步:讀取資料

input -> InputFormat

第二步:分析資料

process -> map() -> shuffle -> reduce()

第三步:輸出資料

output -> OutputFormat

備註:

在MapReduce框架中整個資料處理的流程中資料以(key, value)對形式進行資料流向。

DAG:有向無環圖

對資料進行分析的時候,往往需要很多步驟才能完成,後面的task依賴於前面的task。

Generality

Combine SQL, streaming, and complex analytics.

對於Spark框架(包括SQL、Streaming、Graphx、MLlib)來說,都是一個library(庫),而不是一個所謂的“真正意義上的框架”。

一個JAR包,開發的時候應用API即可,與MapReduce一樣。

Runs Everywhere

- 要處理的資料來源於很多地方

hdfs、hive、hbase、mysql/oracle/mssql、json、parquet/orc ...

- Spark Application程式執行很多地方

local mode :在本地進行測試執行

cluster mode:

yarn:hadoop框架中的一個模組

mesos: apache 頂級專案,與YARN功能類似,用於叢集資源管理和任務的排程

standalone:Spark框架本身自帶的叢集資源管理框架,與YARN類似

cloud:可以執行在雲端EC2

============================================================

Spark 學習資料

- 官方文件

http://spark.apache.org/docs/1.6.1/

- Spark 原始碼

https://github.com/apache/spark

閱讀原始碼的話,肯定要使用IDE(IDEA)

- 原始碼關聯IDE

IDEA

- Import IDEA

Maven倉庫,依賴包

- 官方部落格

https://databricks.com/blog

- 英文書籍

中文書籍

Spark 安裝

採用原始碼編譯的方式安裝

- 下載原始碼

https://github.com/apache/spark/archive/v1.6.1.tar.gz

https://github.com/apache/spark/archive/v1.6.1.zip

- 配置編譯

編譯步驟:

編譯Spark,依賴於HADOOP:

- 處理的資料通常儲存在HDFS

- SPARK程式執行在YARN(阿里巴巴用方式)

- 處理的資料儲存在HIVE表中

-1, 環境準備

JDK、SCALA、MAVEN

-2, 解壓原始碼,配置

MAVEN相關

-i, MAVEN解壓以後,配置settings.xml,倉庫映象地址

<mirror>

<id>aliyun</id>

<mirrorOf>central</mirrorOf>

<name>aliyun repository</name>

<url>http://maven.aliyun.com/nexus/content/groups/public/</url>

</mirror>

<!– cdh 版本編譯 可選指定 -->

<mirror>

<id>cloudera</id>

<mirrorOf>central</mirrorOf>

<name>cloudera repository</name>

<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>

</mirror>

-ii,修改系統的DNS

$ sudo vi /etc/resolv.conf

nameserver 8.8.8.8

nameserver 8.8.4.4

-iii,解壓倉庫

$ cd /home/hpsk

$ mkdir -p .m2

$ cd .m2

$ tar -zxf repository-1.6.1.tar.gz

-iv,解壓spark原始碼

- 修改make-distribution.sh檔案

VERSION=1.6.1

SCALA_VERSION=2.10.4

SPARK_HADOOP_VERSION=2.5.0-cdh5.3.6

SPARK_HIVE=1

- 修改根目錄下pom.xml檔案

<scala.version>2.10.4</scala.version>

-3, 執行編譯命令

MAVEN方式

打包方式make-distribution

./make-distribution.sh --tgz -Phadoop-2.4 -Dhadoop.version=2.5.0-cdh5.3.6 -Pyarn -Phive -Phive-thriftserver

SBT方式:

JAVA:MAVEN管理工程JAR包

SCALA:SBT管理工程JAR包

============================================================

Spark 框架編譯安裝包目錄結構與Hadoop 2.x安裝包目錄結構類似

/bin: 執行指令碼命令

/sbin: 服務管理指令碼命令

/conf: 配置檔案目錄

/data: 測試資料

/examples: 框架自帶的Examples程式

/lib: Spark框架的編譯後的JAR包

類似於HADOOP中${HADOOP_HOME}/share/hadoop/

common/ 、hdfs/ 、mapreduce/ 、yarn/

- Spark 框架核心JAR包

datanucleus-api-jdo-3.2.6.jar

datanucleus-core-3.2.10.jar

datanucleus-rdbms-3.2.9.jar

- Spark執行YARN上JAR包

spark-1.6.1-yarn-shuffle.jar

- Spark 與HADOOP整合JAR包

spark-assembly-1.6.1-hadoop2.5.0-cdh5.3.6.jar

- Example JAR包

spark-examples-1.6.1-hadoop2.5.0-cdh5.3.6.jar

備註:

在Spark 2.x中JAR包進行模組化

Spark 框架對於開發者,人性化,智慧化

- 思想

對資料分析處理的: RDD

- 程式設計

呼叫RDD函式

鏈式程式設計(SCALA語言本身特性 函數語言程式設計)

- 測試

spark-shell : 互動式命令列工具

pyspark

IDE:本地測試

- 監控

針對每個應用都有一個監控埠 4040 (1.4版本以後)

Spark Local Mode 安裝

- 安裝軟體科技

JDK、SCALA、HDFS

- 配置SPARK環境指令碼

$ cd ${SPARK_HPOME}/conf

$ mv spark-env.sh.template spark-env.sh

增加配置

JAVA_HOME=/opt/modules/jdk1.7.0_67

SCALA_HOME=/opt/modules/scala-2.10.4

- 啟動spark-shell

在local mode下

$ bin/spark-shell

17/04/24 00:10:08 INFO repl.SparkILoop: Created spark context..

Spark context available as sc.

意思:在啟動spark-shell命令列的時候,建立一個SparkContext的例項,名稱為sc,使用sc進行讀取要處理的資料,將資料封裝到(讀取到)RDD集合中。

Spark 程式處理流程

-1 資料的讀取(輸入)

val rdd = sc.#

-2 資料的處理(分析)

rdd.# #:表示的函式為 Transformation

-3 資料的輸出(輸出)

rdd.# #:表示的函式為 Action 或者 Persist

Spark 與MapReduce 有一點不一樣的地方:

spark-shell

執行一個Spark Application在本地模式下

在一個Spark Application下會有多個Job

對於MapReduce程式執行來說

一個Application就是一個Job

無論是MapReduce還是Spark對資料的處理,分而治之的思想,處理每一份資料,都是一個Task進行處理的。

MR:MapTask 、Reduce Task -> JVM Process

Spark: Task -> Thread

每個Task執行的時候僅僅需要一個CPU CORE,記憶體依據需求制定。

bin/spark-shell

預設情況下,表示執行在Local Mode ,在本地啟動一個JVM Process,在裡面執行一些執行緒進行資料處理,執行緒執行Task任務。

相當於:bin/spark-shell --master local[*]

對於本地模式來說,執行多少Thread決定同時執行多少Task

- bin/spark-shell --master local

在JVM中執行一個Thread

- bin/spark-shell --master local[k]

K:表示執行K個Thread

- bin/spark-shell --master local[*]

*: 表示的是當前機器CPU CORE為多少就執行多少個Thread。

如何匯入原始碼至IDEA工具

- 下載原始碼並解壓

- 安裝配置MAVEN

關鍵:使用給定的MAVEN RESP(包含依賴JAR包)

- IDEA 匯入

- 勾選[MAVEN PROPECT]

- 設定MAVEN環境(HOME、settings、respo)

Spark standalone

Spark 框架自帶的分散式叢集資源管理和任務排程框架,類似於YARN

分散式架構:主從架構 YARN

主節點:

Master ResourceManager

負責叢集資源管理

從節點:

Workers NodeManagers

負責當前節點資源的管理

對於計算框架來說,需要資源

- CPU CORE

計算

- Memory

儲存資料

架構有一點不一樣:

對於YARN來說

每臺機器上只能啟動一個NodeManager,管理這個節點的資源

對於Standalone來說

每臺機器上可以執行多個Worker程序,進行資源管理

配置Spark Standalone Cluster

-1, 配置${SPARK_HOME}/conf目錄檔案

- spark-env.sh

SPARK_MASTER_IP=bigdata-training01.hpsk.com

SPARK_MASTER_PORT=7077

SPARK_MASTER_WEBUI_PORT=8080

SPARK_WORKER_CORES=2

SPARK_WORKER_MEMORY=2g

SPARK_WORKER_PORT=7078

SPARK_WORKER_WEBUI_PORT=8081

SPARK_WORKER_INSTANCES=1

- slaves

bigdata-training01.hpsk.com

-2,啟動服務

Master節點:

必須在Master的節點機器上啟動

$ sbin/start-master.sh

Workers啟動:

必須在Master節點上啟動

啟動之前,需要配置此節點到所有的Slaves節點的SSH無祕鑰登入

$ ssh-keygen -t rsa

$ ssh-copy-id [email protected]

$ sbin/start-slaves.sh

-3, 測試

執行spark-shell在SparkStandalone叢集模式下

bin/spark-shell --master spark://bigdata-training01.hpsk.com:7077

-4, Spark Application 執行在Cluster模式下

組成部分:

-1, Driver Program

類似於MapReduce執行在YARN上,每個應用都有一個AppMaster

管理整個應用的執行(排程)

SparkContext 建立在此處

-2, Executor

JVM Process

-i, 執行Task 進行資料處理,以Thread方式執行

-ii, 快取資料:rdd.cache其實就是將資料放到Executor記憶體中

============================================================

開發測試:

bin/spark-shell

專案生產:

最終Spark Application(Spark Core)最終的執行與MapReduce程式是一樣的,需要將程式打包成JAR包進行執行。

開發就需要IDE工具,技能快速的開發,也能進行本地測試(程式邏輯)

對一號店使用者訪問行為資料進行分析

PV(瀏覽量)和UV(訪客數)統計

- MapReduce 程式

- HiveQL 分析

- SparkCore 分析

在企業中,很多公司由於資料量增多,越來越多,對資料統計分析,切換到大資料平臺上來,使用大資料技術進行分散式計算統計,技術架構變遷如下:

-1, MySQL 類似資料庫

儲存資料,使用SQL分析統計

-2, Hadoop + Hive

HDFS儲存資料,HiveQL分析統計

-3, SparkSQL + Hive

Hive表中,SparkSQL分析統計

關鍵點:

SQL變化不大,效能速度提升很快,遷移方便。

如何提交執行Spark Application程式???

與MapReduce Application執行基本上一致。

bin/yarn jar xx.jar class args-01 args-02

在Spark中有一個命令,提交應用(Local Mode和Cluster Mode)

bin/spark-submit

幫助文件:

$ bin/spark-submit --help

Usage: spark-submit [options] <app jar | python file> [app arguments]

Usage: spark-submit --kill [submission ID] --master [spark://...]

Usage: spark-submit --status [submission ID] --master [spark://...]

Options:

--master MASTER_URL spark://host:port, mesos://host:port, yarn, or local.

--deploy-mode DEPLOY_MODE Whether to launch the driver program locally ("client") or

on one of the worker machines inside the cluster ("cluster")

(Default: client).

--class CLASS_NAME Your application's main class (for Java / Scala apps).

--name NAME A name of your application.

--jars JARS Comma-separated list of local jars to include on the driver

and executor classpaths.

--packages Comma-separated list of maven coordinates of jars to include

on the driver and executor classpaths. Will search the local

maven repo, then maven central and any additional remote

repositories given by --repositories. The format for the

coordinates should be groupId:artifactId:version.

--exclude-packages Comma-separated list of groupId:artifactId, to exclude while

resolving the dependencies provided in --packages to avoid

dependency conflicts.

--repositories Comma-separated list of additional remote repositories to

search for the maven coordinates given with --packages.

--py-files PY_FILES Comma-separated list of .zip, .egg, or .py files to place

on the PYTHONPATH for Python apps.

--files FILES Comma-separated list of files to be placed in the working

directory of each executor.

--conf PROP=VALUE Arbitrary Spark configuration property.

--properties-file FILE Path to a file from which to load extra properties. If not

specified, this will look for conf/spark-defaults.conf.

--driver-memory MEM Memory for driver (e.g. 1000M, 2G) (Default: 1024M).

--driver-java-options Extra Java options to pass to the driver.

--driver-library-path Extra library path entries to pass to the driver.

--driver-class-path Extra class path entries to pass to the driver. Note that

jars added with --jars are automatically included in the

classpath.

--executor-memory MEM Memory per executor (e.g. 1000M, 2G) (Default: 1G).

--proxy-user NAME User to impersonate when submitting the application.

--help, -h Show this help message and exit

--verbose, -v Print additional debug output

--version, Print the version of current Spark

Spark standalone with cluster deploy mode only:

--driver-cores NUM Cores for driver (Default: 1).

Spark standalone or Mesos with cluster deploy mode only:

--supervise If given, restarts the driver on failure.

--kill SUBMISSION_ID If given, kills the driver specified.

--status SUBMISSION_ID If given, requests the status of the driver specified.

Spark standalone and Mesos only:

--total-executor-cores NUM Total cores for all executors.

Spark standalone and YARN only:

--executor-cores NUM Number of cores per executor. (Default: 1 in YARN mode,

or all available cores on the worker in standalone mode)

YARN-only:

--driver-cores NUM Number of cores used by the driver, only in cluster mode

(Default: 1).

--queue QUEUE_NAME The YARN queue to submit to (Default: "default").

--num-executors NUM Number of executors to launch (Default: 2).

--archives ARCHIVES Comma separated list of archives to be extracted into the

working directory of each executor.

--principal PRINCIPAL Principal to be used to login to KDC, while running on

secure HDFS.

--keytab KEYTAB The full path to the file that contains the keytab for the

principal specified above. This keytab will be copied to

the node running the Application Master via the Secure

Distributed Cache, for renewing the login tickets and the

delegation tokens periodically.

提交Spark Application:

方式一:

將應用提交在local[2]執行

bin/spark-submit \

--master local[2] \

--class com.hpsk.bigdata.spark.TrackLogAnalyzerSpark \

/opt/cdh-5.3.6/spark-1.6.1-bin-2.5.0-cdh5.3.6/spark-study-1.0-SNAPSHOT.jar

方式二:

將應用提交在Spark Standalone執行

bin/spark-submit \

--master spark://bigdata-training01.hpsk.com:7077 \

--class com.hpsk.bigdata.spark.TrackLogAnalyzerSpark \

/opt/cdh-5.3.6/spark-1.6.1-bin-2.5.0-cdh5.3.6/spark-study-1.0-SNAPSHOT.jar

RDD:

資料結構,類似集合List,Spark核心抽象

與普通的集合:最重要一點就是,分散式儲存資料,

HDFS block

RDD partition -> 儲存在不同機器的記憶體中

=============================================================

Spark Application執行在叢集(YARN,Standalone、Mesos)架構

-1, Driver Program

理解為執行在YARN上的每個應用的ApplicationMaster

負責任務執行時,資源的申請和任務排程

JVM Process

執行在何處呢?

預設情況下,Driver Program執行在提交應用的Client,並且開啟一個4040 WEB UI埠(預設情況下),使用者監控Spark Application執行情況。

建立SparkContext

-1, 讀取資料,建立RDd

-2, 排程任務(application中的所有任務由sparkContext)

-2, Executors

執行在Worker上的JVM 程序,執行Task和Cache資料

預設情況下,提交應用到Cluster執行過程:

-1,在應用提交的Client啟動一個Driver Program(JVM Process)

程序名稱為:SparkSubmit

-2,啟動Driver Program的時候啟動Server: jetty,開啟4040埠SparkUI

每個應用執行的時候,在瀏覽器中輸入

http://driver-program:4040/

-3,Driver Program 連線Master服務,為應用申請資源,執行Executors

Executor執行在Worker節點上,資源包含記憶體和CPU Core

-4,Master主節點進行資源分配排程,通知對應的Worker節點啟動相應的Executor服務,以便後續執行Task和Cache

Master會通知Driver Program資源準備

-5,Driver Program 開始進行應用中任務排程

Spark Application

Job-01

Stage-01

Stage-02

Stage-03

......

Job-02

Job-03

......

-1,一個Application包含很多Job

RDD#Func

當RDD呼叫的函式返回值不是RDD的時候,就會觸發一個Job

Func:Action

-2,一個Job包含很多Stage,Stage之間是依賴關係

後面的Stage處理的資料依賴於前面Stage處理完成的資料

Stage裡面都是RDD進行轉換操作

-3,一個Stage中有很多Task

在一個Stage中的所有Task來說,處理的資料邏輯相同(程式碼相同),僅僅是處理的資料不同。

一個Stage中的Task數目如何決定呢?在於處理資料的RDD的分割槽parition,每個分割槽的資料由一個Task任務進行處理。

-4,分析

對於圖中Stage4來說,裡面有5個RDD,相互之間是依賴的

textfile -> rdd-01 -> rdd-02 -> rdd-03 -> rdd-04 -> rdd05

這個Stage中的業務邏輯實在一個Task中完成的。

DEPLOY_MODE

-1, Command:Whether to launch the driver program locally ("client") or on one of the worker machines inside the cluster ("cluster")(Default: client).

-2, Reference:Distinguishes where the driver process runs. In "cluster" mode, the framework launches the driver inside of the cluster. In "client" mode, the submitter launches the driver outside of the cluster.

一言以蔽之:

Spark Application執行時driver program執行的地方

有兩地方:

- client

提交應用的地方,在哪臺機器提交application就在哪臺機器執行程序JVM Process

- cluster

執行在Cluster的從節點上。

Standalone:執行在Worker節點

YARN:執行在NodeManager節點上

在實際企業專案中:

- client

程式進行開發,測試,效能調優

會在client端顯示日誌資訊,便於我們觀察監控程式執行

- cluster

生產叢集採用此中方式

不需要日誌資訊,除非出問題,可以再去到節點檢視

注意:DEPLOY_MODE使用與Spark Application執行在Cluster上的,而不兼容於Local Mode。

bin/spark-submit \

--master local[2] \

--deploy-mode cluster \

--class com.hpsk.bigdata.spark.TrackLogAnalyzerSpark \

/opt/cdh-5.3.6/spark-1.6.1-bin-2.5.0-cdh5.3.6/spark-study-1.0-SNAPSHOT.jar

Error: Cluster deploy mode is not compatible with master "local"

bin/spark-submit \

--master spark://bigdata-training01.hpsk.com:7077 \

--deploy-mode cluster \

--class com.hpsk.bigdata.spark.TrackLogAnalyzerSpark \

/opt/cdh-5.3.6/spark-1.6.1-bin-2.5.0-cdh5.3.6/spark-study-1.0-SNAPSHOT.jar

針對執行Spark Application時指定Driver和Executor資源

資源調優

-1,driver program

memory:

CPU CORE:

-2,Executors

memory:

CPU CORE:

Number:

# 以Client Mode執行在Standalone,2個Executor,每個Executor有1G記憶體和1 Core CPU,Driver有512M記憶體。

bin/spark-submit \

--master spark://bigdata-training01.hpsk.com:7077 \

--deploy-mode client \

--driver-memory 512M \

--executor-memory 1G \

--executor-cores 1 \

--total-executor-cores 2 \

--conf "spark.ui.port=5050" \

--class com.hpsk.bigdata.spark.TrackLogAnalyzerSpark \

/opt/cdh-5.3.6/spark-1.6.1-bin-2.5.0-cdh5.3.6/spark-study-1.0-SNAPSHOT.jar

# 以cluster Mode執行在Standalone,1個Executor,每個Executor有1G記憶體和1 Core CPU,Driver有1G記憶體和1 Core CPU。

bin/spark-submit \

--master spark://bigdata-training01.hpsk.com:7077 \

--deploy-mode cluster \

--driver-memory 1G \

--driver-cores 1 \

--executor-memory 1G \

--executor-cores 1 \

--total-executor-cores 1 \

--class com.hpsk.bigdata.spark.TrackLogAnalyzerSpark \

/opt/cdh-5.3.6/spark-1.6.1-bin-2.5.0-cdh5.3.6/spark-study-1.0-SNAPSHOT.jar

Spark Application 監控

-1, Application Runing

通過WEB UI監控

地址:http://driver-node:4040

-2, Application Complete

如何監控呢????

回憶一下:MapReduce 執行結束以後,如何進行監控的???

啟動一個MRHistoryServer 服務來進行監控

-i, 記錄應用執行時的日誌資訊,當應用完成以後,需要將日誌資訊放到HDFS上----- 日誌聚集功能

-ii, 啟動MRHistoryServer服務,讀取儲存在HDFS上日誌資訊,通過WEB UI介面進行展示 ----- 服務讀取資料並展示

同樣的在Spark中也有一個服務HistoryServer來監控

Event logging is not enabled

在Spark中認為程式執行時日誌以事件Event方式記錄的

表示的是:

事件日誌沒有被儲存起來,當應用執行完成以後。

${SPARK_HOME}/conf/spark-defaults.conf

當每個Spark Application執行的時候,都會讀取裡面配置資訊。

配置啟動儲存event log:

spark.eventLog.enabled true

spark.eventLog.dir hdfs://bigdata-training01.hpsk.com:8020/datas/spark/eventLogs/

spark.eventLog.compress true

Spark Standalone中的主節點Master也可以讀取Event Log資訊並解析展示。

Spark HistoryServer 服務配置:

-1, 到哪裡去讀取Event Logs資訊

${SPARK_HOME}/conf/spark-env.sh

SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://bigdata-training01.hpsk.com:8020/datas/spark/eventLogs/ -Dspark.history.fs.cleaner.enabled=true"

-2, 啟動服務

$ sbin/start-history-server.sh

-3, WEB UI監控

相關推薦

Spark處理框架案例網站流量分析&資料生態介紹

一, 大資料框架(處理海量/流式資料) 1. 以HADOOP 2.x為體系的大資料生態系統處理框架 MapReduce:中間結果儲存在磁碟。Shuffle過程:map將資料寫入到本地磁碟,reduce通過網路的方式到各個map task所執行的機器中拷貝自己要處理的資料。

處理框架對比

流式處理 處理 ont 調優 cnblogs eve 上線 用戶 避免 分布式流處理是對無邊界數據集進行連續不斷的處理、聚合和分析的過程,與MapReduce一樣是一種通用計算框架,期望延遲在毫秒或者秒級別。這類系統一般采用有向無環圖(DAG)。DAG是任務鏈的圖形化表示

處理框架storm淺析

min 完成 文檔 efault 生成 沒有 ado 編程 現在 前言前一段時間參與哨兵流式監控功能設計,調研了兩個可以做流式計算的框架:storm和spark streaming,我負責storm的調研工作。斷斷續續花了一周的時間看了官網上的doc和網絡上的一些資料。我把

Storm:處理框架之特性與應用場景

      資料時代的今夕,如秋風席捲落葉漫天紛飛,storm願做繫鈴人解之庖丁。       一、是什麼       Storm是一個分散式的資料流處理系統。它會把工作任務委託給不同型別的元件,每個

實時計算、處理系統簡介與簡單分析 .

一、實時計算一些基本概念 二、早期產品 1. IBM的StreamBase: StreamBase是IBM開發的一款商業流式計算系統,在金融行業和政府部門使用 2. Borealis:Brandeis University、Brown University和

資料入門環境搭建整理、資料入門系列教程合集、資料生態技術整理彙總、資料常見錯誤合集、資料的離線和實時資料處理流程分析

本篇文章主要整理了筆者學習大資料時整理的一些文章,文章是從環境搭建到整個大資料生態圈的常用技術整理,環境希望可以幫助到剛學習大資料到童鞋,大家在學習過程中有問題可以隨時評論回覆! 大資料生態圈涉及技術: Hadoop、MapReduce、HDFS、Hive、Hbase、Spark、Scala

spark學習五 DStream(spark資料處理

流資料的特點 與一般的檔案(即內容已經固定)型資料來源相比,所謂的流資料擁有如下的特點 1.   資料一直處在變化中 2.   資料無法回退 3.   資料一直源源不斷的湧進 DStream 如果要用一句話來概括SparkStreaming的處理思路的話,那就是"將連續的資

flink 處理中如何整合mybatis框架

flink 中自身雖然實現了大量的connectors,如下圖所示,也實現了jdbc的connector,可以通過jdbc 去操作資料庫,但是flink-jdbc包中對資料庫的操作是以ROW來操作並且對資料庫事務的控制比較死板,有時候操作關係型資料庫我們會非常懷念在java web應用開發中的非常優秀的myb

處理新秀Flink原理與實踐

大數據隨著大數據技術在各行各業的廣泛應用,要求能對海量數據進行實時處理的需求越來越多,同時數據處理的業務邏輯也越來越復雜,傳統的批處理方式和早期的流式處理框架也越來越難以在延遲性、吞吐量、容錯能力以及使用便捷性等方面滿足業務日益苛刻的要求。在這種形勢下,新型流式處理框架Flink通過創造性地把現代大規模並行處

storm 計算框架

大數據 storm 流式計算 一:storm 簡介 二:storm 的原理與架構 三:storm 的 安裝配置 四:storm 的啟動腳本 一: storm 的簡介: 1.1 storm 是什麽: 1. Storm是Twitter開源的分布式實時大數據處理框架,被業界稱為實時版Hadoo

python 使用yield進行數據的處理

進行 nbsp append out process search grep int pre demo:從文件中取包含字符“a”的5行數據做一次批處理!!! # coding: utf-8 import time def cat(f): for line in

【線上直播】處理新秀Flink原理與實踐

▼ FMI線上直播 分享主題:流式處理新秀Flink原理與實踐 內容大綱 隨著大資料技術的在各行各業的廣泛使用,要求能對海量資料進行實時處理的需求越來越多,同時資料處理的業務

資料實時處理引擎比較

從流處理的核心概念,到功能的完備性,再到周邊的生態環境,全方位對比了目前比較熱門的流處理框架:Spark,Flink,Storm和 Gearpump。結合不同的框架的設計,為大家進行深入的剖析。與此同時,從吞吐量和延時兩個方面,對各個框架進行效能評估。 主要技術點:流失資料處理,Spark,

一個一站式處理雲平臺解決方案

隨著網際網路、IT、大資料等技術的爆發式發展,企業系統產生的大量爆發資料。對於儲存在資料庫中的業務資料,可以通過DBus資料匯流排+Wormhole流式處理平臺的日誌方式實時地無侵入同步和落地到任意sink端,提供下游系統分析使用;對於業務系統產生的日誌資料,這些包含了業務高低峰、使用者軌跡、系

Flink 計算框架(學習一)

        開源流計算引擎,兼顧效能和可靠性。   Flink資料集型別         有邊資料集:最終不再發生改變         無邊資料集

Spark ML線上學習模型初步構建分析-Spark商業ML實戰

本套技術專欄是作者(秦凱新)平時工作的總結和昇華,通過從真實商業環境抽取案例進行總結和分享,並給出商業應用的調優建議和叢集環境容量規劃等內容,請持續關注本套部落格。版權宣告:禁止轉載,歡迎學習。QQ郵箱地址:[email protected],如有任何商業交流,可隨時聯絡。

#Wormhole# (開源)處理平臺設計思想

導讀:網際網路的迅猛發展使得資料不再昂貴,而如何從資料中更快速獲取價值變得日益重要,因此,資料實時化成為了一個大趨勢。越來越多的業務場景需要實時分析,以極低的延遲來分析實時資料並給出分析結果,從而提高業務效率,帶來更高價值。流式處理作為實時處理的一種重要手段,正在因資料實時化的發展而蓬勃發展。本文是

【線上直播】Flink—新一代計算框架

分享講師:黃躍峰                                        

kafka stream處理

本文轉發自技術世界,原文連結 http://www.jasongj.com/kafka/kafka_stream/ Kafka Stream背景 1 Kafka Stream是什麼 2 什麼是流式計算

資料Strom處理的ACK機制

package com.neusoft.storm.ack; import java.util.Map; import backtype.storm.task.OutputCollector; import backtype.storm.task.TopologyCont