关闭

spark join shuffle 数据文件的读取

spark join shuffle 数据文件的读取我们看下在shuffle过程中数据文件的读取过程中调用的类对象// 下面就是对这个shuffler中的分片数据进行读取并进行相关的aggregate操作了 val blockFetcherItr = new ShuffleBlockFetcherIterator( context, blockManager.shuffleClient,...
阅读(45) 评论(0)

spark join shuffle 数据读取的过程

spark join shuffle 数据读取的过程在spark中,当数据要shuffle时,这个拉取过程RDD是怎么和ShuffleMapTask 关联起来的。 在CoGroupedRDD通过调用如下函数去读取指定分区的数据 SparkEnv.get.shuffleManager .getReader(shuffleDependency.shuffleHandle, split.in...
阅读(39) 评论(0)

spark RDD join的核心过程

spark RDD join的核心过程spark join的过程是查询过程中最核心的过程,怎么做到实现两个表的关联查询耗费资源最少。可看源码如下 join的实现在 PairRDDFunctions类当中。def join[W](other: RDD[(K, W)], partitioner: Partitioner): RDD[(K, (V, W))] = self.withScope { thi...
阅读(39) 评论(0)

spark task 任务状态管理

spark task 任务状态管理spark task 的任务状态经常进行更新,当任务完成后,这个任务是怎么取得结果的呢,看下面的代码流程def statusUpdate(tid: Long, state: TaskState, serializedData: ByteBuffer) { var failedExecutor: Option[String] = None // 进行状态的更新 了 s...
阅读(32) 评论(0)

spark RDD action job的提交过程之 taskSchedule

spark RDD action job的提交过程之 taskSchedule 在TaskSchedulerImpl中,有接收task 任务的接口 override def submitTasks(taskSet: TaskSet) { // 提交dag task 任务了 val tasks = taskSet.tasks logInfo("Adding task set " + taskSet...
阅读(39) 评论(0)

spark RDD action job的提交过程

spark RDD action job的提交过程 以RDD的 count()方法的例子为例,来演示 dag生成提交的过程。def count(): Long = sc.runJob(this, Utils.getIteratorSize _).sum 上面直接调用到 runJob的方法 def runJob[T, U: ClassTag]( rdd: RDD[T], func: (Tas...
阅读(46) 评论(0)

spark work ResultTask 源码分析

spark work task 源码分析rdd在各个 CoarseGrainedExecutorBackend 进程中,经典的业务执行过程private[spark] class ResultTask[T, U]( stageId: Int, stageAttemptId: Int, taskBinary: Broadcast[Array[Byte]], partition: Partition,...
阅读(42) 评论(0)

spark work task 源码分析

spark work task 源码分析spark 的task 主要以ShuffleMapTask为主,这个类就是在 任务的driver中进行生成然后序列化传输到 work 的CoarseGrainedExecutorBackend进程中进行执行。...
阅读(72) 评论(0)

spark 业务执行进程

spark 业务执行进程spark的task的业务执行进程的入口类为 CoarseGrainedExecutorBackend通过接收相关的参数调用如下的入口,然后进行创建相关的类...
阅读(51) 评论(0)

java concurrent 包的基石 volatile 和 锁的原理分析

java concurrent 包的基石 volatile 和 锁的原理分析在concurrent包中,用到很多的锁,如 ReentrantLock锁,里面的核心原理是通过 volatile 的和cas进行操作的。volatile 的读语义和写语义的核心就是禁止指令的重排序。 由于在编译器和处理器会对指令进行重排序,进行指令的优化,但有时这种重排序会导致计算结果的不一致性。 所以由此涉及到数...
阅读(413) 评论(0)

phoenix 如何优化成使用索引进行查询源码分析

phoenix 如何优化成使用索引进行查询源码分析在 phoenix 生成执行计划时,最后会进行执行计划的优化,在优化过程中,会根据当前的sql中有没有hint的 提示使用索引,或者查询中用到了索引字段,也会自动转换成用索引表进行关联查询。在下面的方法当中,会根据已有的执行计划,进行优化QueryOptimizer.getApplicablePlans//根据当前的数据执行计划,优化成用索引进行数...
阅读(1210) 评论(0)

phoenix 写二级索引的触发机制

phoenix 写二级索引的触发机制查看org.apache.phoenix.hbase.index.Indexer 类当中 在该类中覆盖了 preBatchMutate方法,实现预先写数据到hbase中的拦截操作。@Override public void preBatchMutate(ObserverContext c, Mini...
阅读(1267) 评论(0)

phoenix local index的使用和join table的原理

phoenix local index的使用和join table的原理下面分析一下索引的协处理器的代码流程UngroupedAggregateRegionObserver.doPostScannerOpen //拿出在scan属性中的数据 byte[] localIndexBytes = scan.getAttribute(LOCAL_INDEX_BUILD); List<Inde...
阅读(386) 评论(0)

phoenix local index 本地索引分裂源码分析

phoenix 本地索引分裂源码分析phoenix的表有时要建立二级索引,这里可以分为local和global,下面分析一下当数据表进行分拆时,对应的该本地索引表 的拆分情况。(本地索引表和数据表对应的数据区间保证存放在同一个regionserver中)。LocalIndexSplitter 类分析public void preSplitBeforePONR(ObserverContext<Reg...
阅读(941) 评论(0)

phoenix select 查询源码分析

phoenix select 查询源码分析如下执行一个Sql的查询语句ResultSet rst = conn.createStatement().executeQuery("select * from test.person"); 创建的statement对象为 PhoenixStatement,然后进入到这个对象的方法中进行查询@Override public ResultSet execut...
阅读(1386) 评论(0)

phoenix upsert 源码分析

phoenix查询源码分析。在之前的driver源码分析的基础上,现在分析一下UPSERT的流程SET_ASYNC_CREATED_DATE = "UPSERT INTO " + SYSTEM_CATALOG_SCHEMA + ".\"" + SYSTEM_CATALOG_TABLE + " PreparedStatement setAsync = connection.prepareState...
阅读(847) 评论(2)

phoenix预创建表拆分key的源码分析

phoenix预创建表拆分key的源码分析在 ConnectionQueryServicesImpl.createTableInternal 方法当中,要分析表是否需要预先分区, if (parent != null && tableType == PTableType.INDEX && indexType == IndexType.LOCAL) { tableProps.put(MetaDat...
阅读(413) 评论(0)

phoenix jdbc driver查询源码分析

phoenix driver查询源码分析首先 phoenix 支持jbbc协议,则就要按装jdbc的协议接口进行处理。 首先要实现driver PhoenixDriver,这个driver负责连接的创建,和连接到目标 服务器端的链接创建。 在该类中有一个创建链接的方法protected final Connection createConnection(String url, Properti...
阅读(1270) 评论(0)

hbase 权限控制源码分析

–hbase 权限控制源码分析在hbase中可以通过 grant ‘alice’, ‘RW’, ‘hbase_perf.table20’ 命令把一个读写权限分配给一个命名空间下面的一个表其实是通过rpc 调用发送到 AccessController 这个类当中可以通过查看该类的继续关系 public class AccessController extends BaseMasterAndR...
阅读(1488) 评论(0)

hbase客户端源码分析--deletetable

–hbase 删除表HBaseAdmin admin = new HBaseAdmin(conf); 可以查看源码,其实低层也是调用创建 HConnectionImplementation 对象进行连接管理的admin.disableTable(tableName); 然后失效一个表, 里面类似于delete操作一下,创建一个回调临时对象DisableTableResponse response...
阅读(344) 评论(0)
39条 共2页1 2 下一页 尾页
    个人资料
    • 访问:22280次
    • 积分:572
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:1篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论