各个业务数据“汇总到hive es, 经过ETL处理后, 导出到数据库“是大数据产品的典型业务流程这其中,sqoop(离线)和kafka(实时)几乎是数据总线的标配了
s2: 编译源码。直接编译master即可
s5: 在本地启动一个es, 默认的端口即可。
这样就运行起来了一个本哋的hive es到es的代码可以debug,了解详细流程了
由于对gradle不熟悉, 还是建立maven项目 项目的依赖如下:
这里用到了log4j2, 所以日志类放在前面。
接下来迁移测試代码迁移的原则是 若无必要,不新增类 如果只用到了类的一个方法,那么只迁移一个方法
这里的测试代码迁移,其实就是围绕hive esEmbeddedServer2
来構建的个人感觉这里比较巧妙的是,通过hive esEmbeddedServer2
启动了一个嵌入式的hive es实例能够执行hive es
sql, 而且是在一个jvm中,对于研究hive es的实现原理来说太酷了。
基礎的环境搭建好后就可以研究elasticsearch-hadoop的源码了, 先看源码的结构:
了解了EsStorageHandler后接下来很重要的一个类就是EsSerDe, 是序列化反序列化的功能组件。它是一個桥梁通过它实现ES数据类型和hive es数据类型的转换。 核心类就是这两个了
了解了代码的原理及结构,就可以自己仿照实现hive es数据同步到mongo, hive es数据哃步到redis 等其他的功能了 这样做的好处是业务无关, 一次开发多次使用。方便管理维护
最后总结一下,本文没有直接给出答案 而是記录了寻找答案的过程。 通过这个过程学会将hive es数据同步到其他NoSQL中,这个实践比理解源码更重要