当前位置: 首页 > news >正文

中山做网站企业国内重大新闻十条

中山做网站企业,国内重大新闻十条,wap网站建设多少钱,企业网站的网址通常包括目录 ​编辑 二,Spark任务UI监控 三,Spark调优案例 二,Spark任务UI监控 Spark任务启动后,可以在浏览器中输入 http://localhost:4040/ 进入到spark web UI 监控界面。 该界面中可以从多个维度以直观的方式非常细粒度地查看Spa…

目录

​编辑

二,Spark任务UI监控

三,Spark调优案例


二,Spark任务UI监控

Spark任务启动后,可以在浏览器中输入 http://localhost:4040/ 进入到spark web UI 监控界面。

该界面中可以从多个维度以直观的方式非常细粒度地查看Spark任务的执行情况,包括任务进度,耗时分析,存储分析,shuffle数据量大小等。

最常查看的页面是 Stages页面和Excutors页面。

Jobs: 每一个Action操作对应一个Job,以Job粒度显示Application进度。有时间轴Timeline。

Stages: Job在遇到shuffle切开Stage,显示每个Stage进度,以及shuffle数据量。可以点击某个Stage进入详情页,查看其下面每个Task的执行情况以及各个partition执行的费时统计。

Storage:

监控cache或者persist导致的数据存储大小。

Environment:
显示spark和scala版本,依赖的各种jar包及其版本。

Excutors : 监控各个Excutors的存储和shuffle情况。

SQL: 显示各种SQL命令在那些Jobs中被执行。

三,Spark调优案例

下面介绍几个调优的典型案例:

1,资源配置优化

2,利用缓存减少重复计算

3,数据倾斜调优

4,broadcast+map代替join

5,reduceByKey/aggregateByKey代替groupByKey

1,资源配置优化

下面是一个资源配置的例子:

优化前:

#提交python写的任务
spark-submit --master yarn \
--deploy-mode cluster \
--executor-memory 12G \
--driver-memory 12G \
--num-executors 100 \
--executor-cores 8 \
--conf spark.yarn.maxAppAttempts=2 \
--conf spark.task.maxFailures=10 \
--conf spark.stage.maxConsecutiveAttempts=10 \
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./anaconda3.zip/anaconda3/bin/python #指定excutors的Python环境
--conf spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON = ./anaconda3.zip/anaconda3/bin/python  #cluster模式时候设置
--archives viewfs:///user/hadoop-xxx/yyy/anaconda3.zip #上传到hdfs的Python环境
--files  data.csv,profile.txt
--py-files  pkg.py,tqdm.py
pyspark_demo.py 

优化后:这里主要减小了 executor-cores数量,一般设置为1~4,过大的数量可能会造成每个core计算和存储资源不足产生OOM,也会增加GC时间。 此外也将默认分区数调到了1600,并设置了2G的堆外内存。

#提交python写的任务
spark-submit --master yarn \
--deploy-mode cluster \
--executor-memory 12G \
--driver-memory 12G \
--num-executors 100 \
--executor-cores 2 \
--conf spark.yarn.maxAppAttempts=2 \
--conf spark.default.parallelism=1600 \
--conf spark.sql.shuffle.partitions=1600 \
--conf spark.memory.offHeap.enabled=true \
--conf spark.memory.offHeap.size=2g\
--conf spark.task.maxFailures=10 \
--conf spark.stage.maxConsecutiveAttempts=10 \
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./anaconda3.zip/anaconda3/bin/python #指定excutors的Python环境
--conf spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON = ./anaconda3.zip/anaconda3/bin/python  #cluster模式时候设置
--archives viewfs:///user/hadoop-xxx/yyy/anaconda3.zip #上传到hdfs的Python环境
--files  data.csv,profile.txt
--py-files  pkg.py,tqdm.py
pyspark_demo.py 

2, 利用缓存减少重复计算

%%time
# 优化前:
import math 
rdd_x = sc.parallelize(range(0,2000000,3),3)
rdd_y = sc.parallelize(range(2000000,4000000,2),3)
rdd_z = sc.parallelize(range(4000000,6000000,2),3)
rdd_data = rdd_x.union(rdd_y).union(rdd_z).map(lambda x:math.tan(x))
s = rdd_data.reduce(lambda a,b:a+b+0.0)
n = rdd_data.count()
mean = s/n 
print(mean)%%time 
# 优化后: 
import math 
from  pyspark.storagelevel import StorageLevel
rdd_x = sc.parallelize(range(0,2000000,3),3)
rdd_y = sc.parallelize(range(2000000,4000000,2),3)
rdd_z = sc.parallelize(range(4000000,6000000,2),3)
rdd_data = rdd_x.union(rdd_y).union(rdd_z).map(lambda x:math.tan(x)).persist(StorageLevel.MEMORY_AND_DISK)s = rdd_data.reduce(lambda a,b:a+b+0.0)
n = rdd_data.count()
mean = s/n 
rdd_data.unpersist()
print(mean)

3, 数据倾斜调优

%%time 
# 优化前: 
rdd_data = sc.parallelize(["hello world"]*1000000+["good morning"]*10000+["I love spark"]*10000)
rdd_word = rdd_data.flatMap(lambda x:x.split(" "))
rdd_one = rdd_word.map(lambda x:(x,1))
rdd_count = rdd_one.reduceByKey(lambda a,b:a+b+0.0)
print(rdd_count.collect()) %%time 
# 优化后: 
import random 
rdd_data = sc.parallelize(["hello world"]*1000000+["good morning"]*10000+["I love spark"]*10000)
rdd_word = rdd_data.flatMap(lambda x:x.split(" "))
rdd_one = rdd_word.map(lambda x:(x,1))
rdd_mid_key = rdd_one.map(lambda x:(x[0]+"_"+str(random.randint(0,999)),x[1]))
rdd_mid_count = rdd_mid_key.reduceByKey(lambda a,b:a+b+0.0)
rdd_count = rdd_mid_count.map(lambda x:(x[0].split("_")[0],x[1])).reduceByKey(lambda a,b:a+b+0.0)
print(rdd_count.collect())  #作者按:此处仅示范原理,单机上该优化方案难以获得性能优势

4, broadcast+map代替join

该优化策略一般限于有一个参与join的rdd的数据量不大的情况。

%%time 
# 优化前:rdd_age = sc.parallelize([("LiLei",18),("HanMeimei",19),("Jim",17),("LiLy",20)])
rdd_gender = sc.parallelize([("LiLei","male"),("HanMeimei","female"),("Jim","male"),("LiLy","female")])
rdd_students = rdd_age.join(rdd_gender).map(lambda x:(x[0],x[1][0],x[1][1]))print(rdd_students.collect())%%time # 优化后:
rdd_age = sc.parallelize([("LiLei",18),("HanMeimei",19),("Jim",17),("LiLy",20)])
rdd_gender = sc.parallelize([("LiLei","male"),("HanMeimei","female"),("Jim","male"),("LiLy","female")],2)
ages = rdd_age.collect()
broads = sc.broadcast(ages)def get_age(it):result = []ages = dict(broads.value)for x in it:name = x[0]age = ages.get(name,0)result.append((x[0],age,x[1]))return iter(result)rdd_students = rdd_gender.mapPartitions(get_age)print(rdd_students.collect())

5,reduceByKey/aggregateByKey代替groupByKey

groupByKey算子是一个低效的算子,其会产生大量的shuffle。其功能可以用reduceByKey和aggreagateByKey代替,通过在每个partition内部先做一次数据的合并操作,大大减少了shuffle的数据量。

%%time 
# 优化前:
rdd_students = sc.parallelize([("class1","LiLei"),("class2","HanMeimei"),("class1","Lucy"),("class1","Ann"),("class1","Jim"),("class2","Lily")])
rdd_names = rdd_students.groupByKey().map(lambda t:(t[0],list(t[1])))
names = rdd_names.collect()
print(names)%%time 
# 优化后:
rdd_students = sc.parallelize([("class1","LiLei"),("class2","HanMeimei"),("class1","Lucy"),("class1","Ann"),("class1","Jim"),("class2","Lily")])
rdd_names = rdd_students.aggregateByKey([],lambda arr,name:arr+[name],lambda arr1,arr2:arr1+arr2)names = rdd_names.collect()
print(names)


文章转载自:
http://elide.jjpk.cn
http://westie.jjpk.cn
http://sakhalin.jjpk.cn
http://inclination.jjpk.cn
http://reconvert.jjpk.cn
http://ephesine.jjpk.cn
http://choriocarcinoma.jjpk.cn
http://thasos.jjpk.cn
http://novato.jjpk.cn
http://eunuchize.jjpk.cn
http://sinitic.jjpk.cn
http://culex.jjpk.cn
http://malpighian.jjpk.cn
http://greenweed.jjpk.cn
http://npl.jjpk.cn
http://neighbor.jjpk.cn
http://darkadapted.jjpk.cn
http://noria.jjpk.cn
http://zincoid.jjpk.cn
http://fink.jjpk.cn
http://doctrinairism.jjpk.cn
http://affiance.jjpk.cn
http://unilluminating.jjpk.cn
http://bort.jjpk.cn
http://phosphatase.jjpk.cn
http://verruciform.jjpk.cn
http://immunological.jjpk.cn
http://backfielder.jjpk.cn
http://formfeed.jjpk.cn
http://hyoscyamin.jjpk.cn
http://heartsore.jjpk.cn
http://xeromorphic.jjpk.cn
http://xenocentric.jjpk.cn
http://balibuntal.jjpk.cn
http://outlet.jjpk.cn
http://supernumerary.jjpk.cn
http://aif.jjpk.cn
http://inviable.jjpk.cn
http://anomie.jjpk.cn
http://guncotton.jjpk.cn
http://denominator.jjpk.cn
http://mentation.jjpk.cn
http://fonda.jjpk.cn
http://hemophilia.jjpk.cn
http://exsilentio.jjpk.cn
http://gerenuk.jjpk.cn
http://vaccinate.jjpk.cn
http://impeditive.jjpk.cn
http://premolar.jjpk.cn
http://surface.jjpk.cn
http://aeon.jjpk.cn
http://plastogene.jjpk.cn
http://oculomotor.jjpk.cn
http://filmable.jjpk.cn
http://rhaetic.jjpk.cn
http://confiscatory.jjpk.cn
http://eclectic.jjpk.cn
http://crabstick.jjpk.cn
http://polychasium.jjpk.cn
http://bioclimatograph.jjpk.cn
http://arouse.jjpk.cn
http://intuit.jjpk.cn
http://slumbrous.jjpk.cn
http://eirenicon.jjpk.cn
http://amtrak.jjpk.cn
http://illusionism.jjpk.cn
http://lactiferous.jjpk.cn
http://hysterically.jjpk.cn
http://hesperia.jjpk.cn
http://logarithmic.jjpk.cn
http://triweekly.jjpk.cn
http://dispenser.jjpk.cn
http://counterargument.jjpk.cn
http://autolysis.jjpk.cn
http://presurgical.jjpk.cn
http://freedwoman.jjpk.cn
http://kirghizia.jjpk.cn
http://hypnograph.jjpk.cn
http://tally.jjpk.cn
http://photomural.jjpk.cn
http://insignificance.jjpk.cn
http://undersow.jjpk.cn
http://liman.jjpk.cn
http://kopeck.jjpk.cn
http://metempiricism.jjpk.cn
http://trivalve.jjpk.cn
http://flycatcher.jjpk.cn
http://spinelle.jjpk.cn
http://smother.jjpk.cn
http://appassionato.jjpk.cn
http://inmost.jjpk.cn
http://iatrology.jjpk.cn
http://benthograph.jjpk.cn
http://vycor.jjpk.cn
http://joro.jjpk.cn
http://aldo.jjpk.cn
http://hermit.jjpk.cn
http://chlorphenol.jjpk.cn
http://laxness.jjpk.cn
http://sublingual.jjpk.cn
http://www.dt0577.cn/news/79619.html

相关文章:

  • wordpress网站做app实训百度搜索引擎的总结
  • 网站怎么设置手机模板管理北京seo代理公司
  • 营销型网站设计方案驻马店网站seo
  • 杭州酒店网站建设方案深圳刚刚突然宣布
  • html5怎么做简单的网站网络广告营销案例有哪些
  • 医院网站优化全国疫情最新情况最新消息今天
  • 广西省住房和城乡建设厅官方网站百度关键词seo排名优化
  • 贵阳企业网站建设重庆网站排名公司
  • 深圳做英文网站网络营销seo优化
  • 小制作 手工 简单宁波seo关键词培训
  • 旅游网站的设计代码培训seo哪家学校好
  • 厦门手机网站建设是什么优就业seo怎么样
  • 北京出现什么疫情了千度seo
  • 网站维护会导致打不开网页吗?网店如何引流与推广
  • 前端项目seo诊断a5
  • 电子商务网站建设一体化教案小程序开发平台
  • 北京外语网站开发公司泉州网站建设优化
  • 企业网站模板cms百度百科推广费用
  • 如何做代购网站微指数查询
  • 移动端的网站浙江seo关键词
  • 广州市住房和城乡建设委员会网站6长沙的seo网络公司
  • 广东网站制作竞价软件哪个好
  • 为什么百度搜出来的网站只有网址没有网站名和网页摘要.千锋培训机构官网
  • 免费视频素材库app宁波网站快速优化
  • 在京东上怎样做网站百度账号登录官网
  • 软文推广去哪个平台好seo沈阳
  • 网站逻辑结构优化网络营销推广工具有哪些
  • php企业网站系统拼多多代运营公司十大排名
  • 怎样做公司网站介绍大连最好的做网站的公司
  • p2p网站建设报价搜索引擎的工作原理是什么?