cdh5 hadoop redhat 本地仓库配置
cdh5 hadoop redhat 本地仓库配置
cdh5 在网站上的站点位置:
http://archive-primary.cloudera.com/cdh5/redhat/6/x86_64/cdh/
在RHEL6上配置指向这个repo非常简单,只要把:
http://archive-primary.cloudera.com/cdh5/redhat/6/x86_64/cdh/cloudera-cdh5.repo
下载存储到本地即可:
/etc/yum.repos.d/cloudera-cdh5.repo
但是如果是离线情况下,网络连接不可用,就需要把整个资源镜像到本地,然后在cloudera-cdh5.repo中配置。我写了一个脚本,用于下载整个站点。虽然用wget一个命令可以搞定,为了练练shell脚本,我还是写了一个。基本思路就是分析网页,找到资源链接,存储到本地目录。脚本中:PATH_MUST_BE_EXSITED必须指向已经存在的本地目录。不废话,上代码:
#!/bin/bash
#
# @file
# cdh5_rhel6-downloads.sh
#
# @date
# 2014-12-18
#
# @author
# cheungmine
#
# @version
# 0.0.1pre
#
# downloads all from CDH_URL_PREFIX:
# http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/
#
################################################################################
# specify where you want to save downloaded packages here:
#
PATH_MUST_BE_EXSITED="../libs/cdh"
# get real path from relative path
function real_path() {
\cd "$1"
/bin/pwd
}
# server dist resources:
#
CDH_URL_PREFIX="http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh"
CDH_GPGKEY=$CDH_URL_PREFIX"/RPM-GPG-KEY-cloudera"
CDH_REPO=$CDH_URL_PREFIX"/cloudera-cdh5.repo"
CDH5_REPODATA=$CDH_URL_PREFIX"/5/repodata/"
CDH5_RPMS_NOARCH=$CDH_URL_PREFIX"/5/RPMS/noarch/"
CDH5_RPMS_X86_64=$CDH_URL_PREFIX"/5/RPMS/x86_64/"
# source packages not used:
CDH5_SRPMS=$CDH_URL_PREFIX"/5/SRPMS/"
# get local absolute path for storing the downloaded:
CDH5_LOCALPATH=$(real_path $PATH_MUST_BE_EXSITED)
echo "**** downloaded packages will be stored in folder: "$CDH5_LOCALPATH
# first we get index pages:
#
repodata_html=$CDH5_LOCALPATH"/.repodata.index.html"
x86_64_html=$CDH5_LOCALPATH"/.x86_64.index.html"
noarch_html=$CDH5_LOCALPATH"/.noarch.index.html"
wget -c $CDH5_REPODATA -P $CDH5_LOCALPATH -O $repodata_html
wget -c $CDH5_RPMS_NOARCH -P $CDH5_LOCALPATH -O $noarch_html
wget -c $CDH5_RPMS_X86_64 -P $CDH5_LOCALPATH -O $x86_64_html
wget -c $CDH_GPGKEY -P $CDH5_LOCALPATH
wget -c $CDH_REPO -P $CDH5_LOCALPATH
# download repodata
# CDH5_REPODATA
repodata_dir=$CDH5_LOCALPATH"/5/repodata"
mkdir -p $repodata_dir
echo -e "process file: '$repodata_html'"
while read line
do
# start with: <td><a href="
a=`echo $line | sed -n '/<td><a href="/p'`
if [ -n "$a" ]; then
b=`echo $a | sed -n '/Parent Directory/p'`
# do including: Parent Directory
if [ -z "$b" ]; then
# end with: </a></td>
b=`echo $a | sed -n '/<\/a><\/td>/p'`
if [ -n "$b" ]; then
a=`echo $a | sed -e 's/.*<td><a href="//;s/">.*//'`
url=$CDH5_REPODATA$a
echo -e "download: $url"
wget -c $url -P $repodata_dir -O $repodata_dir/$a
fi
fi
fi
done < $repodata_html
# download noarch
# CDH5_RPMS_NOARCH
noarch_dir=$CDH5_LOCALPATH"/5/RPMS/noarch"
mkdir -p $noarch_dir
echo -e "process file: '$noarch_html'"
while read line
do
# start with: <td><a href="
a=`echo $line | sed -n '/<td><a href="/p'`
if [ -n "$a" ]; then
b=`echo $a | sed -n '/Parent Directory/p'`
# do including: Parent Directory
if [ -z "$b" ]; then
# end with: </a></td>
b=`echo $a | sed -n '/<\/a><\/td>/p'`
if [ -n "$b" ]; then
a=`echo $a | sed -e 's/.*<td><a href="//;s/">.*//'`
url=$CDH5_RPMS_NOARCH$a
echo -e "download: $url"
wget -c $url -P $noarch_dir -O $noarch_dir/$a
fi
fi
fi
done < $noarch_html
# download x86_64
# CDH5_RPMS_X86_64
x86_64_dir=$CDH5_LOCALPATH"/5/RPMS/x86_64"
mkdir -p $x86_64_dir
echo -e "process file: '$x86_64_html'"
while read line
do
# start with: <td><a href="
a=`echo $line | sed -n '/<td><a href="/p'`
if [ -n "$a" ]; then
b=`echo $a | sed -n '/Parent Directory/p'`
# do including: Parent Directory
if [ -z "$b" ]; then
# end with: </a></td>
b=`echo $a | sed -n '/<\/a><\/td>/p'`
if [ -n "$b" ]; then
a=`echo $a | sed -e 's/.*<td><a href="//;s/">.*//'`
url=$CDH5_RPMS_X86_64$a
echo -e "download: $url"
wget -c $url -P $x86_64_dir -O $x86_64_dir/$a
fi
fi
fi
done < $x86_64_html
# TODO: do we need to check all packages?
# remove index pages:
rm -f $repodata_html $x86_64_html $noarch_html
echo "download all packages successfully."
上面脚本可以重复多次运行,不会重复下载。PATH_MUST_BE_EXSITED里面保存了cdh5全部内容。最后把PATH_MUST_BE_EXSITED的全部内容上传到本地ftp服务器上,确保可以访问:
ftp://your-server-ip/pub/libs/cdh/
然后在需要访问的RHEL6机器上,增加一个repo文件,我的是:
# /etc/yum.repos.d/cdh5.repo
[cloudera-cdh5] # Packages for Cloudera's Distribution for Hadoop, Version 5, on RedHat or CentOS 6 x86_64 name = Cloudera's Distribution for Hadoop, Version 5 baseurl = ftp://your-server-ip/pub/libs/cdh/5/ gpgkey = ftp://your-server-ip/pub/libs/cdh/RPM-GPG-KEY-cloudera gpgcheck = 1 enabled = 1
好了,cdh的本地仓库建好了。只要能访问到这个ftp的服务器中存在这个 /etc/yum.repos.d/cdh5.repo 文件,就可以安装cdh hadoop的软件包。比如安装个zookeeper服务端:
#Installing the ZooKeeper Base Package $ yum install zookeeper # Installing the ZooKeeper Server Package $ yum install zookeeper-server # start zookeeper-server $ service zookeeper-server init --myid=1 Using myid of 1
zookeeper安装在/usr/lib/zookeeper,进入bin目录启动和关闭:
$ zkServer.sh start $ zkServer.sh stop
OK!
cdh5 hadoop redhat 本地仓库配置的更多相关文章
- (三)Maven仓库介绍与本地仓库配置
1.Maven本地仓库/远程仓库的基本介绍 示意图: 本地仓库是指存在于我们本机的仓库,在我们加入依赖时候,首先会跑到我们的本地仓库去找,如果找不到则会跑到远程仓库中去找.对于依赖的包大家可以从这个地 ...
- Maven本地仓库配置
一. 为什么配置? 默认情况下,maven的本地仓库在C盘下用户文件夹: .m2/repository.全部的maven构件(artifact)都被存储到该仓库中.以方便重用. 可是放在C盘一个是占用 ...
- Java开发环境配置(4)--Maven安装 环境变量配置,本地仓库配置---插件安装
说明在前:本人用过的 luna mars 等,都已经自带maven插件的了,以下有些文章是很老的,讲到maven插件的安装都可以忽略掉. maven安装eclipse在线配置maven搞定所有插件_ ...
- Maven 教程(3)— Maven仓库介绍与本地仓库配置
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79537837 1.Maven本地仓库/远程仓库的基本介绍 本地仓库是指存在于我们 ...
- eclipse的maven配置及本地仓库配置
一.下载maven并解压 下载地址:http://maven.apache.org/download.cgi 解压后如下: 二.配置环境变量 配置MAVEN_HOME 再path中添加 安装成功 三. ...
- 淘淘商城 本地仓库配置和仓库jar包下载
SVN服务器的搭建请查看该文:<Win7 x64 svn 服务器搭建> 1:仓库包存放位置: 2:setting.xml 文件配置信息 <?xml version="1.0 ...
- gradle本地、远程仓库配置
本地仓库配置 配置环境变量GRADLE_USER_HOME,并指向你的一个本地目录,用来保存Gradle下载的依赖包. 远程仓库配置 一般Gradle.maven从中央仓库mavenCentral() ...
- gradle本地、远程仓库配置--转
https://blog.csdn.net/x_iya/article/details/75040806 本地仓库配置配置环境变量GRADLE_USER_HOME,并指向你的一个本地目录,用来保存Gr ...
- Maven本地仓库/中央仓库(阿里镜像)/JDK配置
第一步打开你已经下载好的Maven,进入:根磁盘:\......\apache-maven-3.6.2\conf文件夹找到settings.xml文件(没有的可以自行创建一个同名的文件即可) 使用文本 ...
随机推荐
- Swift3中方法可变参数语法的一些改变
我们知道在Swift2中,默认情况下方法的参数是let值,也就是不可改变的. 不过我们可以在参数前添加var关键字改变其不变性: func foo(var i:Int){ i += 1 print(i ...
- Tomcat如何实现WebSocket
WebSocket协议属于HTML5标准,越来越多浏览器已经原生支持WebSocket,它能让客户端和服务端实现双向通信.在客户端和服务器端建立一条WebSocket连接后,服务器端消息可直接发送到客 ...
- ROS机器人程序设计(原书第2版)补充资料 (零) 源代码、资料和印刷错误修订等 2017年01月01日更新
ROS机器人程序设计(原书第2版)补充资料 (零) 源代码等 ROS官网 版)部分内容修订 页:第1行,删去$ 页:第6行,float64 y 前面加一个空格 页:中间创建主题:下面程序不用换行,(& ...
- Android双击退出
重写返回键 private long tempTime = 0; /** * 双击退出 */ @Override public void onBackPressed() { long firstCli ...
- Spark技术内幕:Shuffle的性能调优
通过上面的架构和源码实现的分析,不难得出Shuffle是Spark Core比较复杂的模块的结论.它也是非常影响性能的操作之一.因此,在这里整理了会影响Shuffle性能的各项配置.尽管大部分的配置项 ...
- Activiti 流程部署方式 activi 动态部署(高级源码篇)
Activiti的流程 部署方式有很多种方式,我们可以根据activit工作流引擎提供的ap方式进行部署. 当然了实际需求决定你要使用哪一种api操作,后面的总结详细介绍了使用场景. 下面看一下部署方 ...
- [apache2.4]configure: error: APR not found. Please read the documentation.
apache2.4 安装出现如下错误 ``` [lzz@localhost httpd-2.4.10]$ ./configure checking for chosen layout... Apac ...
- x264源代码简单分析:宏块分析(Analysis)部分-帧间宏块(Inter)
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- android推荐使用dialogFrament而不是alertDialog
DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等. 在Dia ...
- FFmpeg源代码简单分析:内存的分配和释放(av_malloc()、av_free()等)
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...