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仓库下载了,节省时间,且加快速度。