一、需求背景
有一个需求是,需要将云窗上hive表数据同步到es,采用的技术方案是MapReduce,同步es依赖一个jar包是org.elasticsearch:elasticsearch-hadoop:2.4.5,这个jar包云窗服务器执行任务时缺失,所以现在需要把这个依赖jar打到mr任务的jar包里。
二、工具
IDE:intellij idea
三、操作步骤
- 配置Modules和Artifacts
- 导入项目时,注意jdk要用1.7版本,目前云窗不支持1.8
- 配置Modules
- 选择File > Project Structure,弹出如下界面
- 配置Artifacts这一步比较关键,先添加artifacts
- 配置mainclass
-
- 配置输出
- 上一步remove后,剩下的mapreduce依赖如下
- 添加依赖jar 选中依赖的jar(elasticsearch-hadoop-2.4.5.jar) 通过extract into output root导入
- 最后导入的结果为
- 依赖的jar信息如下
Maven: org.elasticsearch:elasticsearch-hadoop:2.4.52
Maven: org.apache.hadoop:hadoop-client:2.2.02
Maven: org.apache.hadoop:hadoop-common:2.6.52
Maven: org.apache.hadoop:hadoop-mapreduce-client-app:2.2.02
Maven: org.apache.hadoop:hadoop-mapreduce-client-common:2.6.52
Maven: org.apache.hadoop:hadoop-mapreduce-client-shuffle:2.6.52
- Build
- Build jar
- 通过build > build artifacts 选择要build的jar,build之后到之前artifacts配置的output directory里去找到生成的jar就可以
- Build jar
- Build