最近在折腾大数据,需要搭建一个yum源。一般的做法是在CentOS中安装httpd,然后将rpm包放入/var/www/html下面,再执行[createrepo .]即可。
不过虚拟机对传文件终归是慢一拍,所以考虑到性能,想直接使用宿主机(我用的win10)搭建一个yum源。
可以有多个选择:IIS、Tomcat、httpd、nginx等等,个人倾向于Tomcat,笑。
不过没想到Tomcat很不给面子,折腾如下:
第一次:在/conf/Catalina/localhost/ 下面新建Cloudera-cdh5.xml,UTF-8格式,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <Context path="/Cloudera-cdh5" docBase="C:\Cloudera-cdh5" crossContext="true"> </Context>
访问 http://localhost:8080/Cloudera-cdh5 报错,404。
第二次:将 C:\Cloudera-cdh5 剪切到/webapps下面,访问 http://localhost:8080/Cloudera-cdh5 报错,404。
肯定有哪里不对,不过一时没反应过来为什么不对。后来突然想到了,应该是文件服务器,而不是页面服务器!Tomcat默认应该是页面服务器!
搜索了一下,果然!
第三次:在第一次的基础上,再修改/conf/web.xml ,修改部分如下:
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
将 listings 的 false 改为 true 即可!该项参数的说明:如果没有欢迎文件(index.html),是否应该生成目录列表?默认false。
再次访问 http://localhost:8080/Cloudera-cdh5 ,正常!内容如下:
ps:这里的repodata目录,理论上应该是在CentOS中使用[createrepo .]命令生成的,复制出来即可。
另外,还尝试过使用windows版本的httpd,将 C:/Cloudera-cdh5 剪切至 /htdocs下面,可以正常访问。但如果在配置文件中指定htdocs以外的路径,会提示没有权限。不止如此,还需要修改配置文件中的so文件的位置,略麻烦。
理论上nginx最简单,未尝试。