spark2.2新版本编译打包

之前已经多次打包过spark了,但是每次重新打包的时候都忘记一些细节,并且spark1.6与2.2打包也有不同,与官网推荐有一些出入,现在就spark2.2.1的打包,总结如下:

由于直接下载预编译好的spark与我们的集群环境不够符合,因此需要下载源码后本地编译
参考:
http://spark.apache.org/docs/latest/building-spark.html

阅读全文

使用Ansable安装管理Spark客户端

随着生产的spark升级到2.2.0,我要为很多用户同时提供spark2.2.0以及spark1.6.2的客户端,这是一个比较繁琐耗时的操作,很烦,况且其它开发项目比较紧张,我决定学习使用Ansable来统一管理它们。

关于Ansable

略 配置管理的思想,基于推送的模式

阅读全文

spark往ES中写入数据的方法

他们之前把数据导入ES是通过单机的程序导的,或者通过logstash从kafka往ES导,但当数据量很大的时候就会变得很低效,我这两天调研了一下把数据从hdfs直接通过spark导入ES的方法,当然,也适合spark Streaming程序;
这里指出版本号是有必要的,spark版本:1.6.2 ES版本:5.2.1,由于ES的API变动比较频繁,因此最好参考官网文档。

阅读全文

spark在yarn中运行jdk8

我们hadoop集群使用jdk版本为1.7,由于往5.X的ES中写数据必须要使用jdk1.8,该怎么办呢?
首先,把hadoop集群升级到jdk1.8是肯定可以的,但是这样代价太大。
我们通过如下两步操作,就可以在不升级集群的基础上,在yarn上运行用jdk1.8编译的spark程序。

阅读全文

返回区域实时人数的思路与总结

问题背景

先说一下整个位置服务的背景,需求比较复杂,细节比较多,在这里简明扼要说一下:

  1. 用户A(spId)在中国地图上画了100个圆圈(locationId),想让我们实时告诉他这些圈内新来的人和他的位置信息,哪些是游客哪些是土著;

阅读全文

位置服务开发上线总结————实时数据推送

天作棋盘星作子,谁人能下? 地为琵琶路为弦,哪个敢弹!

位置服务项目不止一期,也断断续续写了一年,不知从哪里谈起,在此着重记录一些问题以及一些解决方案,重要的是在解决问题过程中的思考。

阅读全文

spark奇技淫巧总结之强大的flatMap

spark RDD与DStream API支持很多好用的算子,最常用的莫过于map和filter了,顾名思义可知:
map: 返回一个新的分布式数据集,其中每个元素都是由源RDD中一个元素经func转换得到的;
filter: 返回一个新的数据集,其中包含的元素来自源RDD中元素经func过滤后(func返回true时才选中)的结果;

阅读全文

OpenAPI微服务接入规范

OpenAPI采用了微服务的架构,基于Spring Cloud为微服务系统中相互依赖的服务提供了丰富的连接选项。

接口规范

OpenAPI采用了微服务的架构,每个微服务使用统一的对外接口规范,不需要考虑安全与负载均衡等其它因素,只需要关注自己的业务逻辑即可,参数与对外返回应该保持一致;

阅读全文

OpenApi之我浅薄见解

说到OpenAPI,顾名思义,主要包含两个内容:

Open:权限和安全
API:对外提供统一的访问接口,我们将我们的能力封装成一系列API

阅读全文

阿里巴巴Java开发手册学习笔记(下)

异常日志

异常处理

【强制】不要捕获 Java 类库中定义的继承自 RuntimeException 的运行时异常类,如:IndexOutOfBoundsException / NullPointerException,这类异常由程序员预检查来规避,保证程序健壮性。

正例: if(obj != null) {…}
反例: try { obj.method() } catch(NullPointerException e){…}

阅读全文