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

网站建设目标与期望品牌公司设计

网站建设目标与期望,品牌公司设计,照明网站模板,网站右侧信息跟随左侧菜单栏变化Spark读取JDBC调优#xff0c;如何调参一、场景构建二、参数设置1.灵活运用分区列实际问题#xff1a;工作中需要读取一个存放了三四年历史数据的pg数仓表#xff08;缺少主键id#xff09;#xff0c;需要将数据同步到阿里云 MC中#xff0c;Spark在使用JDBC读取关系型数… Spark读取JDBC调优如何调参一、场景构建二、参数设置1.灵活运用分区列实际问题工作中需要读取一个存放了三四年历史数据的pg数仓表缺少主键id需要将数据同步到阿里云 MC中Spark在使用JDBC读取关系型数据库时默认只开启一个task去执行性能低下因此需要通过设置一些参数来提高并发度。一定要充分理解参数的含义否则可能会因为配置不当导致数据倾斜翻看了网络上好多相关介绍都沾边。下边总结一下 您是菜鸟就好好学习您是大佬欢迎提出修改意见 一、场景构建 以100行数据为例实际307983条 创建表 CREATE TABLE IF NOT EXISTS test(good_id STRING ,title STRING ,sellcount BIGINT,salesamount Double )COMMENT 测试表 PARTITIONED BY (dt STRING COMMENT 分区字段 );插入数据 insert into test partition (dt 202001) values (1001,卫衣,1,100.1),(1002,卫裤,2,101.2),(1003,拖鞋,3,10.3)...,(1100,帽子,100,19.23)二、参数设置 配置文件示例 jdbc: jdbcoptions.url: jdbc:postgresql://xxx.xxx.xxx.xxx:8000/postgresoptions.user: xxxxxxoptions.password: xxxxxxoptions.driver: org.postgresql.Driverinput:- moduleClass: JDBC: *jdbcoptions.dbtable: SELECT *,cast(good_id as bigint)*1%6 mo FROM test.test where dt 202001options.fetchsize: 100options.partitionColumn: mo # 分区列一般为自增id下边解释下为啥用mooptions.numPartitions: 6 #分区数options.lowerBound: 0options.mytime: ${yyyy}-${MM}-${dd}options.upperBound: 6 # 该值设置为和分区列最大值差不多的值resultDF: df提交spark配置 spark-submit \--class xx.xxx.xxx.xxx \--master local[*] \--num-executors 6 \--executor-cores 1 \--executor-memory 2G \--driver-memory 4G \/root/test/xxx.jar \-p xxx/xxx.yaml -cyctime $cyctimeoptions.fetchsize一次性读取的数据条数按集群规模例64核128G一次1000条阿里云Spark集群链接不了华为云pg数仓我开了一台独立机器8核16G一次100条 options.partitionColumn分区列必须是bigint类型 options.numPartitions设置分区数最好和spark提交的executors数一致上文中spark任务数为6分区数也为6 options.lowerBound分区开始值 options.upperBound分区结束值numPartitions、lowerBound、upperBound这三个必须同时设置每个分区的数据量计算公式为upperBound / numPartitions - lowerBound / numPartitions任务运行时间看的是最长的那个任务所以要尽可能保证每一个分区的数据量差不多 官方配置文档 1.灵活运用分区列 有的小伙伴就该思考为啥不用自增id做分区列呢 因为实际生产环境中一是不需要二是创建表忽略了自增id等等。 为啥要新做一列mo而不直接将商品id转bigint用呢 算是一个补救措施新做一个数据列在读取过程用mo做shufflemo是商品id强转为bigint后对6取膜结果为0-5共6种可能提高了shuffle的效率计算分区的数据量6 / 6 - 0 / 6 1也就是说分区值为01234大于5对应6个任务6个核心。 下面是运行shuffle结束后的截图可以看到每一个task获取的数据量都比较均匀 下面来看一个错误的案例 上图配置就会导致数据倾斜 numPartitions10 lowerBound0 upperBound100 表的数据量是1000。 根据计算公式每个分区的数据量是100/10-0/1010分10个区那么前9个分区数据量都是10但最后一个分区数据量却达到了910即数据倾斜了所以upperBound-lowerBound要和表的分区字段最大值差不多 有啥需要优化的欢迎评论纠正
http://www.hkea.cn/news/14579512/

相关文章:

  • 国外注册机网站腾讯云服务器用什么软件做网站
  • 官网建站平台购物网站开发平台
  • 秦皇岛企业网站建设网页传奇游戏攻略
  • 大学 两学一做专题网站网站建设与实现毕业答辩ppt
  • 网站网站开发设计营销型企业网站案例分析
  • 网站开发公司广州网站开发需要什么人才
  • 青岛高端网站开发多商户商城小程序源码
  • 公司网站建立流程仿煎蛋wordpress主题
  • 网站建设项目实训报告杭州哪家做网站好
  • 网络推广企业网站推广策划书廊坊网站建设-纵横网络+网站
  • 怎么做网站内容调研专门做餐厅设计的网站
  • 龙岩网站开发企业网站建设流程步骤
  • 中卫市建设局网站网站页面描述怎么写
  • 健康养生网站模板服装网站怎么做的
  • 唐山建讯网站诸城 网站 建设
  • 什么是指定网站的域名营销型网站举例
  • 网站关键字网页建设培训机构
  • 建设网站 买了域名还要什么国内高端网站
  • 游戏设计师网站如何免费搭建自己的网站
  • 做网站费用怎么付旅游网站怎么做才能被关注
  • 广州哪家公司做网站多少钱英语怎么说
  • 有什么免费ppt模板网站做视频网站的服务器
  • seo网站优化软件价格北京营销网站建设公司
  • 做网站可以提些什么意见怎么吧自己电脑做网站
  • 贷款织梦网站模版服务器建设网站软件下载
  • 乡村建设网站淘宝怎样优化关键词
  • 自助网站能在百度上搜到么学设计的网站都有哪些
  • 网页范例温州seo排名优化
  • 试玩平台网站怎么做贵州网站推广
  • php网站搭建环保公司网站模板