自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小萌猿的博客

本人的所有文章只是个人观点,欢迎批评指教

  • 博客(83)
  • 收藏
  • 关注

原创 checkpoint的正确使用方式及其与persist的区别

一、正确使用方式在执行checkpoint之前先对RDD进行Persist:应为checkpoint操作会启动一个job,spark默认会重新计算执行checkpoint操作的RDD,也就是说,需要从源头开始再计算一次,明显的重复计算。所以先persist后,就不用重复计算了。二、与persist的区别checkpoint是写磁盘的,persist也可以通过StorageLevel.DISK...

2019-03-24 17:06:27 4408 1

原创 Spark算子使用外部变量的优化

第一、使用FastUtil改写外部变量,FastUtil拓展了java的标准集合,它可以提供更小的内存占用以及更快的存取速度。FastUtil的每一种集合类型,都实现了java的对应接口,可以直接用来替换已有代码中的对应集合。第二、使用BroadCast广播变量到Executor,使每一个Executor有一份数据副本,executor内部task共享这个副本(未广播的变量在每个task中存在一...

2019-03-24 16:38:15 1591

转载 SparkTask未序列化(Tasknotserializable)问题分析

问题描述及原因分析在编写Spark程序中,由于在map等算子内部使用了外部定义的变量和函数,从而引发Task未序列化问题。然而,Spark算子在计算过程中使用外部变量在许多情形下确实在所难免,比如在filter算子根据外部指定的条件进行过滤,map根据相应的配置进行变换等。为了解决上述Task未序列化问题,这里对其进行了研究和总结。  出现“org.apache....

2019-03-24 16:08:33 1358

原创 Spark算子调优

1、使用mapPartitions或者mapPartitionWithIndex取代map操作,其中mapPartitions和mapPartitionWithIndex的区别在于是否将分区号index传入分区处理函数。eg.对于将RDD中的数据写入数据库时,使用mapPartitions只需为每个分区建立一次jdbc连接,而map需要为每个数据建立连接。同理还有foreach和foreach...

2019-03-23 17:04:01 803

转载 hive中order by,sort by, distribute by, cluster by作用以及用法

1. order by    Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。  &n...

2019-03-09 23:08:49 555

原创 找不到@HystrixCommand标签

Spring cloud中整合Hystrix时,无法识别@HystrixCommand标签,项目的Hystrix依赖为:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hyst...

2019-02-19 10:36:12 5581 2

原创 elasticsearch知识点记录

一、Elasticsearch和传统数据库数据对比:二、因为Elasticsearch有远程脚本执行功能,容易中木马病毒,所以不允许用root用户启动,需要切换到普通用户启动。三、配置yml结尾的配置文件都需要在冒号后面加空格才可以生效四、创建索引注意事项1:索引库名称必须是全部小写,不能以下划线开头,也不能包含逗号2:如果没有明确指定索引数据的ID,Elasticsearch会自动生...

2019-02-13 11:59:11 684 1

原创 推荐系统(二)微博广告推荐

业务场景:根据用户近期发布的微博,来推荐相关广告。简单说就是根据微博内容中所涉及到的词条与广告关键词的匹配度来推荐。用到的关键算法:tf-idf算法,它是一个文本挖掘的重要算法,用来评估字/词对于一个语料库中的一份文本文件的重要程度,字/词的重要性会随着它在该文本文件中出现的次数增加而增加,同时随着它在整个语料库中出现的次数增加而减少。这个很好理解,就是说,如果一个词在所有文本文件里都出现了,那...

2019-01-31 22:04:50 990

原创 FileSystem.open()读取 HDFS上的文件遇到的问题

FileSystem.open()方法返回的是一个FSDataInputStream对象,我是直接通过FSDataInputStream的readLine()按行读取内容的,这个方法是deprecated的,就是过期了,其实平时写代码时大部分过期函数都还是可以使用的,但是这里不行,会出现中文乱码Path path =new Path(uri.getPath());FileSystem fs =...

2019-01-31 20:54:14 3937 1

原创 推荐系统(一)好友推荐

之前学习过几个推荐业务,总结一下。首先,好友推荐业务好友推荐已经是很常见的业务了,很多软件,我们熟知的qq、微博等社交软件都有该业务。上图是我画的一个简单的好友关系图,双向箭头表示互为好友关系。我们已分析小明的推荐好友为例分析。首先,小明的直接好友有:小蓝,小灰,小红,所以,可能推荐给小明的好友就是剩下的小黑或者小白(这里我们分析的是最可能被推荐的一个),所以到底是小黑还是小白呢?对于这...

2019-01-29 15:05:47 5440 2

转载 Java泛型

泛型,一个孤独的守门者。 大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。文章开始的地方,先给大家奉上一道经典的测试题。List<...

2019-01-16 16:32:51 507 1

原创 Hadoop主从切换失败

主节点node1,从节点node2,集群启动后node1 Active,node2 Standby,通过在node1上执行hadoop-daemon.sh stop namenode来使node2切换为Active。发现切换失败(之前一直是这样子做的),集群主从切换是依靠zookeeper的选举机制,而zookeeper的选举制度是DFSZKFailoverController进程实现,而且必须...

2018-12-17 15:10:22 1083 3

原创 Hive通过using jar创建function时的缓存问题

项目中遇到的小知识点,记录一下。我们通过using jar方式创建function后,这个jar包(假设为a.jar)会被缓存,如果创建下一个function时,同样需要使用a.jar,但是不同的是这个a.jar是重新打的包,它里面添加了我们创建第二个function需要的UDF。这时候创建function会报错:提示找不到第二个需要的UDF。原因就是,a.jar在第一次using的时候被缓存了...

2018-12-14 21:55:11 2240

原创 Failed to recognize predicate 'row'. Failed rule: 'identifier' in column specification

Hive创建Hbase外联表时报的错。错因:row与Hive关键字同名了,改为其他名即可

2018-12-13 21:03:18 2602

原创 java.sql.BatchUpdateException: No value specified for parameter 9

项目中数据库操作遇到的小bug,意思就是说,没有值再去给第九个参数赋值了,就是说添加的value的个数与sql语句中的占位字段个数不相同。这是我的sql语句:insert into stats_inbound(platform_dimension_id,date_dimension_id,inbound_dimension_id,active_users,sessions,crea...

2018-12-07 11:56:45 8852

原创 DataInput.readInt()报错:java.io.EOFException

实现WritableComparable接口序列化时,在readFields方法里,使用DataInput的readInt方法读取在write方法里写的int,报错:EOFException。这个错的意思是:输入流已经到了结尾,在这里的意思就是说,输入流里不够一个整形(32位),查到的问题是:在write方法里,没有使用writeInt而使用了write方法。虽然这个错误很低级,我们都知道rea...

2018-12-07 11:23:19 3505

原创 HRegionServer启动报错

如上错误,原因:Hbase集群节点时间不一致。所以同步节点时间即可。这里可以使用ntpd服务,具体操作可参照我的另一篇博客集群时间同步关于HBase集群节点时间不一致导致的启动错误,之前也遇到过,不过报的错误不一样,这篇博客错误说的就比较明显了。明确告诉了我们,节点时间差异导致出错。Tips:以后记住,启动集群的第一件事情,就是同步各节点时间,避免不必要的错误耽搁时间。...

2018-12-05 23:42:46 993

原创 namenode格式化遇到的几个问题

1、Call From node1/192.168.245.151 to node6:8485 failed on connection8485端口是journalnode的端口, 就是说连接不上journalnode,所以在几个journalnode节点分别执行hadoop-daemon.sh start journalnode打开即可2、启动Hbase时Hmaster进程报错: org.a...

2018-11-20 17:30:06 2829

原创 java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class

在SparkStreaming中使用KafkaUtils时报的错。网上都说是scala版本与spark版本的问题。我使用的是spark2.2.0,scala是2.11,KafkaUtils是spark-streaming-kafka-0-8_2.11.jar包里的,这几个版本都是根据官网上的说明来的,所以没太搞懂,但是之前使用spark1.3时,就没有报过这个错,spark1.3里的KafkaU...

2018-11-08 20:17:05 5536

原创 flume监控文件内容遇到的问题

在Lamda架构分析日志流水线时用到flume监控日志文件的变化。开始测试时,用shell脚本模拟的简单日志,单条日志格式为:uid-url-ip如下为我的shell脚本:#! /bin/bashrandnum(){ shuf -i 1-100 -n 1}randseq(){ head /dev/urandom | tr -dc a-z | head -c 3}wh...

2018-10-17 23:33:06 3203

原创 Flume文件通道(file channel)报错:Usable space exhausted, only 0 bytes remaining, required 524288000 bytes

文件通道是数据存储在磁盘中,错误原因,磁盘空间不足,具体来说,是一下两个配置目录空间不足:a1.channels.c2.checkpointDir = /mnt/flume/checkpointa1.channels.c2.dataDirs = /mnt/flume/data对应到我的错误,磁盘空间已经没有了,为0。这是我删除部分数据后,留出了几百兆,没删之前已经占用百分之百了。然后在...

2018-10-15 19:44:22 3511 1

原创 Hbase整合MapReduce两个注意的地方

一、通过javaAPI插入数据到HBase时,HBase里scan出来的数据乱码,如下代码:Put put = new Put(Bytes.toBytes(key.get()));我这里的key是Map阶段的输入key,格式为LongWritable,插入数据后,Hbase对应表的rowkey出现了乱码。 解决方法:Put put = new Put(Bytes.toBytes(...

2018-09-15 17:39:12 1968

转载 hive优化-count(distinct)

问题描述COUNT(DISTINCT xxx)在hive中很容易造成数据倾斜。针对这一情况,网上已有很多...

2018-09-12 17:05:03 2439

原创 IK分词器的空指针问题

之前有在Lucene项目中使用过IK分词器的Lucene相关API,没有出现什么问题,今天使用了另一个API,出现了空指针问题,记录一下。 IKSegmenter segmenter = new IKSegmenter(reader, true); while(segmenter.next()!= null){ ...

2018-09-02 22:58:42 2465

原创 WritableComparator的继承

今天用MapReduce写了一个东西,一直报空指针的错误。在这儿简单Mark一下。 原因是这样的,我的程序中在Map阶段输出的key是我自定义的一个MyKey,然后在Sort阶段需要按照这个MyKey来排序。程序跑到Map达到100%就报错,空指针。所以问题肯定是处在Shuffle阶段。查了好久发现是我的Sort类写的有问题。 Sort类通过继承WritableComparator来比较两个M...

2018-08-28 16:06:45 2073

原创 Jsp中EL表达式失效

遇到的一个小问题,简单记录一下。 JSP中的EL表达式失效,解决方式: 如图加上红圈中的即可。 我的web版本是2.3(http://java.sun.com/dtd/web-app_2_3.dtd“) 好像2.5中也有这个问题。...

2018-08-17 21:43:41 3421

原创 Nginx的session一致性问题

一、我们知道Session的常见形式是会话cookie,即为设置过期时间的cookie,它的默认的生命周期为浏览器会话期间,一旦浏览器关闭窗口,这个cookie就消失了。其实现机制为:当用户发起一个请求的时候,服务器会检查该请求中是否包含sessionID,如果不包含,则服务器会生成一个名为JSESSIONID的cookie返回到浏览器,(这个cookie存放在内存中,并不会存在硬盘)。同时在服务...

2018-08-08 23:01:45 7490

原创 docker网络架构、路由

如上图:我启动了两个docker容器,docker1和docker2,这两个容器用的是同一个镜像(nginx镜像),两个分别将nginx的80端口映射到9090和9091端口,启动后可在Windows上正常访问nginx服务。今天写这个主要是记录一下该网络架构中的路由转发情况。 ![这里写图片描述](https://img-blog.csdn.net/20180617223858721?wa...

2018-06-17 23:03:39 4981 1

原创 Hadoop多磁盘配置

这里给DataNode增加一个磁盘,具体步骤如下:(假设我的磁盘路径为/dev/vdb) 一、磁盘分区:fdisk /dev/vdb (具体分区可自定义,这里只分一个主分区/dev/vdb1) 二、磁盘格式化:mkfs.ext3 /dev/vdb1 (Linux下磁盘格式为ext系列,这里,格式化为ext3) 三、挂载磁盘:mount /dev/vdb1 /mnt/test 四、添加到...

2018-06-02 22:44:05 4692

原创 Mycat配置MySql的读写分离

我们知道MySql的存储引擎有两种:InnoDB和MyISAM,其中MyISAM是MySql的默认存储引擎,其实平时不会有太多人关心这个东西,但是对于实际的业务,存储引擎的合理选择是会对性能影响很大的因素。 以下是这两种引擎适合的场景: • MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如 果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。 • In...

2018-05-21 16:15:26 11668 1

原创 MyCat 的编码问题:Unknow character set utf8mb4,以及Mysql的一些问题

成功启动Mycat后,通过Navicat for MySql查看数据库表时,出错:Unknow character set utf8mb4在网上看到很多解决方法,大概两种思路:1、升级Mysql到5.5以上。 2、在 mycat配置文件中修改编码。 开始嫌升级数据库麻烦,就试着修改配置文件,结果老子试了各种修改方法都不行,最终还是升级了数据库,所以,建议,遇到这个问题的伙计们直接升级吧,别折腾了...

2018-05-20 17:47:14 5067

原创 Spark Standalone Mode配置HA

配置环境:node1、node2、node3 核心就是在spark-env.sh中添加(三台节点都添加):export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=192.168.245.151:2181,192.168.245.163:2181,19...

2018-05-02 21:42:11 2329

原创 Zookeeper在Hadoop与Storm中应用的区别

Hadoop与Storm都是典型的主从架构,但是在使用 Zookeeper时还是不太一样的。 一、对于Hadoop来说,所有的 slaves都需要向master汇报状态信息,比如:MapReduce里的Tasktracker会向Jobtracker汇报,从而,Jobtracker所在节点内存中会有Tasktracker的状态信息,同时TaskTracker会收到JobTracker的响应信息,告...

2018-04-19 10:36:28 3051

原创 Yarn组件、SparkOnYarn

Yarn是主从架构 Yarn的四大组件:ResourceManager、ApplicationMaster、NodeManager、Container ResourceManager:运行在Master上的一个进程,负责集群的资源调度 NodeManager:运行在Slaver上的一个进程,负责向Master上报子节点的运行、资源状况。 ApplicationMaster:运行在Slave...

2018-04-14 17:20:50 2464

原创 Spark任务调度

RDD Objects: 两个RDD合并后分组、过滤 DAGScheduler: 将程序生成DAG图,并切割stage、划分Task(初始partition数量),将一个stage的task封装到一个taskset,并发送至TaskScheduler TaskScheduler 这个类会向Cluster manager(Yarn)请求资源,获取到资源后,会将TaskSet打散送至申请...

2018-04-13 11:23:51 2780

原创 HBase启动错误

HBase集群:node1,node6,node7,node8 node1和node8是master,其中node8是backup,四台机器都是RegionServer,但是启动后通过Web页面只能查看到两台RegionServer:node1和node8 查看node6的日志:hbase-root-regionserver-node6.log,发现: 发现错因:机器之间的时间差异超...

2018-04-06 16:00:23 2905

转载 Elasticsearch集群的脑裂问题

所谓脑裂问题(类似于精神分裂),就是同一个集群中的不同节点,对于集群的状态有了不一样的理解。今天,Elasticsearch集群出现了查询极端缓慢的情况,通过以下命令查看集群状态:curl -XGET ‘es-1:9200/_cluster/health’发现,集群的总体状态是red,本来9个节点的集群,在结果中只显示了4个;但...

2018-04-01 14:50:39 2314

原创 ElasticSearch版本控制

• 普通关系型数据库使用的是(悲观并发控制(PCC)) 当我们在读取一个数据前先锁定这一行,然后确保只有读取到数据的这个线程 可以修改这一行数据 • ES使用的是(乐观并发控制(OCC)) ES不会阻止某一数据的访问,然而,如果基础数据在我们读取和写入的间隔中 发生了变化,更新就会失败,这时候就由程序来决定如何处理这个冲突。它可 以重新读取新数据来进行更新,又或者将这一情...

2018-03-31 22:36:48 3976

原创 Impala核心组件与架构

核心组件 • Statestore Daemon – 负责收集分布在集群中各个impalad进程的资源信息、各节点健康状况,同步 节点信息. – 负责query的调度• Catalog Daemon – 分发表的元数据信息到各个impalad中 – 接收来自statestore的所有请求• Impala Daemon(最核心) – 接收client、hue、jdbc或者odb...

2018-03-23 17:50:16 2836

转载 KeepAlived与Zookeeper

keepalived VS zookeeper两者都可以做高可用HA,那么有什么区别呢?1.从主被动的角度考虑    我们知道,nginx server通常和keepalived进行结合,那么keepalived是怎么知道nginx是否存活呢?是nginx主动向keepalived汇报信息?不是的。k...

2018-03-22 22:05:35 2396

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除