欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

初識(shí)Spark入門

 更新時(shí)間:2019年06月14日 10:42:12   作者:EVAO_大個(gè)子  
這篇文章主要介紹了初識(shí)Spark入門,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1. Spark簡(jiǎn)介

  • 2009年,Spark誕生于伯克利大學(xué)的AMPLab實(shí)驗(yàn)室。最出Spark只是一個(gè)實(shí)驗(yàn)性的項(xiàng)目,代碼量非常少,屬于輕量級(jí)的框架。
  • 2010年,伯克利大學(xué)正式開(kāi)源了Spark項(xiàng)目。
  • 2013年6月,Spark成為了Apache基金會(huì)下的項(xiàng)目,進(jìn)入高速發(fā)展期。第三方開(kāi)發(fā)者貢獻(xiàn)了大量的代碼,活躍度非常高
  • 2014年2月,Spark以飛快的速度稱為了Apache的頂級(jí)項(xiàng)目,同時(shí)大數(shù)據(jù)公司Cloudera宣稱加大Spark框架的投入來(lái)取代MapReduce
  • 2014年4月,大數(shù)據(jù)公司MapR投入Spark陣營(yíng), Apache Mahout放棄MapReduce,將使用Spark作為計(jì)算引擎。
  • 2014年5月,Spark 1.0.0 發(fā)布。
  • 2015年~,Spark在國(guó)內(nèi)IT行業(yè)變得愈發(fā)火爆,越來(lái)越多的公司開(kāi)始重點(diǎn)部署或者使用Spark來(lái)替代MR2、Hive、Storm等傳統(tǒng)的大數(shù)據(jù)并行計(jì)算框架

2. Spark是什么?

  • Apache Spark™ is a unified analytics engine for large-scale data processing.
  • 大規(guī)模數(shù)據(jù)集的統(tǒng)一分析引擎
  • Spark是一個(gè)基于內(nèi)存的通用并行計(jì)算框架,目的是讓數(shù)據(jù)分析更加快速
  • Spark包含了大數(shù)據(jù)領(lǐng)域常見(jiàn)的各種計(jì)算框架
    • spark core(離線計(jì)算)
    • sparksql(交互式查詢)
    • spark streaming(實(shí)時(shí)計(jì)算)
    • Spark MLlib (機(jī)器學(xué)習(xí))
    • Spark GraphX (圖計(jì)算)

3. Spark能代替hadoop嗎?

​ 不完全對(duì)

​ 因?yàn)槲覀冎荒苁褂胹park core代替mr做離線計(jì)算,數(shù)據(jù)的存儲(chǔ)還是要依賴hdfs

​ Spark+Hadoop的組合,才是未來(lái)大數(shù)據(jù)領(lǐng)域最熱門的組合,也是最有前景的組合!​

4. Spark的特點(diǎn)

速度

  • 內(nèi)存計(jì)算在速度上要比mr快100倍以上
  • 磁盤計(jì)算在速度上要比mr快10倍以上

容易使用

  • 提供了java scala python R語(yǔ)言的api接口

一站式解決方案

  • spark core(離線計(jì)算)
  • spark sql(交互式查詢)
  • spark streaming(實(shí)時(shí)計(jì)算)
  • .....

可以運(yùn)行在任意的平臺(tái)

  • yarn
  • Mesos
  • standalone

5. Spark的缺點(diǎn)

JVM的內(nèi)存overhead太大,1G的數(shù)據(jù)通常需要消耗5G的內(nèi)存 (Project Tungsten 正試圖解決這個(gè)問(wèn)題 )

不同的spark app之間缺乏有效的共享內(nèi)存機(jī)制(Project Tachyon 在試圖引入分布式的內(nèi)存管理,這樣不同的spark app可以共享緩存的數(shù)據(jù))

6. Spark vs MR

6.1 mr的局限性

  • 抽象層次低,需要手工編寫代碼來(lái)完成,使用上難以上手
  • 只提供兩個(gè)操作,Map和Reduce,表達(dá)力欠缺
  • 一個(gè)Job只有Map和Reduce兩個(gè)階段(Phase), 復(fù)雜的計(jì)算需要大量的Job完成,Job之間的依賴關(guān)系是由開(kāi)發(fā)者自己管理的
  • 中間結(jié)果 (reduce的輸出結(jié)果) 也放在HDFS文件系統(tǒng)中
  • 延遲高,只適用Batch數(shù)據(jù)處理,對(duì)于交互式數(shù)據(jù)處理,實(shí)時(shí)數(shù)據(jù)處理的支持不夠
  • 對(duì)于迭代式數(shù)據(jù)處理性能比較差

6.2 Spark解決了mr中的那些問(wèn)題?

抽象層次低,需要手工編寫代碼來(lái)完成,使用上難以上手

  • 通過(guò)spark中的RDD(Resilient distributed datasets)來(lái)進(jìn)行抽象

只提供兩個(gè)操作,Map和Reduce,表達(dá)力欠缺

  • 在spark中提供了多種算子

一個(gè)Job只有Map和Reduce兩個(gè)階段

  • 在spark中可以有多個(gè)階段(stage)

中間結(jié)果也放在HDFS文件系統(tǒng)中(速度慢)

  • 中間結(jié)果放在內(nèi)存中,內(nèi)存放不下了會(huì)寫入本地磁盤,而不是HDFS

延遲高,只適用Batch數(shù)據(jù)處理,對(duì)于交互式數(shù)據(jù)處理,實(shí)時(shí)數(shù)據(jù)處理的支持不夠

  • sparksql和sparkstreaming解決了上面問(wèn)題

對(duì)于迭代式數(shù)據(jù)處理性能比較差

  • 通過(guò)在內(nèi)存中緩存數(shù)據(jù),提高迭代式計(jì)算的性能

==因此,Hadoop MapReduce會(huì)被新一代的大數(shù)據(jù)處理平臺(tái)替代是技術(shù)發(fā)展的趨勢(shì),而在新一代的大數(shù)據(jù)處理平臺(tái)中,Spark目前得到了最廣泛的認(rèn)可和支持==

7. Spark的版本

  • spark1.6.3 : scala的版本2.10.5
  • spark2.2.0 : scala的版本2.11.8(新項(xiàng)目建議使用spark2.x的版本)
  • hadoop2.7.5

8. Spark單機(jī)版的安裝

準(zhǔn)備安裝包spark-2.2.0-bin-hadoop2.7.tgz

tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /opt/
mv spark-2.2.0-bin-hadoop2.7/ spark

修改spark-env.sh

export JAVA_HOME=/opt/jdk
export SPARK_MASTER_IP=uplooking01
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=4
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=2g
export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop

配置環(huán)境變量

#配置Spark的環(huán)境變量
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

啟動(dòng)單機(jī)版spark

start-all-spark.sh

查看啟動(dòng)

http://uplooking01:8080

9. Spark分布式集群的安裝

配置spark-env.sh

[root@uplooking01 /opt/spark/conf] 
  export JAVA_HOME=/opt/jdk
  #配置master的主機(jī)
  export SPARK_MASTER_IP=uplooking01
  #配置master主機(jī)通信的端口
  export SPARK_MASTER_PORT=7077
  #配置spark在每個(gè)worker中使用的cpu核數(shù)
  export SPARK_WORKER_CORES=4
  #配置每個(gè)主機(jī)有一個(gè)worker
  export SPARK_WORKER_INSTANCES=1
  #worker的使用內(nèi)存是2gb
  export SPARK_WORKER_MEMORY=2g
  #hadoop的配置文件中的目錄
  export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop

配置slaves

[root@uplooking01 /opt/spark/conf]
  uplooking03
  uplooking04
  uplooking05

分發(fā)spark

[root@uplooking01 /opt/spark/conf] 
  scp -r /opt/spark uplooking02:/opt/
  scp -r /opt/spark uplooking03:/opt/
  scp -r /opt/spark uplooking04:/opt/
  scp -r /opt/spark uplooking05:/opt/

分發(fā)uplooking01上配置的環(huán)境變量

[root@uplooking01 /] 
  scp -r /etc/profile uplooking02:/etc/
  scp -r /etc/profile uplooking03:/etc/
  scp -r /etc/profile uplooking04:/etc/
  scp -r /etc/profile uplooking05:/etc/

啟動(dòng)spark

[root@uplooking01 /] 
 start-all-spark.sh

10. Spark高可用集群

先停止正在運(yùn)行的spark集群

修改spark-env.sh

#注釋以下這兩行內(nèi)容
#export SPARK_MASTER_IP=uplooking01
#export SPARK_MASTER_PORT=7077

添加內(nèi)容

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=uplooking03:2181,uplooking04:2181,uplooking05:2181 -Dspark.deploy.zookeeper.dir=/spark"

分發(fā)修改的[配置

scp /opt/spark/conf/spark-env.sh uplooking02:/opt/spark/conf
scp /opt/spark/conf/spark-env.sh uplooking03:/opt/spark/conf
scp /opt/spark/conf/spark-env.sh uplooking04:/opt/spark/conf
scp /opt/spark/conf/spark-env.sh uplooking05:/opt/spark/conf

啟動(dòng)集群

[root@uplooking01 /]
 start-all-spark.sh
[root@uplooking02 /]
 start-master.sh

11. 第一個(gè)Spark-Shell程序

spark-shell --master spark://uplooking01:7077 
#spark-shell可以在啟動(dòng)時(shí)指定spark-shell這個(gè)application使用的資源(總核數(shù),每個(gè)work上使用的內(nèi)存)
spark-shell --master spark://uplooking01:7077 --total-executor-cores 6 --executor-memory 1g

#如果不指定 默認(rèn)使用每個(gè)worker上全部的核數(shù),和每個(gè)worker上的1g內(nèi)存
sc.textFile("hdfs://ns1/sparktest/").flatMap(_.split(",")).map((_,1)).reduceByKey(_+_).collect

12. Spark中的角色

Master

  • 負(fù)責(zé)接收提交的作業(yè)的請(qǐng)求
  • master負(fù)責(zé)調(diào)度資源(在woker中啟動(dòng)CoarseGrainedExecutorBackend)

Worker

  • worker中的executor負(fù)責(zé)執(zhí)行task

Spark-Submitter ===> Driver

  • 提交spark應(yīng)用程序給master

13. Spark提交作業(yè)的大體流程


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JAVA回顧:封裝,繼承,多態(tài)

    JAVA回顧:封裝,繼承,多態(tài)

    這篇文章主要介紹了java封裝繼承多態(tài),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • 詳解Java實(shí)現(xiàn)緩存(LRU,FIFO)

    詳解Java實(shí)現(xiàn)緩存(LRU,FIFO)

    本篇文章主要介紹了詳解Java實(shí)現(xiàn)緩存(LRU,FIFO) ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • 如何通過(guò)Kaptcha在Web頁(yè)面生成驗(yàn)證碼

    如何通過(guò)Kaptcha在Web頁(yè)面生成驗(yàn)證碼

    這篇文章主要介紹了如何通過(guò)Kaptcha在Web頁(yè)面生成驗(yàn)證碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Spring Boot自定義錯(cuò)誤視圖的方法詳解

    Spring Boot自定義錯(cuò)誤視圖的方法詳解

    這篇文章主要介紹了Spring Boot自定義錯(cuò)誤視圖的方法詳解,需要的朋友可以參考下
    2020-08-08
  • Java的項(xiàng)目構(gòu)建工具M(jìn)aven的配置和使用教程

    Java的項(xiàng)目構(gòu)建工具M(jìn)aven的配置和使用教程

    Maven是Java世界中的項(xiàng)目管理和構(gòu)建自動(dòng)化工具,基于POM項(xiàng)目對(duì)象模型的思想,下面我們就具體來(lái)看一下具體的Java的項(xiàng)目構(gòu)建工具M(jìn)aven的配置和使用教程:
    2016-05-05
  • java的泛型你真的了解嗎

    java的泛型你真的了解嗎

    這篇文章主要為大家詳細(xì)介紹了java的泛型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Spring MVC 執(zhí)行流程的簡(jiǎn)述

    Spring MVC 執(zhí)行流程的簡(jiǎn)述

    這篇文章主要介紹了Spring MVC 執(zhí)行流程的簡(jiǎn)述,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java中ModelMapper?的高級(jí)使用

    Java中ModelMapper?的高級(jí)使用

    本文主要介紹了Java中ModelMapper?的高級(jí)使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java 實(shí)現(xiàn)將List平均分成若干個(gè)集合

    Java 實(shí)現(xiàn)將List平均分成若干個(gè)集合

    這篇文章主要介紹了Java 實(shí)現(xiàn)將List平均分成若干個(gè)集合,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • java異步調(diào)用的4種實(shí)現(xiàn)方法

    java異步調(diào)用的4種實(shí)現(xiàn)方法

    日常開(kāi)發(fā)中,會(huì)經(jīng)常遇到說(shuō),前臺(tái)調(diào)服務(wù),本文主要介紹了java異步調(diào)用的4種實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論