亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Spark該怎樣入門

發布時間:2021-12-17 11:43:26 來源:億速云 閱讀:177 作者:柒染 欄目:編程語言

本篇文章為大家展示了Spark該怎樣入門,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

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/jdkexport SPARK_MASTER_IP=uplooking01export SPARK_MASTER_PORT=7077export SPARK_WORKER_CORES=4export SPARK_WORKER_INSTANCES=1export SPARK_WORKER_MEMORY=2gexport HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop

配置環境變量

#配置Spark的環境變量export SPARK_HOME=/opt/sparkexport 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/confscp /opt/spark/conf/spark-env.sh uplooking03:/opt/spark/confscp /opt/spark/conf/spark-env.sh uplooking04:/opt/spark/confscp /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

上述內容就是Spark該怎樣入門,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

涞水县| 鄂托克前旗| 那坡县| 高平市| 萝北县| 阿鲁科尔沁旗| 长沙市| 凯里市| 广元市| 九江县| 阿城市| 泸西县| 石门县| 张家口市| 合阳县| 永城市| 湖北省| 平顶山市| 阳春市| 美姑县| 玉门市| 米林县| 温宿县| 比如县| 郯城县| 新晃| 安乡县| 锡林郭勒盟| 辽源市| 轮台县| 遵义市| 嘉善县| 宁河县| 从江县| 桓台县| 板桥市| 额敏县| 沅江市| 建水县| 克山县| 文成县|