91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

初識Spark入門

發布時間:2020-10-20 01:45:27 來源:腳本之家 閱讀:181 作者:EVAO_大個子 欄目:編程語言

1. Spark簡介

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

2. Spark是什么?

  • Apache Spark™ is a unified analytics engine for large-scale data processing.
  • 大規模數據集的統一分析引擎
  • Spark是一個基于內存的通用并行計算框架,目的是讓數據分析更加快速
  • Spark包含了大數據領域常見的各種計算框架
    • spark core(離線計算)
    • sparksql(交互式查詢)
    • spark streaming(實時計算)
    • Spark MLlib (機器學習)
    • Spark GraphX (圖計算)

3. Spark能代替hadoop嗎?

​ 不完全對

​ 因為我們只能使用spark core代替mr做離線計算,數據的存儲還是要依賴hdfs

​ Spark+Hadoop的組合,才是未來大數據領域最熱門的組合,也是最有前景的組合!​

4. Spark的特點

速度

  • 內存計算在速度上要比mr快100倍以上
  • 磁盤計算在速度上要比mr快10倍以上

容易使用

  • 提供了java scala python R語言的api接口

一站式解決方案

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

可以運行在任意的平臺

  • yarn
  • Mesos
  • standalone

5. Spark的缺點

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

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

6. Spark vs MR

6.1 mr的局限性

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

6.2 Spark解決了mr中的那些問題?

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

  • 通過spark中的RDD(Resilient distributed datasets)來進行抽象

只提供兩個操作,Map和Reduce,表達力欠缺

  • 在spark中提供了多種算子

一個Job只有Map和Reduce兩個階段

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

中間結果也放在HDFS文件系統中(速度慢)

  • 中間結果放在內存中,內存放不下了會寫入本地磁盤,而不是HDFS

延遲高,只適用Batch數據處理,對于交互式數據處理,實時數據處理的支持不夠

  • sparksql和sparkstreaming解決了上面問題

對于迭代式數據處理性能比較差

  • 通過在內存中緩存數據,提高迭代式計算的性能

==因此,Hadoop MapReduce會被新一代的大數據處理平臺替代是技術發展的趨勢,而在新一代的大數據處理平臺中,Spark目前得到了最廣泛的認可和支持==

7. Spark的版本

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

8. Spark單機版的安裝

準備安裝包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

配置環境變量

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

啟動單機版spark

start-all-spark.sh

查看啟動

http://uplooking01:8080

9. Spark分布式集群的安裝

配置spark-env.sh

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

配置slaves

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

分發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/

分發uplooking01上配置的環境變量

[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/

啟動spark

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

10. Spark高可用集群

先停止正在運行的spark集群

修改spark-env.sh

#注釋以下這兩行內容
#export SPARK_MASTER_IP=uplooking01
#export SPARK_MASTER_PORT=7077

添加內容

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

分發修改的[配置

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

啟動集群

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

11. 第一個Spark-Shell程序

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

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

12. Spark中的角色

Master

  • 負責接收提交的作業的請求
  • master負責調度資源(在woker中啟動CoarseGrainedExecutorBackend)

Worker

  • worker中的executor負責執行task

Spark-Submitter ===> Driver

  • 提交spark應用程序給master

13. Spark提交作業的大體流程

初識Spark入門

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

固阳县| 平昌县| 新巴尔虎右旗| 屯昌县| 阿拉善左旗| 苏尼特右旗| 玛多县| 三江| 龙门县| 宝丰县| 油尖旺区| 铅山县| 湟中县| 宁海县| 重庆市| 巴彦淖尔市| 邵东县| 泸州市| 禄丰县| 丹寨县| 磐石市| 绥滨县| 宿松县| 德化县| 高青县| 昆山市| 营口市| 循化| 莲花县| 邵阳市| 南昌县| 锡林郭勒盟| 任丘市| 蓝田县| 上栗县| 秀山| 广饶县| 九龙城区| 封丘县| 平安县| 达拉特旗|