08 2018 档案

摘要:数据量较少的情况下: scala> numrdd.sortBy(x=>x,false).take(3) res17: Array[Int] = Array(100, 99, 98) scala> numrdd.sortBy(x=>x,true).take(3) res18: Array[Int] = 阅读全文

posted @ 2018-08-31 17:53 打杂滴 阅读(763) 评论(0) 推荐(0) 编辑 |

摘要:hive> select * from account limit 10;OKaccount.accountname account.accid account.platid account.dateid account.createtime1004210 1004210 6 20180116 20 阅读全文

posted @ 2018-08-30 15:49 打杂滴 阅读(2527) 评论(0) 推荐(0) 编辑 |

摘要:CPU利用率 [root@host ~]# cat /proc/cpuinfo |grep "processor"|wc -l4 查看本机的核心数 最常用CPU监测工具是TOP,当然TOP输出是一个瞬间值,如果想获取精确的数据,需要持续关注一段时间。 [root@host ~]# top top - 阅读全文

posted @ 2018-08-23 15:00 打杂滴 阅读(159) 评论(0) 推荐(0) 编辑 |

摘要:Spark sql 对SQL语句的处理,先将SQL语句进行解析(parse)形成一个tree,然后使用Rule对Tree进行绑定,优化等处理过程,通过模式匹配对不同类型的节点采用不同操作。查询优化器是Catalyst,它负责处理查询语句的解析,绑定,优化和生成物理计划等过程,Catalyst是Spa 阅读全文

posted @ 2018-08-22 10:09 打杂滴 阅读(529) 评论(0) 推荐(0) 编辑 |

摘要:dataframe以RDD为基础的分布式数据集,与RDD的区别是,带有Schema元数据,即DF所表示的二维表数据集的每一列带有名称和类型,好处:精简代码;提升执行效率;减少数据读取; 如果不配置spark.deploy.recoveryMode选项为ZOOKEEPER,那么集群的所有运行数据在Ma 阅读全文

posted @ 2018-08-22 09:53 打杂滴 阅读(327) 评论(0) 推荐(0) 编辑 |

摘要:数据本地性 数据计算尽可能在数据所在的节点上运行,这样可以减少数据在网络上的传输,毕竟移动计算比移动数据代价小很多。进一步看,数据如果在运行节点的内存中,就能够进一步减少磁盘的I/O的传输。在spark中,数据本地性优先级从高到低为PROCESS_LOCAL>NODE_LOCAL>NO_PREF>R 阅读全文

posted @ 2018-08-17 13:26 打杂滴 阅读(4445) 评论(0) 推荐(0) 编辑 |

摘要:spark 运行架构基本由三部分组成,包括SparkContext(驱动程序),ClusterManager(集群资源管理器)和Executor(任务执行过程)组成。 其中SparkContext负责与ClusterManager通信,进行资源的申请.任务的分配.监控等,负责作业执行的声明周期管理。 阅读全文

posted @ 2018-08-16 10:51 打杂滴 阅读(787) 评论(0) 推荐(0) 编辑 |

摘要:spark运行结构图如下: spark基本概念 应用程序(application):用户编写的spark应用程序,包含驱动程序(Driver)和分布在集群中多个节点上运行的Executor代码,在执行过程中由一个或者多个作业组成。 驱动程序(dirver):spark中Driver即运行上述Appl 阅读全文

posted @ 2018-08-15 10:26 打杂滴 阅读(436) 评论(0) 推荐(0) 编辑 |

摘要:first count reduce collect take top takeOrdered aggregate fold lookup countByKey foreach foreachPartition sortBy 阅读全文

posted @ 2018-08-14 16:06 打杂滴 阅读(91) 评论(0) 推荐(0) 编辑 |

摘要:cache persist checkpoint 阅读全文

posted @ 2018-08-14 16:03 打杂滴 阅读(93) 评论(0) 推荐(0) 编辑 |

摘要:partitionBy mapValues flatMapValues combineByKey scala> aa.collect res77: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) scala> val mapRDD=aa.map(x 阅读全文

posted @ 2018-08-14 16:02 打杂滴 阅读(151) 评论(0) 推荐(0) 编辑 |

摘要:zip函数用于将两个RDD组合成Key/Value形式的RDD,这里默认两个RDD的partition数量以及元素数量都相同,否则会抛出异常。 scala> val aa=sc.makeRDD(1 to 10) aa: org.apache.spark.rdd.RDD[Int] = Parallel 阅读全文

posted @ 2018-08-14 15:45 打杂滴 阅读(404) 评论(0) 推荐(0) 编辑 |

摘要:Spark中提供了通用接口来抽象每个RDD,这些接口包括: 1.分区信息 2.依赖关系 3.函数,基于父RDD计算方法 4.划分策略和数据位置的元数据 阅读全文

posted @ 2018-08-14 15:12 打杂滴 阅读(90) 评论(0) 推荐(0) 编辑 |

摘要:分区是rdd的一个属性,每个分区是一个迭代器 分区器是决定数据数据如何分区 RDD划分成许多分区分布到集群的节点上,分区的多少涉及对这个RDD进行并行计算的粒度。用户可以获取分区数和设置分区数目,默认分区数为程序分配到的CPU核数。 spark中,RDD计算是以分区为单位的,而且计算函数都是在对迭代 阅读全文

posted @ 2018-08-13 14:35 打杂滴 阅读(208) 评论(0) 推荐(0) 编辑 |

摘要:filename=$(date "+%Y%m%d%H%M%S") //将type为list,键为bi0205导出文本,并保存到mysql导入导出目录redis-cli -h 服务器IP -p port -a username@password "bi0205" 1 10000000 >>/var/l 阅读全文

posted @ 2018-08-10 15:49 打杂滴 阅读(262) 评论(0) 推荐(0) 编辑 |

摘要:mapPartitions操作与 map类似,只不过映射的参数由RDD中的每一个元素变成了RDD中每一个分区的迭代器,如果映射过程需要频繁创建额外的对象,使用mapPartitions操作要比map操作效率高效许多。比如将RDD中的所有数据通过JDBC链接写入数据库,如果使用map函数,可能要为每个 阅读全文

posted @ 2018-08-09 17:43 打杂滴 阅读(458) 评论(0) 推荐(0) 编辑 |

摘要:scala> val personRDD=sc.textFile("/tmp/person.txt")personRDD: org.apache.spark.rdd.RDD[String] = /tmp/person.txt MapPartitionsRDD[39] at textFile at < 阅读全文

posted @ 2018-08-09 16:49 打杂滴 阅读(146) 评论(0) 推荐(0) 编辑 |

摘要:foreachPartition,在生产环境中,通常来说,都使用foreachPartition来写数据库的 使用批处理操作(一条SQL和多组参数) 发送一条SQL语句,发送一次 一下子就批量插入100万条数据。 用了foreachPartition算子之后,好处在哪里? 1、对于我们写的funct 阅读全文

posted @ 2018-08-03 16:42 打杂滴 阅读(2557) 评论(0) 推荐(0) 编辑 |

摘要:def ip2Long(ip: String): Long = { val fragments = ip.split("[.]") var ipNum = 0L for (i <- 0 until fragments.length){ ipNum = fragments(i).toLong | ip 阅读全文

posted @ 2018-08-03 15:57 打杂滴 阅读(248) 评论(0) 推荐(0) 编辑 |

摘要:Shared Variables Spark does provide two limited types of shared variables for two common usage patterns: broadcast variables and accumulators. Broadca 阅读全文

posted @ 2018-08-02 16:47 打杂滴 阅读(162) 评论(0) 推荐(0) 编辑 |

摘要:RDD运行原理 1.创建 RDD 对象 2.DAGScheduler模块介入运算,计算RDD之间的依赖关系。RDD之间的依赖关系就形成了DAG 3.每一个JOB被分为多个Stage,划分Stage的一个主要依据是当前计算因子的输入是否是确定的,如果是则将其分在同一个Stage,避免多个Stage之间 阅读全文

posted @ 2018-08-02 15:20 打杂滴 阅读(136) 评论(0) 推荐(0) 编辑 |

摘要:stage的划分是以shuffle操作作为边界的,遇到一个宽依赖就分一个stage 一个Job会被拆分为多组Task,每组任务被称为一个Stage就像Map Stage, Reduce Stage。Stage的划分在RDD的论文中有详细的介绍,简单的说是以shuffle和result这两种类型来划分 阅读全文

posted @ 2018-08-02 11:11 打杂滴 阅读(987) 评论(0) 推荐(0) 编辑 |

摘要:窄依赖:Narrow Dependency 父RDD和子RDD是一对一的依赖关系,如map,filter 宽依赖:Shuffle Dependency 本质就是shuffle。如reduceByKey,groupyByKey,父RDD一个分区数据给了子RDD的多个分区 存在shuffle就是宽依赖, 阅读全文

posted @ 2018-08-01 14:26 打杂滴 阅读(1505) 评论(0) 推荐(0) 编辑 |

随笔 - 224, 文章 - 0, 评论 - 1, 阅读 - 12万

Copyright © 2025 打杂滴
Powered by .NET 9.0 on Kubernetes

点击右上角即可分享
微信分享提示