BIGDATA
文章平均质量分 64
rongyongfeikai2
这个作者很懒,什么都没留下…
展开
-
Kafka处理的消息大小与堆外内存
如果说,Kafka处理的消息大小,与它所用的堆外内存,会存在一定程度的关系。你一定会觉得非常奇怪。毕竟,阅读kafka处理消息的源码时,只看到了它申请了堆内存,并未发现有申请堆外内存。如果在jvm参数里,将maxDirectMemory的大小限制为100M。那么,我们写一个简化版的kafka broker 9092消息处理程序来进行一下实验。真是奇怪, 代码里并未直接申请堆外内存,怎么会在实验中发现堆外内存的增长呢?原创 2022-10-12 13:33:30 · 2277 阅读 · 1 评论 -
记一次spark内存泄露问题
问题定位:引擎里有一处代码detectDf.persist(detectDf为DataFrame),后续回收动作用的代码为val rdds = sc.getPersistentRDDsrdds.foreach(x => x._2.unpersist())分析:1.DataFrame跟RDD相比,就是多了schema部分; DataFrame=RDD+schema2.根据前几天堆内存的分析,schema是会放一份在driver端的3.代码,只unpersist了RDD,那么schema部分就一直在原创 2022-07-05 08:58:47 · 685 阅读 · 0 评论 -
Spark提交到k8s解决问题记录
1.报错debian InRelease is not valid yet (invalid for another 2d 9h 30min 9s)检查机器时间是不是没有同步,将时间配置为最新的时间。2.PKIX path building failedjdk证书问题。需要:/* * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source a原创 2021-04-02 09:25:51 · 1472 阅读 · 0 评论 -
spark-submit提交application(yarn-client)源码阅读
原创 2017-01-07 12:00:40 · 1074 阅读 · 0 评论 -
executor-cores参数并未对vcores生效的原因分析
虽然目前大多数平台内置Application在提交时,只配置了–num-executors和–executor-memory参数,但是其他APP的开发者可能会配置–executor-cores参数。举个例子:./spark-submit –master yarn-client –executor-cores 4 –num-executors 6 –executor-memory原创 2016-11-16 15:55:18 · 5647 阅读 · 1 评论 -
m维空间里n个点每点最近的第k个点的距离
题目如图。m=4,即点均为四维空间的点。n数目不定,可以理解为几万,几十万甚至上千万。使用spark计算。资源配置为:executor-cores:6,executor-memory:10G。 解法一:首先将点的矩阵弄成dataframe(dataframe里每一个Row的内容均为:[uuid,double1,double2,double3,double4])然后dat原创 2016-11-12 14:53:39 · 3592 阅读 · 1 评论 -
Spark MLLib 梯度提升树
梯度提升树是决策树的群集。GBTs为了使损失函数的值最小化,迭代式的训练决策树。和决策树一样,GBTs可以处理离散特征,也可以扩展设置为多级分类,而不需要进行特征值缩放,所以有能力处理非线性以及特征交互。spark.mllib支持二分类GBTs以及回归GBTs,可以使用连续或者离散型特征。Spark.mllib在已经存在的决策树的实现的基础上实现的GBTs。如果想要对决策树了解更多的话,请参考翻译 2016-11-10 12:31:25 · 1495 阅读 · 0 评论 -
IEDA远程debug spark application
1.spark-env.sh里的export SPARK_JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9997"2.启动spark application3.IDEA里run->edit configuration,host和port填上spark所在机器的ip和port(9997)原创 2016-11-09 18:39:16 · 454 阅读 · 0 评论 -
事件生成JOB调优笔记(spark streaming)
业务场景:有三种原始日志,其中一种是告警日志取名为evt(用event_id和device_ip标记为唯一的一条,会不断发送相同的告警,但end_time、severity会变化),另外有两种流量日志取名为evt_srcip_traffic和evt_traffic_total分别表示该告警中关联的源IP的流量和告警流量。事件生成要做的事情很简单:1.两种流量日志需要归并(比如e原创 2016-08-04 17:03:23 · 924 阅读 · 0 评论 -
Zeppelin源码阅读之更新notebook的paragraph部分
Zeppelin是一款web笔记本,可以迭代式的进行数据分析。比如%spark就可以写spark application相关的scala代码,%sql就可以直接写spark sql,写完后直接运行看效果,还可以出各种柱状图、区域图等,非常方便。但是,最近却遇到了一次机器突然断电后,notebook内容完全被清空的情况。写notebook的浏览器运行在一台机器上,而Zeppelin Server原创 2016-10-11 19:44:00 · 1590 阅读 · 0 评论 -
table does not exists,select 1 from tablename limit 1
最近在postgreSQL的log里看到了大量的:table does not exists,select 1 from tablename limit 1感觉非常奇怪。1.第一直觉是应该没有业务会写类似:select 1 from tablename limit 1这样的代码。搜了一遍业务代码之后,发现确实没有这样的代码存在。2.报错里面的tablename是临时原创 2016-09-09 23:50:14 · 1871 阅读 · 0 评论 -
运行在yarn上的spark job使用log4j无法记录日志问题
如题,弄了蛮久。主要Maven项目依赖了spark core,spark streaming等,这些里面用了slf4j记录日志;估计会和项目中的log4j起冲突,导致记录日志不成功。换成slf4j就OK了。pom.xml如下: org.slf4j slf4j-api 1.7.12 log4j.xml如下:原创 2016-08-03 17:58:54 · 3001 阅读 · 0 评论 -
sparkstreaming性能调优记录
场景:RDD,JSONObject里面有TBNAME字段和PAYLOAD字段,分别代表表名和原始日志内容需要1.在原始内容里加入系统时间字段 2.按表名取系统时间逆序取前100条入库30s时间窗口,处理2w条数据;4张表,但打的数据均为1张表的数据以下我说明的时间都是有数据的表的处理时间(1张表有数据处理,在过其他表时也需要filter表名,需要耗时;所以总体的批处理时间会比我描述原创 2016-04-09 20:32:42 · 3709 阅读 · 2 评论 -
kafka offset判断
在使用Spark streaming读取kafka数据时,为了避免数据丢失,我们会在zookeeper中保存kafka的topic对应的partition的offset信息(每次执行成功后,才更新zk中的offset信息);从而保证执行失败的下一轮,可以从特定的offset开始读。实现方式类似下面文章所示:http://blog.csdn.net/rongyongfeikai2/artic原创 2016-02-24 08:51:30 · 15689 阅读 · 1 评论 -
DataFrame write().jdbc实现细节(源码阅读)
可以清楚看到,df.write().jdbc其实最后就是在mapPartition里进行批量的insert。如果我们是往postgresql库里写的话,copy明显是比批量insert快的,所以写成mapPartition(copy in)其实是比直接调用df.write.jdbc要快速的。原创 2017-01-10 11:27:08 · 4953 阅读 · 0 评论 -
kafka-python批量发送数据的方法
from kafka import KafkaClientfrom kafka.producer import SimpleProducerdef send_data_2_kafka(datas): ''' 向kafka解析队列发送数据 ''' client = KafkaClient(hosts=KAFKABROKER.split(","), time原创 2017-01-16 18:13:26 · 11835 阅读 · 0 评论 -
[Hadoop]基本概念及安装
1.环境系统:Ubuntu 13.04Hadoop版本:2.6.02.Hadoop基本结构Hadoop本身是一个分布式处理框架。它由以下几个部分组成:Hadoop Common是Hadoop的核心及基础;HDFS 分布式文件系统,是Google的GFS的开源实现;MapReduce 也是对Google的MapReduce理念的实现;配套的相关项目:1.HBa原创 2015-04-12 18:03:30 · 707 阅读 · 0 评论 -
目前Spark Application处理的数据量和性能
今年最值得开心的事情,就是Spark Application在客户局点跑的效果。虽然里面涉及的算法由于涉密所以不能透露,但是性能杠杠的还是值得高兴一下的。每秒钟的数据量大概为40万~80万条。实时Spark Application的性能(开5分钟的时间窗口):5分钟内可以处理完,没有延迟和堆积。离线Spark Application的性能(一天跑一次,一次处理前一天的数...原创 2018-11-23 09:18:38 · 4419 阅读 · 2 评论 -
Apache Flink 各类关键数据格式读取/SQL支持
目前事件归并分为两种,一种为实时的归并,即基于Kafka内的数据进行归并和事件生成;一种是周期性的归并,即基于Hive中的数据进行数据的归并和事件生成。基于SQL归并时Spark Streaming支持的输入/输出数据如下: 数据类型 Flink支持情况 Kafka 需要定义schema HDFS(parquet/csv/textfile)...原创 2018-11-02 16:03:22 · 24477 阅读 · 5 评论 -
Apache Flink CEP学习总结
1. 简介Apache Flink是一个计算框架,地位和Spark差不多。里面的API也有与Spark类似的,例如FlinkKafkaConsumer010对应着Spark里的读取Kafka形成流的API,DataStream对应着Spark里的DStream,也有一系列的transform API例如map/fliter等等。在yarn上提交任务的方式也十分简洁:请注意,它的ya...原创 2018-11-02 15:51:06 · 22269 阅读 · 6 评论 -
Hadoop Namenode启动报错GC overhead limit exceeded
Hadoop Namenode启动报错:看起来是fsimage中的节点数目过多,导致的GC Overhead超过限制。Fsimage是namenode维护的重要文件之一,它包含了整个HDFS文件系统的所有目录信息和文件信息。对于文件来说包含了数据块描述信息、修改时间、访问时间等;对于目录来说,包含了修改时间、访问权限控制信息等。需要用以下命令查看fsimage文件占用的内存大小:....原创 2018-09-28 11:24:05 · 3089 阅读 · 0 评论 -
编译zeppelin
1.单独编译zeppelin-webcd zeppelin-web mvn clean package -DskipTests如果中途phantomJS安装报错,手动安装PhantomJS,命令为:npm install 2.回到主目录编译zeppelinmvn package -DskipTests -Phadoop-2.7 -Dhadoop.version=2.7.2 -Pspar...原创 2018-08-21 10:18:38 · 1618 阅读 · 0 评论 -
hbase thrift连不上的错误(client.RpcRetryingCaller: Call exception)
现象为:python happybase连接hbase卡死,查看thrift里的日志发现:2018-06-26 15:19:43,192 INFO [thrift-worker-11] client.RpcRetryingCaller: Call exception, tries=21, retries=35, started=249681 ms ago, cancelled=false, ms...原创 2018-06-26 15:39:06 · 5722 阅读 · 0 评论 -
spark on yarn(ERROR client.TransportClient: Failed to send RPC)
主要是给节点分配的内存少,yarn kill了spark application。给yarn-site.xml增加配置: yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmem-check-enabled false 重启hadoop。然后再重新提交spark ap原创 2017-04-05 22:01:01 · 9691 阅读 · 2 评论 -
java向kafka批量均匀发送数据的方法
RT。public void sendData(String brokerList,String topic,List datas){ Properties properties = new Properties(); properties.put("metadata.broker.list",brokerList); properties.pu原创 2017-02-15 19:51:01 · 14222 阅读 · 9 评论 -
Spark-在工作集上进行集群计算
Spark-在工作集上进行集群计算MateiZaharia, Mosharaf Chowdhury,Michael J. Franklin, Scott Shenker, Ion Stoica加利福利亚伯克利大学摘要 MapReduce以及它的变体已经在集群上成功实现了大规模数据密集型程序。然而,这些系统中的大多数都是建立在非循环数据流模型之上的,而这个模型也许对于翻译 2017-02-11 19:24:05 · 4623 阅读 · 0 评论 -
spark分组排序
感觉写得很靠谱,明天再详细看看。http://blog.csdn.net/hehuangwei/article/details/49961905转载 2016-04-07 23:44:02 · 3141 阅读 · 0 评论 -
SparkStreaming笔记
1.SparkStreaming的批处理时间间隔很容易陷入的一个误区就是,以为时间间隔30秒就是每30秒从kafka读取一次。其实不然,可以理解为数据向水流一样源源不断的从kafka中读取出来(只要定义了DStream,Spark程序就会将接收器在各个节点上启动,接收器会以独立线程的方式源源不断的接受数据),每积累30秒钟的数据作为一个RDD供进行一次处理。2.性能优化可以思考的途径:原创 2016-04-06 23:33:14 · 2068 阅读 · 0 评论 -
Hadoop获取namenode的命令
在某些场景下,我们需要及时的得到Hadoop的当前的一些配置信息,例如namenode。hadoop下的命令如下:为了更好的在程序中使用,我们可以封装一个相应的方法:#coding:utf-8import osimport subprocessdef getNameNode(): hadoopPath = os.environ["HADOOP_CONF_DIR"原创 2016-03-31 22:56:58 · 12510 阅读 · 0 评论 -
Hadoop yarn配置
1.mapred-site.xml配置2.yarn-site.xml配置3.启动服务然后可以通过:http://ip:8088查看正在运行的程序http://ip:5070监控HDFS原创 2015-05-28 22:33:35 · 669 阅读 · 0 评论 -
SparkSQL利用HDFS的权限控制表的读权限
Spark内置的thrift-server(连接hive)的对权限管理支持得并不是很好,只支持了create/drop权限的控制,但是任意用户都可以读任意库/表,委实是一个问题。为了解决这个问题,可以用HDFS的文件权限控制来对表的读权限进行控制。1.新建用户由于Hive,HDFS都是用系统用户来做权限控制的,所以需要新建一个系统用户。比如新建一个mytest用户,如下图所示:原创 2015-05-18 21:38:36 · 7631 阅读 · 1 评论 -
windows eclipse远程连接hadoop2.6
前提是eclipse安装了eclipse-hadoop插件,并下载好了hadoop2.6 release包和源码包。1. eclipse切换到map/reduce视图,配置Mapreduce location2.将hadoop解压缩到某个盘,如d盘。配置HADOOP_HOME和HADOOP_USER_NAME环境变量:并将%HADOOP_HOME%\bin配到环境变原创 2015-05-21 08:29:17 · 5065 阅读 · 2 评论 -
[spark]Spark thriftserver(HiveServer2) Custom认证
默认如果不配置的话,是不进行认证的。所以用beeline连接thriftserver时,可以填写任意用户名/密码,均可以认证成功。下面是进行Custom认证配置的过程:1.新建一个工程,引入spark-assembly-1.3.0-hadoop2.4.0.jar需要实现PasswdAuthenticationProvider接口,代码如下:package org.apache.ha原创 2015-05-27 19:01:29 · 4895 阅读 · 0 评论 -
[spark]spark/hive配置metastore为postgresql
看文档可以知道,Spark SQL复用了hive的sql解析器/metastore管理。而hive的默认的metastore为derby,它有两个弊端:1.metastore一次仅允许一个客户端连接2.每个客户端进行sql操作时,都会在本进程所在的文件夹内新建metastore所以,在产品的开发中,至少应该将metastore配为postgresql的步骤如下:1.在pos原创 2015-05-27 19:19:21 · 5252 阅读 · 0 评论 -
[spark]解决beeline连接thrift-server加载数据权限问题
1.如果期望spark的表存放到hive的hdfs中需要在环境变量及conf/spark-env.sh中配置HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop2.如果期望用beeline连接thrift-server时不报权限错误需要在环境变量及conf/spark-env.sh中配置HADOOP_USER_NAME=有hdfs权限的用原创 2015-05-07 09:48:38 · 4182 阅读 · 0 评论 -
eclipse scala url
http://download.scala-ide.org/sdk/helium/e38/scala211/stable/site原创 2015-05-13 20:47:26 · 710 阅读 · 0 评论 -
[spark]spark读取postgresql的表(纯SQL方式)
1.thrift-server启动时,需要带上pg的驱动2.在beeline中,需要add jar带上pg的驱动;然后再将pg映射为spark的表;最后才可以进行查询: 3.写成python代码类似于:原创 2015-05-11 17:38:07 · 5112 阅读 · 2 评论 -
[Hadoop]Hadoop上传本地文件到HDFS
代码如下,需要注意标红处,要不然会出现FileNotFound(permission deny)得错误。package com.hadooplearn.test;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;原创 2015-04-13 23:35:33 · 7730 阅读 · 0 评论 -
[Hadoop]HDFS文件的相关操作(上传、新建、删除和重命名)
package com.hadooplearn.test;import java.io.FileOutputStream;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataOutputStream;import org.apac原创 2015-04-14 22:39:26 · 14602 阅读 · 1 评论 -
[Hadoop]伪分布式Hadoop每次start都需要重新format namenode
问题RT。原因是Hadoop的临时文件存放在tmp文件夹中,每次重启电脑后,就被删除了。所以,需要在core-site.xml中配置临时文件路径: fs.default.name hdfs://127.0.0.1:9000 hadoop.tmp.dir /usr/lo原创 2015-04-13 21:53:28 · 1052 阅读 · 0 评论