June 26, 2017

Java的ClassPath问题

在文章《Spark Submit的ClassPath问题》中,我探讨了针对spark-submit的Jar包,如何指定外部依赖的Jar包。同样的问题在本地部署时仍然存在。此时,运行Jar并不是通过spark-submit,而是通过java命令,例如:

exec java -Xmx2000m -DMORT_HOME=$MORT_HOME -Ddata-set-parquet.path=$MORT_HOME/parquet -Dconfig.file=$MORT_HOME/mort.conf -jar $MORT_HOME/target/mort.jar > $MORT_HOME/mort......

June 21, 2017

剖析大数据平台的数据采集

我在一次社区活动中做过一次分享,演讲题目为《大数据平台架构技术选型与场景运用》。在演讲中,我主要分析了大数据平台架构的生态环境,并主要以数据源、数据采集、数据存储与数据处理四个方面展开分析与讲解,并结合具体的技术选型与需求场景,给出了我个人对大数据平台的理解。本文讲解数据采集部分。

数据采集的设计,几乎完全取决于数据源的特性,毕竟数据源是整个大数据平台蓄水的上游,数据采集不过是获取水源的管道罢了。

在数据仓库的语境下,ETL基本上就是数据采集的代表,包括数据的提取(Extract)、转换(Transform)和加载(Load)。在转换的过程中,需要针对具体的业务场景对数据进行治理,例如进......

June 11, 2017

剖析大数据平台的数据源

我在一次社区活动中做过一次分享,演讲题目为《大数据平台架构技术选型与场景运用》。在演讲中,我主要分析了大数据平台架构的生态环境,并主要以数据源、数据采集、数据存储与数据处理四个方面展开分析与讲解,并结合具体的技术选型与需求场景,给出了我个人对大数据平台的理解。本文是演讲内容的第一部分。

大数据平台是一个整体的生态系统,内容涵盖非常丰富,涉及到大数据处理过程的诸多技术。在这些技术中,除了一些最基础的平台框架之外,针对不同的需求场景,也有不同的技术选择。这其中,显然有共性与差异性的特征。若从整个开发生命周期的角度看,无论是需求、架构,还是开发、测试到最后的部署与运维,各种技术都会牵扯其中,不同......

June 09, 2017

Spark Submit的ClassPath问题

需求场景: 我们的产品需要与客户的权限系统对接,即在登录时使用客户的认证系统进行认证。集成认证的方式是调用客户提供的jar包,调用userService的authenticate方法。同时,还需要在classpath中提供密钥的key文件。

从需求看,这个集成并不复杂,且客户也提供了较翔实的接口文档与示例案例,开发工作量非常小。唯一的阻碍是客户有安全要求,内部的Jar包及其他文件都不能拷贝出来,而我们的开发环境是不能连接客户内网的。客户提供的Jar包并没有通过Maven来管理,我们只能采用直接导入的方式。在我们的Scala项目中,可以直接将要依赖的jar包放在module的lib文件夹下,......

April 19, 2017

针对ElasticSearch的查询

ElasticSearch提供的API非常丰富,丰富到可以称为空前强大的地步。谁让ElasticSearch的职业就是专门做这个的呢。然而,选择太多,也未必是好事,会让人感到困惑,不知道该在怎样的查询场景运用怎样的查询API。

ES的官方文档就Query DSL而言,就提供了两种查询方式:

Leaf query clauses

Compound query clauses

后者又包含了多种查询方式:

constant_score query

boolean query

dis_max query

function_score query

boosting query

indice......