Danner Blog

Took the sourest lemon that life has to offer and turned it into something resembling lemonade.

初识 HBase

介绍 Google BigTable 的开源实现 分布式 NoSQL数据库 列存储 基于 HDFS和 Zookeeper 适用场景 NoSQL = Not Only SQL 适用 存储格式: 半结构化数据, 结构化数据存储, Key-Value存储 数据版本: 固定集合(多版本) , 定时删除(TTL) 更新:...

Flink CDH版本编译

https://ci.apache.org/projects/flink/flink-docs-stable/flinkDev/building.html 环境 maven:3.x就可以,但最好是 3.2.5,不同版本对编译有影响 java:至少 ` jdk1.8.0_111, 否则报flink flink-table-api-java: Co...

Spark 持久化

Spark 中的 RDD 若没有做持久化处理,那么每用一次该 RDD 都要从 source 开始重新计算 val inputFile = "input/user.txt" val rdd = sc.textFile(inputFile) val seriRdd = rdd.flatMap(_.split(" ")).map(x => { (TestSerialization...

CDH 动态资源池

​ 理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源。在Yarn中,负责给应用分配资源的就是 Scheduler。其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景。为此,Yarn提供了多种调度器和可配置的策略供我们选择。 在Yarn中有三种调度器可以...

CDH 错误集

kafka console-consumer 无法消费 msg 安装好 kafka 后,命令行测试创建主题,生产数据都没有问题,但consumer 始终无法接收到数据。kafka log(/var/local/kafka/data) 下主题文件存在且有数据,--desctibe 查看主题状态读正常。在log 目录 /var/log/kafka 下查看日志发现这么一行 2019-11-0...

Spark Serialization

https://spark.apache.org/docs/latest/tuning.html#data-serialization Spark 需要在 Executor 和 Driver 之间传输数据,必然是涉及到序列化的问题。序列化后数据的大小和反序列执行的速度肯定对整个 Spark 作业有很大的影响。Spark 提供两种序列化方式: java 序列化:spark 默...

Spark shuffle

Spark shuffle 的概念与 hadoop shuffle 不同 在 Hadoop 中,shuffle 是发送在 map -> reduce 之间的数据传输,而在 Spark 中 shuffle 是发生在 窄依赖 -> 宽依赖 之间。那窄依赖、宽依赖是如何定义? 窄依赖:父 RDD 的每个分区只被一个 子 RDD 的分区使用 宽依赖:父 RDD 的每...

spark-shell 脚本剖析

spark-shell 经常接触,其执行步骤却没怎么了解过。本节一起去了解下 spark-shell 的执行步骤。 spark-shell --master yarn spark-shell # spark-shell cygwin=false case "$(uname)" in CYGWIN*) cygwin=true;; esac # Enter posix mode f...

Spark 内存管理

Spark 是基于内存的分布式计算引擎,很显然其内存管理是很重要的。在整个Spark 作业中,涉及到 Driver 端和 Executor 端。Driver 端的内存管理与普通JVM 进程差别不大,详情看下图。 本文具体来看看 Executor 端的内存管理。在详细分析之前,先看看Spark 作业提交时有关的参数设置 参数 描述 ...

Spark SQL 窗口函数(译)

https://databricks.com/blog/2015/07/15/introducing-window-functions-in-spark-sql.html 窗口函数 来两个小需求来介绍窗口函数强大的功能 求每个标签下,收入排行最高和第二高 求每个标签下,每个产品与收入最高的产品的收入差距 需求一 实际需求就是分组排序(注意不是求 TopN,所...