CentOS中用Nexus搭建maven私服,为Hadoop编译提供本地镜像

系统: CentOS release 6.6 (Final)

Nexus:nexus-2.8.1-bundle.tar.gz,下载地址:https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.8.1-bundle.tar.gz

Java: java version "1.7.0_80"

创建目录并进入目录:mkdir /usr/local/nexus

解压文件:tar -zxvf nexus-2.8.1-bundle.tar.gz,解压后会出现两个目录:nexus-2.8.1-01,sonatype-work

进入nexus-2.8.1-01中,启动nexus:bin/nexus start.

显示启动信息:

Starting Nexus OSS...

Started Nexus OSS...

在防火墙中加入nexus的8081工作端口。

在/etc/sysconfig/iptables的IPPUT链中添加:-A INPUT -p tcp -m tcp --dport 8081 -j ACCEPT

重启防火墙service iptables restart

在浏览器中打开nexus中管理界面:http://ip:8081/nexus 登录admin/admin123,登陆后可自行修改密码

点击左侧的Repositories,可以查看现有的Repository。

选中Central,然后点击下方的“Configuration”,将“Download Remote Indexes”改为True,这样就可以查看远端maven库的Index了

Central Repository是编译Apache Hadoop时要用到的,但是我要编译Cloudera Hadoop,那么就需要另外3个Cloudera Repository,分别是Cloudera Releases Repository,Cloudera SnapShots Repository和Cloudera Repositories。

在nexus中管理界面:http://ip:8081/nexus的Repository中新加Repository,下图分别为这3个Repository的configuration信息。

按照图中配置好之后就可以了。

然后再CentOS中的$maven_home目录下的conf目录中的setting.xml文件中设置mirror信息,如下:

 1 <mirror>
 2 <id>central</id>
 3 <mirrorOf>central</mirrorOf>
 4 <name>central Mirror.</name>
 5 <url>http://client:8081/nexus/content/repositories/central/</url>
 6 </mirror>
 7 <mirror>
 8 <id>cdh</id>
 9 <mirrorOf>cdh.repo</mirrorOf>
10 <name>cdh Mirror.</name>
11 <url>http://client:8081/nexus/content/repositories/cdh.repo/</url>
12 </mirror>
13 <mirror>
14 <id>cdh.snapshot</id>
15 <mirrorOf>cdh.snapshots.repo</mirrorOf>
16 <name>cdh snapshot Mirror.</name>
17 <url>http://client:8081/nexus/content/repositories/cdh.snapshots.repo/</url>
18 </mirror>
19 <mirror>
20 <id>cdh.release</id>
21 <mirrorOf>cdh.releases.repo</mirrorOf>
22 <name>cdh release Mirror.</name>
23 <url>http://client:8081/nexus/content/repositories/cdh.releases.repo/</url>
24 </mirror>
25 <mirror>
26 <id>cdh.third-party</id>
27 <mirrorOf>third-party</mirrorOf>
28 <name>cdh Third-Party Mirror.</name>
29 <url>http://client:8081/nexus/content/repositories/third-party/</url>
30 </mirror>

然后再编译Hadoop CDH源码时需要的jar包就会去搭建的maven私服上去下载,如果maven私服上没有,那么maven私服回去remote仓库上去下载并缓存,这样以后再需要同样的jar包就不用去remote仓库下载了,节省时间,且加快速度。

 

posted @ 2016-06-16 22:05  Xu Feng  阅读(845)  评论(0编辑  收藏  举报