1. Spark簡介
為企業(yè)提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)營銷推廣、競價托管、品牌運(yùn)營等營銷獲客服務(wù)。成都創(chuàng)新互聯(lián)公司擁有網(wǎng)絡(luò)營銷運(yùn)營團(tuán)隊(duì),以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗(yàn)助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術(shù)實(shí)力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認(rèn)可!
2. Spark是什么?
3. Spark能代替hadoop嗎?
不完全對
因?yàn)槲覀冎荒苁褂胹park core代替mr做離線計(jì)算,數(shù)據(jù)的存儲還是要依賴hdfs
Spark+Hadoop的組合,才是未來大數(shù)據(jù)領(lǐng)域最熱門的組合,也是最有前景的組合!
4. Spark的特點(diǎn)
速度
容易使用
一站式解決方案
可以運(yùn)行在任意的平臺
5. Spark的缺點(diǎn)
JVM的內(nèi)存overhead太大,1G的數(shù)據(jù)通常需要消耗5G的內(nèi)存 (Project Tungsten 正試圖解決這個問題 )
不同的spark app之間缺乏有效的共享內(nèi)存機(jī)制(Project Tachyon 在試圖引入分布式的內(nèi)存管理,這樣不同的spark app可以共享緩存的數(shù)據(jù))
6. Spark vs MR
6.1 mr的局限性
6.2 Spark解決了mr中的那些問題?
抽象層次低,需要手工編寫代碼來完成,使用上難以上手
只提供兩個操作,Map和Reduce,表達(dá)力欠缺
一個Job只有Map和Reduce兩個階段
中間結(jié)果也放在HDFS文件系統(tǒng)中(速度慢)
延遲高,只適用Batch數(shù)據(jù)處理,對于交互式數(shù)據(jù)處理,實(shí)時數(shù)據(jù)處理的支持不夠
對于迭代式數(shù)據(jù)處理性能比較差
==因此,Hadoop MapReduce會被新一代的大數(shù)據(jù)處理平臺替代是技術(shù)發(fā)展的趨勢,而在新一代的大數(shù)據(jù)處理平臺中,Spark目前得到了最廣泛的認(rèn)可和支持==
7. Spark的版本
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
啟動單機(jī)版spark
start-all-spark.sh
查看啟動
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在每個worker中使用的cpu核數(shù) export SPARK_WORKER_CORES=4 #配置每個主機(jī)有一個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/
啟動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
啟動集群
[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使用的資源(總核數(shù),每個work上使用的內(nèi)存) spark-shell --master spark://uplooking01:7077 --total-executor-cores 6 --executor-memory 1g #如果不指定 默認(rèn)使用每個worker上全部的核數(shù),和每個worker上的1g內(nèi)存
sc.textFile("hdfs://ns1/sparktest/").flatMap(_.split(",")).map((_,1)).reduceByKey(_+_).collect
12. Spark中的角色
Master
Worker
Spark-Submitter ===> Driver
13. Spark提交作業(yè)的大體流程
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。