最近的工作有很大一部分是在做用户画像。
画像读取的维度bitmap动辄几百MB,甚至存在部分GB级别的。而我们的Yarn集群规模比较小,内存总计只有100多GB。开发调试时遇到最多的问题除了Task not serializable就是heap out of memeory了。
我们使用的Spark版本是1.6.3。yarn集群使用的jdk版本是1.7。
如何解决堆内存溢出…
最近的工作有很大一部分是在做用户画像。
画像读取的维度bitmap动辄几百MB,甚至存在部分GB级别的。而我们的Yarn集群规模比较小,内存总计只有100多GB。开发调试时遇到最多的问题除了Task not serializable就是heap out of memeory了。
我们使用的Spark版本是1.6.3。yarn集群使用的jdk版本是1.7。
如何解决堆内存溢出…
这一节将主要介绍资源调优,或者说是如何充分利用集群资源。然后再说一下如何对并发度进行优化,这是job性能参数中最难也是最重要的部分。最后我们将了解一些数据自身的表现形式:Spark读取时数据在磁盘上的保存形式(如Apache Avro和 Apache Parquet),以及缓存时或系统内移动时数据在内存中的形式。
在Spark的用户反馈中经常提到一类问题…
在开始写spark代码或者翻阅spark文档的时候,会遇到一些诸如“transformation”,“action”和“RDD”这样的术语。了解这些术语对于编写spark代码是至关重要的。
类似的,当写的spark程序执行失败的时候或者尝试通过Spark WebUI来研究提交的应用为什么执行时间过长的时候,可能会遇到另外一些术语,如“job”、“stage”和“…
调整partition可以直接执行如下命令:
|
1 |
./kafka-topics.sh --alter --topic topicName --zookeeper $ZK_HOST_NODE --partitions partitionNum |
注意替换topicName、$ZK_HOST_NODE和partitionNum三个参数。
部署Druid服务时遇到了启动失败的异常。相关的节点是historical和broker。异常信息如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
2018-07-12T09:01:30,523 ERROR [main] io.druid.cli.CliHistori |
使用IDEA时,自动生成的类注释中的用户名默认为操作系统当前的用户名。这样的用户名通常和实际要用的用户名是不一致的。
已知的有两种调整方式。
第一种方式在File -> Settings -> Editor -> File and Code Templates –> Class –>Includes –>File Header 添加固定的author注释即…
在idea中使用Gradle的时候遇到了一个奇怪的异常:获取公司内部repository中的包是正常的,但是获取jar源文件的时候却遇到了一些异常。
异常信息可以通过执行“Refresh All Gradle Projects”操作,在Gradle View中看到。
异常信息简略如下:
|
1 |
org.gradle.internal.resource.transport.htt |
在工作中使用spark的一个主要内容就是从多个路径下搜集数据并进行处理。常用的代码大致如下:
|
1 2 3 |
val paths = obtainPaths() val rdd = paths.map(readData).reduce(_ ++ _) & |