spark
mllhxn
这个作者很懒,什么都没留下…
展开
-
yarn 内存计算
Spark的Excutor的Container内存有两大部分组成: 堆外内存和Excutor内存 堆外内存(spark.yarn.executor.memoryOverhead) 主要用于JVM自身的开销。 默认: MAX(executorMemory * 0.10, 384m) Excutor内存(spark.executor.memory) Execution: ...原创 2018-08-09 15:41:34 · 1439 阅读 · 0 评论 -
Spark性能优化之道——解决Spark数据倾斜(Data Skew)的N种姿势
原创文章,转载请务必将下面这段话置于文章开头处。本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/spark/skew/摘要本文结合实例详细阐明了Spark数据倾斜的几种场景以及对应的解决方案,包括避免数据源倾斜,调整并行度,使用自定义Partitioner,使用Map侧Join代替Reduce侧Join,给倾斜Key加上随机前转载 2017-03-31 18:31:30 · 320 阅读 · 0 评论 -
case5
hbaseContext.bulkPut[Row](rddFromSql.rdd, tableName, (putRecord) => { val put = new Put(Bytes.toBytes(putRecord.getString(0))) put.add(Bytes.toBytes(columnFamily1),Bytes.toB原创 2016-09-26 23:55:16 · 440 阅读 · 0 评论 -
spark mllib 实战
package com.userportraitimport org.apache.spark.mllib.clustering.BisectingKMeansimport org.apache.spark.mllib.linalg.Vectorsimport org.apache.spark.sql.SaveModeimport org.apache.spark.sql.hive.HiveC原创 2016-10-04 12:08:23 · 1267 阅读 · 0 评论 -
spark 问题
1: conf.set(“spark.kryoserializer.buffer.max”,”100m”) 2:testDataRdd.map(p =>Person (p._1,p._2,sameModel.predict(p._3).toInt)).toDF()这样写占容易 java.lang.OutOfMemoryError: Java heap space,改成下面这样sameModel.原创 2016-10-31 11:58:35 · 335 阅读 · 0 评论 -
在Spark中使用Pivot重塑数据
转:http://geek.csdn.net/news/detail/57030语法在为透视操作进行pull请求的过程中,我进行了许多相关研究,其中一项便是对其它优秀工具的语法进行比较,目前透视语法格式多种多样,Spark 透视功能最主要的两个竞争对手是pandas(Python语言)和reshape2(R语言)。 我们提出Spark透视操作自有的语法格式,它能够与DataFrame上现有其它聚合转载 2016-10-31 16:28:30 · 10246 阅读 · 0 评论 -
spark mllib 归一化
val testdata=sql("select * from test").map{ line => line.toSeq.map {_.toString}.toArray }.map{ line =>(line(0),line(1),Vectors.dense(line.drop(1).drop(1).map(_.toDouble)))}.toDF("id","name","fea原创 2016-10-26 09:26:14 · 3479 阅读 · 0 评论 -
Spark的日志配置
转:http://blog.csdn.net/stark_summer/article/details/46929481在测试spark计算时,将作业提交到yarn(模式–master yarn-cluster)上,想查看print到控制台这是imposible的,因为作业是提交到yarn的集群上,so 去yarn集群上看日志是很麻烦的,但有特别想看下print的信息,方便调试或者别的目的在Spar转载 2016-08-31 09:54:10 · 311 阅读 · 0 评论 -
Spark on yarn的内存分配问题
转:http://maohong.sinaapp.com/archives/408问题描述在测试spark on yarn时,发现一些内存分配上的问题,具体如下。在$SPARK_HOME/conf/spark-env.sh中配置如下参数:SPARK_EXECUTOR_INSTANCES=4 在yarn集群中启动的executor进程数SPARK_EXECUTOR_MEMORY=转载 2016-07-12 14:30:35 · 2628 阅读 · 0 评论 -
在Spark上通过BulkLoad快速将海量数据导入Hbase
使用org.apache.hadoop.hbase.client.Put来写数据使用 org.apache.hadoop.hbase.client.Put 将数据一条一条写入Hbase中,但是和Bulk加载相比效率低下,仅仅作为对比。import org.apache.spark._import org.apache.spark.rdd.NewHadoopRDDimport org.apache转载 2017-03-31 18:46:54 · 8199 阅读 · 5 评论 -
查缺补漏--性能资源
1:资源转载 2017-04-13 19:01:09 · 537 阅读 · 0 评论 -
查缺补漏--性能JVM
JVM调优之原理概述以及降低cache操作的内存占比 每一次放对象的时候,都是放入eden区域,和其中一个survivor区域;另外一个survivor区域是空闲的。当eden区域和一个survivor区域放满了以后(spark运行过程中,产生的对象实在太多了),就会触发minor gc,小型垃圾回收。把不再使用的对象,从内存中清空,给后面新创建的对象腾出来点儿地方。清理掉了不再使用的对象之后,那转载 2017-04-13 21:00:52 · 349 阅读 · 0 评论 -
Spark Shuffle 中 JVM 内存使用及配置内幕详情
引言Spark 从1.6.x 开始对 JVM 的内存使用作出了一种全新的改变,Spark 1.6.x 以前是基于静态固定的JVM内存使用架构和运行机制,如果你不知道 Spark 到底对 JVM 是怎么使用,你怎么可以很有信心地或者是完全确定地掌握和控制数据的缓存空间呢,所以掌握Spark对JVM的内存使用内幕是至关重要的。很多人对 Spark 的印象是:它是基于内存的,而且可以缓存一大堆数据,...转载 2018-08-09 14:41:29 · 465 阅读 · 0 评论 -
Spark Streaming优雅的关闭策略优化
我们可以有两种方式来更加优雅的停止流程序,分别是通过http暴露服务,和通过HDFS做消息中转来定时扫描mark文件是否存在来触发关闭服务。下面我们先来看下通过http暴露服务的核心代码:/**** * 负责启动守护的jetty服务 * @param port 对外暴露的端口号 * @param ssc Stream上下文 */ def daemonH...转载 2018-07-31 14:01:24 · 1106 阅读 · 0 评论 -
spark读kafka数据 hbase存储
package spark88.utilsimport kafka.common.TopicAndPartitionimport kafka.message.MessageAndMetadataimport kafka.serializer.StringDecoderimport kafka.utils.ZkUtilsimport org.apache.hadoop.hbase...转载 2018-07-27 17:26:25 · 882 阅读 · 0 评论 -
spark 消费kafka 并发送 zookeeper存储
package kafka4.utilsimport kafka.common.TopicAndPartitionimport kafka.message.MessageAndMetadataimport kafka.serializer.StringDecoderimport org.apache.curator.framework.CuratorFrameworkFactoryi...转载 2018-07-27 16:57:11 · 882 阅读 · 0 评论 -
spark 二次排序
方法1自定义keyclass SecordSortKey(val firstKey: Int, val secondKey: Int)extends Ordered[SecordSortKey] with Serializable{ override def compare(that: SecordSortKey):Int = { if(this.firstKey != tha...转载 2018-03-21 22:49:30 · 279 阅读 · 0 评论 -
Spark Streaming 数据产生与导入相关的内存分析及优化
http://spark.apache.org/docs/latest/streaming-programming-guide.html数据接受流程启动Spark Streaming(后续缩写为SS)后,SS 会选择一台Executor 启动ReceiverSupervisor,并且标记为Active状态。接着按如下步骤处理:ReceiverSupe转载 2017-04-26 17:26:54 · 493 阅读 · 0 评论 -
spark streaming kafka 到hive
package com.kafkaimport java.text.SimpleDateFormatimport java.utilimport java.util.Dateimport org.apache.spark.sql.SaveModeimport org.apache.spark.sql.hive.HiveContextimport org.apache.spark.strea原创 2016-10-04 12:04:43 · 8669 阅读 · 0 评论 -
Spark编写UDAF自定义函数
package main.scalaimport org.apache.spark.SparkContextimport org.apache.spark.SparkConfimport org.apache.spark.sql.hive.HiveContextimport org.apache.spark.sql.Rowimport org.apache.spark.sql.types.S转载 2017-04-18 18:03:15 · 1693 阅读 · 0 评论 -
查缺补漏--性能troubleshooting
调节reduce端缓冲区大小避免OOM异常 1.1 为什么要调节reduce端缓冲区大小 对于map端不断产生的数据,reduce端会不断拉取一部分数据放入到缓冲区,进行聚合处理; 当map端数据特别大时,reduce端的task拉取数据是可能全部的缓冲区都满了,此时进行reduce聚合处理时创建大量的对象,导致OOM异常; 1.2 如何调节reduce端缓冲区大小 当由于以上转载 2017-04-18 16:44:47 · 330 阅读 · 0 评论 -
查缺补漏--性能算子
MapPartitions提升Map类操作性能spark中,最基本的原则,就是每个task处理一个RDD的partition。 MapPartitions操作的优点:如果是普通的map,比如一个partition中有1万条数据;ok,那么你的function要执行和计算1万次。但是,使用MapPartitions操作之后,一个task仅仅会执行一次function,function一次接收所有的p转载 2017-04-17 17:01:05 · 340 阅读 · 0 评论 -
查缺补漏--性能shuffle
合并map端输出文件第一个stage,每个task,都会给第二个stage的每个task创建一份map端的输出文件第二个stage,每个task,会到各个节点上面去,拉取第一个stage每个task输出的,属于自己的那一份文件。 题来了:默认的这种shuffle行为,对性能有什么样的恶劣影响呢?实际生产环境的条件: 100个节点(每个节点一个executor):100个executor 每个e转载 2017-04-17 16:26:49 · 301 阅读 · 0 评论 -
Exactly-once Spark Streaming from Apache Kafka
转http://blog.cloudera.com/blog/2015/03/exactly-once-spark-streaming-from-apache-kafka/Thanks to Cody Koeninger, Senior Software Engineer at Kixer, for the guest post below about Apache Kaf转载 2016-03-22 19:47:07 · 1208 阅读 · 0 评论 -
Spark 博文
https://github.com/lw-lin/CoolplaySparkhttp://blog.cloudera.com/blog/2015/03/exactly-once-spark-streaming-from-apache-kafka/原创 2016-03-22 19:37:36 · 482 阅读 · 0 评论 -
spark streaming 写入db,hdfs
转http://blog.csdn.net/zhong_han_jun/article/details/50813981package main.javaimport java.sql.Connectionimport com.jolbox.bonecp.{BoneCP, BoneCPConfig}import org.slf4j.LoggerFactory/** * Created on转载 2016-03-21 10:57:49 · 4957 阅读 · 0 评论 -
spark rdd 详解
转:http://homepage.cs.latrobe.edu.au/zhe/ZhenHeSparkRDDAPIExamples.htmlaggregateThe aggregate function allows the user to apply two different reduce functions to the RDD. The first reduce function is ap转载 2016-03-30 15:10:40 · 2094 阅读 · 0 评论 -
spark streaming kafka1.4.1中的低阶api createDirectStream使用总结
转:http://blog.csdn.net/ligt0610/article/details/47311771 由于目前每天需要从kafka中消费20亿条左右的消息,集群压力有点大,会导致job不同程度的异常退出。原来使用spark1.1.0版本中的createStream函数,但是在数据处理速度跟不上数据消费速度且job异常退出的情况下,可能造成大量的数据丢失。幸好,spark后续版本对这一情转载 2016-03-30 11:47:47 · 492 阅读 · 0 评论 -
spark 实战笔记case4
package de.zalando.sla_spark_sqlimport org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConfobject SLA_parquetSQL { def main(args: Array[String]) {原创 2016-01-30 19:09:01 · 548 阅读 · 0 评论 -
spark 实战笔记case3
val mapper = sc.textFile("/user/hive/warehouse/sla.db/e*_30days/").map(line => line.split("\073")).map(line => ( if (line(0)=="598017" || line(0)=="614420" || line(0)=="614421") line(5) else line(4), (原创 2016-01-30 19:07:31 · 932 阅读 · 0 评论 -
spark 实战笔记case2
val t1 = sc.textFile("/tmp/db_case1/order_created/*").map(line => line.split("\t"))val t2 = sc.textFile("/tmp/db_case1/order_picked/*").map(line => line.split("\t"))val t3 = sc.textFile("/tmp/db_case原创 2016-01-30 19:06:19 · 465 阅读 · 0 评论 -
spark 实战笔记case1
val tt1 = Array(("1", ( "t1", "2014-03-01 00:00:00.000+01") ),("1", ( "t1", "2014-03-01 00:01:00.000+01") ),("2", ( "t1", "2014-03-02 00:00:00.000+01") ),("2", ( "t1", "2014-03-03 00:00:00.000+01")原创 2016-01-30 19:05:26 · 463 阅读 · 0 评论 -
共享变量(广播变量和累加器)
转:http://blog.csdn.net/happyanger6/article/details/46576831共享变量通常情况下,当向Spark操作(如map,reduce)传递一个函数时,它会在一个远程集群节点上执行,它会使用函数中所有变量的副本。这些变量被复制到所有的机器上,远程机器上并没有被更新的变量会向驱动程序回传。在任务之间使用通用的,支持读写的共享变量是低效的。尽管如此,Spar转载 2016-04-11 12:30:54 · 1290 阅读 · 0 评论 -
spark streaming updateStateByKey 用法
转:http://blog.csdn.net/stark_summer/article/details/47666337updateStateByKey 解释: 以DStream中的数据进行按key做reduce操作,然后对各个批次的数据进行累加 在有新的数据信息进入或更新时,可以让用户保持想要的任何状。使用这个功能需要完成两步: 1) 定义状态:可以是任意数据类型 2) 定义状态更转载 2016-04-11 19:52:03 · 409 阅读 · 0 评论 -
hive on spark 编译
转:http://blog.csdn.net/stark_summer/article/details/48466749前置条件说明Hive on Spark是Hive跑在Spark上,用的是Spark执行引擎,而不是MapReduce,和Hive on Tez的道理一样。 从Hive 1.1版本开始,Hive on Spark已经成为Hive代码的一部分了,并且在spark分转载 2016-05-30 23:59:04 · 1193 阅读 · 0 评论 -
基于sparksql调用shell脚本执行SQL
基于sparksql调用shell脚本执行SQL,sparksql提供了类似hive中的 -e , -f ,-i的选项 1、定时调用脚本#!/bin/sh # upload logs to hdfs yesterday=`date --date='1 days ago' +%Y%m%d` /opt/modules/spark/bin/spark-sql -i /opt/bin/spark转载 2016-05-30 23:51:10 · 8028 阅读 · 0 评论 -
的JDBC server 的JDBC server
转:http://my.oschina.net/cloudcoder/blog/467713启动 JDBC servercd /etc/spark/confln -s /etc/hive/conf/hive-site.xml hive-site.xmlcd /opt/cloudera/parcels/CDH/lib/spark/chmod- -R 777 logs/cd /opt/cloud转载 2016-05-30 23:48:06 · 471 阅读 · 0 评论 -
Spark的性能调优
转:http://lxw1234.com/archives/2016/01/603.htm 算法的基本思想 首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起:每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面 去执行。Stage指的是一组并行运行的task,stage内部是不能出现s转载 2016-04-21 11:59:21 · 418 阅读 · 0 评论 -
特征提取和转换
TF-IDFTF-IDF(Term frequency-inverse document frequency ) 是文本挖掘中一种广泛使用的特征向量化方法。TF-IDF反映了语料中单词对文档的重要程度。假设单词用t表示,文档用d表示,语料用D表示,那么文档频度DF(t, D)是包含单词t的文档数。如果我们只是使用词频度量重要性,就会很容易过分强调重负次数多但携带信息少的单词,例如:”a转载 2016-05-29 01:23:29 · 3116 阅读 · 0 评论 -
spark 数据类型(Data Types)
局部向量[Local vector]标记点[Labeled point]局部矩阵[Local matrix]分布式矩阵[Distributed matrix]分块矩阵[BlockMatrix]行矩阵[RowMatrix]索引行矩阵[IndexedRowMatrix]坐标矩阵[CoordinateMatrix]MLlib支持存储在单机上的局部向量和局部转载 2016-05-29 00:38:07 · 4868 阅读 · 0 评论