- 博客(195)
- 资源 (64)
- 收藏
- 关注
原创 简单易懂的Actor通讯系统栗子
使用定义消息协议object Messages { case class Hello(content: String) case class World(content: String)}定义常量object Cons { val ResourceManagerName = "ResourceManagerName" val NodeManagerName = "...
2019-02-21 11:15:29 272
原创 来、这里有Hbase导出CSV格式数据的文章
新鲜文章,昨天刚经过线上验证过的,使用它导出了3亿的用户数据出来,花了半个小时,性能还是稳稳的,好了不吹牛皮了,直接上代码吧。MR考查了Hbase的各种MR,没有发现哪一个是能实现的,如果有请通知我,我给他发红包。所以我们只能自己来写一个MR了,编写一个Hbase的MR,官方文档上也有相应的例子。我们用来加以化妆就得到我们想要的了。导出的CSV格式为admin,22,北京admi...
2019-02-21 11:13:43 600
原创 Spark 在文件上直接使用SQL查询
有时候有没有这么一种情况,我拿到了一个sql,csv,parquet文件,一起来就想写sql,不想写那些乱七八糟的的东西,只是想快速实现我要的数据。那么我们可以利用spark直接操作文件的特性处理这样的问题。使用方法csvspark.sql("select * from csv.`/tmp/demo.csv`").show(false)jsonspark.sql("select *...
2019-02-21 11:11:39 758
原创 Spark 直接操作数据源 MySQL
如果我们的Mysql服务器性能不咋滴,但是硬盘很够,如何才能做各种复杂的聚合操作?答案就是使用spark的计算能力的,我们可以将mysql数据源接入到spark中。读取val mysqlDF = spark .read .format("jdbc") .option("driver","com.mysql.jdbc.Driver") .option("url","jdbc:...
2019-02-21 11:10:51 1206
原创 Spark 数据源jdbc2新增upsert功能
在spark的数据源中,只支持Append, Overwrite, ErrorIfExists, Ignore,这几种模式,但是我们在线上的业务几乎全是需要upsert功能的,就是已存在的数据肯定不能覆盖,在mysql中实现就是采用:ON DUPLICATE KEY UPDATE,有没有这样一种实现?官方:不好意思,不提供,dounine:我这有呀,你来用吧。哈哈,为了方便大家的使用我已经把项目...
2019-02-21 11:10:10 2679 3
原创 Scala shell 使用外部包方法
我们可以使用scala shell做很多事情,比如测试一些demo,不用再打开idea那类那么重的编辑器,当然还有其它用法,像我们使用hbase有这样的问题,只是想测试hbase一些东西,但是每次连接hbase很慢,使用scala shell可以先把hbase连接池先创建好,需要测试什么样的代码直接放进去执行即可,即共享变量。使用方法引用单个包scalaWelcome to Scala...
2019-01-31 14:42:07 1115 1
原创 你们还在用 Scala Tuple234..? Outer啦
为什么这么说呢,难道我自己多年使用的方式错了嘛,是的,你没错,我错了,哈哈,主要原因是使用Tuple的时候容易搞错对象,Tuple2的时候还知道第一个参数跟第二个参数的意思,后面多来个几参数你会记得_1._2._3._4代表的意思是什么吗?代码结构也不好维护,所以请结束使用Tuple吧请开始你的表演正常使用Tupleval list = Array((1,2,3,4),(5,6,7,8...
2019-01-31 14:41:19 276
原创 Hbase 迁移数据[导出,导入]
有没有这样一样情况,把一个集群中的某个表导到另一个群集中,或者hbase的表结构发生了更改,但是数据还要,比如预分区没做,导致某台RegionServer很吃紧,Hbase的导出导出都可以很快的完成这些操作。环境使用现在环境上面有一张表logTable,有一个ext列簇但是没有做预分区,虽然可以强制拆分表,但是split的start,end范围无法精确控制。方式一 (先导出再导出)...
2019-01-25 00:44:39 603
原创 Spark 资源动态释放
通过spark-submit会固定占用一占的资源,有什么办法,在任务不运作的时候将资源释放,让其它任务使用呢,yarn新版本默认已经支持了,我们使用的是HDP。版本如下配置HDP里面已经默认支持spark动态资源释配置代码配置val sparkConf = new SparkConf() .set("spark.shuffle.service.enabled",...
2019-01-10 10:16:01 2825
原创 Gradle 打包上传中央仓库
打包步骤生成gpg密钥gpg --full-generate-keygpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc.This is free software: you are free to change and redistribute it.There is NO WARRANTY, to t...
2019-01-10 10:14:16 1350
原创 HDFS_DELEGATION_TOKEN 还原及解决方案
HDFS_DELEGATION_TOKEN 这个BUG在很多文章中都出现着,讲了很多原理,但是只给出了官方引用地扯,完全没有给出如何解决,我们线上的业务就有着这样的问题,7天一到马上出现这问题了,官方明明说这个bug修复了呀,因为我们使用的版本是比较新的,理论上不会有这样的问题才对,可是偏偏就有了,没办法,只能上了,花了两天的时间发现了这个问题,下面会还原这个错误及给出解决方案。版本列表...
2018-12-29 17:21:43 4330
原创 Hive 创建外部表失败解决方案
在hdp平台上,使用hive控制台创建一个hbase的外部表,出现ERROR : FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:org.apache.hadoop.hbase.TableNotFoundException,原因是启动...
2018-12-07 17:26:25 2860
原创 干货SSH web版
想不想拥有一个网页版本的ssh?,想就快看看这里,演示图会给你说明一切。安装RHEL/CentOS/Fedorayum install shellinabox -y配置vi /etc/sysconfig/shellinaboxd请加上最后一句,否则连不上# Shell in a box daemon configuration# For details see shelli...
2018-12-07 17:25:08 2402
原创 Scala精简版Filebeat日志采集器
多功能Scala精简Filebeat日志采集版,可高度定制化。依赖包compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.7'compile group: 'commons-io', name: 'commons-io', version: '2.6'compile group: 'com.go...
2018-12-07 17:23:41 367
原创 大数据平台docker一键搭建
想不想快速拥有大数据环境?如何才能一键安装?傻瓜式引导?这里就有你想要的,我们可以使用hortonworks出品的sandbox-hdp来搭建,它是建立在docker环境之上的集群,很轻易的主可以把环境搭建起来。使用方法这里我会使用HDP的最新版本3.0.1作为演示,包含的组件版本如下组件版本HDFS3.1.1YARN3.1.1MapReduce2...
2018-12-07 17:20:31 6624 3
原创 大数据 Flink 1.8 最新版本使用
Flink 1.8 的快照版本已经发布,我们可以来使用一下,当然了,过程肯定还是有一些曲折的,这里已经帮大家给记录下来了使用过程下载git clone https://github.com/apache/flink编译(大概有20分钟这样)cd flinkmvn clean package -DskipTests编译通过版本在build-target目录中[admin@st...
2018-11-19 01:24:31 3309
原创 Flink - CEP 实时分用户析攻击行为
在这样一种场景,用户的登录行为数据都会以LoginEvent的行式记录下来,每次失败或者成功以及错误都会记录下来,一般客户端都会进行检验,正常的用户不可能在一秒钟之内登录错误多次,这时候我就得怀疑这部分数据是不是机器对用户的密码进行暴力破解,如果有需要我们得将这些攻击IP进行封锁。Flink - CEP 优点复杂性:多个流join,窗口聚合,事件序列或patterns检测低延迟:秒或毫秒...
2018-11-19 01:22:47 5012 7
原创 Mysql 实现upsert已有更新操作
在看到了mongoTemplate的操作之后,觉得这种东西是很符合我们程序员世界的操作的,但是看到mysql的jdbc之后,瞬间一百万个小泥马从头飘过,所以就想自己实现一个mysql版本的upsert功能,有set与increase,decrease。实现操作参考mongoTemplate,创建一个update.java类,方便两款db之间转换import java.util.HashM...
2018-11-06 17:48:23 1619
原创 React - Redux架构设计融合
在学习react的路上不断前行,遇到了各式各样的框架及架构,但整体是要做一个兼容性及性能非常好的项目并非易事,在react中,出现了redux生态圈,得以将react这匹黑马驾驭得更好,此文将演示redux生态在实际项目运用。整备网络:axios一个基于promise实现的网络请求库,功能齐全,库精简融合:redux-actions解放switch,代码更简洁性能:redux-i...
2018-11-03 21:49:04 392
原创 Google开源翻译 Nodejs版本
我们使用翻译API当然要优先使用Google翻译了,但是Google翻译有一个经典的说法就是tk这个需要我们用特殊的方法创造出来,伟大的Github社区已经有这样的项目了,所以我们就现用,近期Google翻译又更新,我们还需要修改一点点东西才能使用,与其说是开源,不如说是社区的造福。使用方法创建新项目mkdir testnpm init添加包npm install google-...
2018-11-02 19:16:34 1534
原创 Nodejs 日志websocket实时输出
有这样一个需求,想要通过websocket查看某些日志文件的输出(新的文件,或者是新添加的内容,可以按行输出),并且需要实时的,可采用系统的tail并结合spawn命令进行。使用方法package.json{ "name": "logs", "version": "1.0.0", "main": "index.js", "license": &
2018-11-02 19:15:48 1429
原创 Java 定位导致CPU飙升的代码过程
线上的一个日志实时输出的程序曾经出过这样一个问题,刚开始上线java程序占用的CPU的资源很少,但是到了整点的时候,CPU直线飙高,直接到达100%根本没有要下降的趋势,唯一的方法只能杀掉它了,后面在借助jstack与top排查到线程然后定位到某行代码出的问题。排查演示使用jps找到程序的pid[root@logs bin]# ./jps -l -m | grep logdir22...
2018-11-02 19:14:53 5783
原创 Spark-Streaming KafkaClient 异常解决
在使用Spark-Streaming消费Kafka数据的时候,使用如下命令提交到yarnCaused by: java.lang.IllegalArgumentException: Could not find a 'KafkaClient' entry in the JAAS configuration. System property 'java.security.auth.login.co...
2018-10-23 17:06:49 3987 3
原创 Mysql upsert 使用技巧
mongo中会有upsert,Mysql只能使用DUPLICATE KEY UPDATE来实现,发现数据条数减少,而且数据不正确。经过进一步的排查,发现使用DUPLICATE KEY UPDATE是有技巧的。技巧DUPLICATE KEY UPDATE是建立在唯一索引之上的,也就是组成的key必需是唯一的,也就是要符合我们的条件。使用INSERT INTO `demo`(`a`,`b`...
2018-10-23 17:03:49 6148 1
原创 React-Native 消息推送
在这里我们可以选择大厂的推送,优先使用极光推送,下一篇将介绍如何使用阿里推送。使用说明PS: 真没想到极光大厂出的官方文档也有问题,这里列出是最新版本修复可用版创建新项目react-native init rn_jpush过程(省略)This will walk you through creating a new React Native project in /Users/h...
2018-10-23 16:55:02 2874
原创 gradle 打包独立jar项目
使用SpringBoot的项目会把所依赖的jar包都打进一个jar文件里面,直接运行即可,那我们如何使用Gradle将我们的信赖jar包打入一个文件当中呢。演示配置文件buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } ...
2018-09-27 18:34:44 3954
原创 Linux json文件(排序|去重)
如果有这样一些日志,里面是json内容的格式,我们需要对其某些字段进行排序,最方便的就是使用jq命令处理了,当然使用awk也可以处理,最方便还是jq,此文介绍jq在排序中的使用。使用教程文件test.logjson文件数据{"time":1537111143,"ti":1537111143233,"data":{"v":"1.1.0","ext":{"ak":
2018-09-18 19:50:03 1198
原创 Storm-Kafka 一分钟例子
以下文章使用了kafka作为storm的sport数据源,依赖于docker-compose环境,如果自己本机已经有了zookeeper与kafka环境则可以使用自己的环境。使用教程docker-compose.ymlversion: '2'services: zookeeper: image: wurstmeister/zookeeper por...
2018-08-13 21:51:55 1072
原创 使用Kerberos安全读取HDFS文件
使用指南导入依赖包compile group: 'org.apache.hadoop', name: 'hadoop-hdfs', version: '2.7.6'compile group: 'org.apache.hadoop', name: 'hadoop-common', version: '2.7.6'krb5.conf 文件(从KDC服务器上复制下来)[lib...
2018-08-13 21:49:36 1510
原创 Hbase kerberos认证问题
KrbException: Server not found in Kerberos database (7) - LOOKING_UP_SERVER>>> KdcAccessibility: remove storm1.starsriver.cn at sun.security.krb5.KrbTgsRep.<init>(KrbTgsRep.java:73...
2018-08-13 21:48:23 4701
原创 Spark SerializedLambda错误解决方案
在IDEA下开发Spark程序会遇到Lambda异常,下面演示异常及解决方案。例子import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spa...
2018-08-13 21:47:04 3730 1
原创 自定义Rowkey规则读取Hbase数据
在Flink中我们有时候需要分析数据1点到2点的范围,可是经过Region又比较慢,这时候我们就可以定制TableInputFormat来实现我们的需求了,我们还可以采用Flink的DataSet的方式读取,另外下面还有Spark读取的例子。使用教程Md5Util.javaimport org.apache.commons.codec.binary.Hex;impo...
2018-08-13 21:46:12 733
原创 Docker 1分钟搭建Maven仓库Nexus3
这里使用最新版本的nexus3.11作为演示,nexus作为maven构建的仓库。使用演示依赖docker非挂载方式运行docker run -p 8081:8081 -dti dounine/nexus /nexus/bin/nexus run将仓库文件保存到本地方式运行docker run -p 8081:8081 -v /xxxx/nexus/st...
2018-05-07 17:18:00 307
原创 Nodejs 让异步变成同步
异步给我们带来的性能是明显的,但同时也给我们带了复杂的业务逻辑过程,特别请求依赖多的时候,下面我们来看看如何解决此类这样的问题。使用方法在这里我们信赖于co这个库。npm install co --save#or yarn add co模拟# 登录请求let loginReq = new Promise((resolve,reject)=>...
2018-05-02 15:08:57 3714 1
原创 springcloud 高效率本地加Redis双级缓存
在springcloud中我们可以使用spring-boot-starter-data-redis已经为我们处理好分布式缓存,但是我们还是不满足于只存在于网络中传输的缓存,我们现在来扩展成本地加Redis双级缓存,这样就可以减少网络传输带来的传输效率。以下是针对已经整理好的项目进行直接使用打包安装项目 springcloud-twocachegit clone http...
2018-04-19 16:27:29 3244
原创 Docker下使用Elasticsearch可视化Kibana
Kibana 作为Elasticsearch优秀的可视化的开源分析工具,我们下面使用Docker结合进行最简单的上手演示。使用教程在这里我们使用Linux系统作为演示 系统:Fedora28 内核:uname -r4.16.2-300.fc28.x86_64docker版本docker --versionDocker version 18.03....
2018-04-19 15:52:01 2281
原创 Docker 解决容器时区时间不一致
有没有遇到这么一些问题,开发在本地测试没问题,将项目打包到线上计算出来的时间不是少了8个小时就是多了8个小时,这是因为容器的系统默认时间跟我们中国的时间对不上,所以才会有这样的问题。解决方案最傻瓜也最方便的处理方式docker run -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -t...
2018-04-17 16:29:44 12234 1
原创 mongo 新增删除字段操作
新增字段对demo collection集合增加字段db.getCollection('demo').update({},{$set:{"field":true}},false,true)删除字段对demo collection集合删除字段db.getCollection('xxx').update({},{$unset:{"field":""}},fals...
2018-04-17 16:28:56 1185
原创 springcloud fegin获取request header解决方案
假设现在有A服务,B服务,外部使用RESTApi请求调用A服务,在请求头上有token字段,A服务使用完后,B服务也要使用,如何才能把token也转发到B服务呢?这里可以使用Feign的RequestInterceptor,但是直接使用一般情况下HttpServletRequest上下文对象是为空的,这里要怎么处理,请看下文。演示A服务FeginInterceptor...
2018-04-17 16:28:24 10336 1
原创 Redis 可视化界面工具
现在比较出名的跨平台可视化界面有两款,web上的就比较多,但功能不是很强大,没有native版本的强大。RedisDesktop官网地扯: 传送门 源码方式安装git clone --recursive https://github.com/uglide/RedisDesktopManager.git -b 0.9 rdm && cd ./rdm...
2018-03-29 18:02:09 38846 2
JUnit4.9最新版本
2014-12-15
pinyin4j-2.5.0.zip
2014-08-13
google-collections-1.0.jar
2014-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人