IntelliJ IDEA + Maven环境下对hadoop、hive-udf的pom.xml配置依赖
一、Maven配置
1.1 配置本地仓库
在Maven的根目录下新建目录localrepository(单层目录即可)作为本地仓库路径,复制路径,比如“D:\software\apache-maven-3.5.4\localrepository”到settings文件
打开D:\software\apache-maven-3.5.4\conf,用notepad打开settings.xml文件,找到标签添加上路径
<localRepository>D:\software\apache-maven-3.5.4\localrepository</localRepository>
1.2 配置远程镜像
在settings.xml文件中,找到mirrors标签,在其中加入华为云阿里云的的远程镜像
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
1.3.1 引入外部Jar文件的两种方法
maven官网搜索要加入的依赖 -> …
project structure -> modules->选中对应的模块->Dependencies->±>jars or directories->选择xxx.jar确定即可
1.3.2 引入自定义Jar
Maven projects ->life cucle ->package:双击打资源包xxx.jar ,位于target根目录
Maven projects ->life cucle ->install:双击,进入maven本地仓库apache-maven-3.5.4\localrepository\cn\xym\spark\sparkstreaming\1.0-SNAPSHOT -> pom.xml -> 下面代码块 ->localRepsitory->jar包也在该目录下
<groupId>cn.xym.spark</groupId>
<artifactId>sparkstreaming</artifactId>
<version>1.0-SNAPSHOT</version>
问题:公司做项目,几层包结构
包的层级定义
第一层:域名倒置,因为域名是唯一的cn.kgc
第二层:项目名称taobaooor
第三层:模块modcart
第四层:对外释放的接口层outcart
第五层:类xxxclass
第六层:中间件carttmq
第七层:引擎engine
二、新建IntelliJ下的maven项目
1、点击File->New->Project,在弹出的对话框中选择Maven,JDK选择你自己安装的版本,点击Next
2、填写Maven的GroupId和ArtifactId
GroupId文件包:cn.xym.hadoop
ArtifactId项目名称:mapreducedemo
3、设置程序的编译版本
Java Compiler:版本号设置为1.8
modules:language设置为8
三、hadoop配置依赖
1、编辑pom.xml进行配置
修改mavensource和target为1.8
2、添加apache源
在property内尾部添加
<hadoop.version>2.6.0-cdh5.14.2</hadoop.version>
<log4j.version>1.2.17</log4j.version>
在dependency内尾部添加
<!-- hadoop-common -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
<!-- hadoop-hdfs -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
</dependency>
<!-- hadoop-client -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
build标签上方,添加以下内容
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
3、点击右下角弹出的Enable Auto Import
四、hive-udf配置依赖
编辑pom.xml进行配置,添加apache源
1、修改mavensource和target为1.8
2、在name标签下粘贴源数据
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
3、在properties标签内添加以下数据
<hive.version>1.2.1</hive.version>
<hadoop.version>2.7.3</hadoop.version>
<jdk.version>0.11.0.0-cp1</jdk.version>
<junit.version>4.12</junit.version>
<mvnshade.version>2.4.1</mvnshade.version>
<confluent.maven.repo>http://packages.confluent.io/maven/</confluent.maven.repo>
4、替换dependencies里的所有标签为以下内容
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>${hive.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
五、HBase配置依赖
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.2.0-cdh5.14.2</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version>1.2.0-cdh5.14.2</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>1.2.0-cdh5.14.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0-cdh5.14.2</version>
</dependency>