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 本地仓库配置的更多相关文章

  1. (三)Maven仓库介绍与本地仓库配置

    1.Maven本地仓库/远程仓库的基本介绍 示意图: 本地仓库是指存在于我们本机的仓库,在我们加入依赖时候,首先会跑到我们的本地仓库去找,如果找不到则会跑到远程仓库中去找.对于依赖的包大家可以从这个地 ...

  2. Maven本地仓库配置

    一. 为什么配置? 默认情况下,maven的本地仓库在C盘下用户文件夹: .m2/repository.全部的maven构件(artifact)都被存储到该仓库中.以方便重用. 可是放在C盘一个是占用 ...

  3. Java开发环境配置(4)--Maven安装 环境变量配置,本地仓库配置---插件安装

    说明在前:本人用过的 luna  mars 等,都已经自带maven插件的了,以下有些文章是很老的,讲到maven插件的安装都可以忽略掉. maven安装eclipse在线配置maven搞定所有插件_ ...

  4. Maven 教程(3)— Maven仓库介绍与本地仓库配置

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79537837 1.Maven本地仓库/远程仓库的基本介绍 本地仓库是指存在于我们 ...

  5. eclipse的maven配置及本地仓库配置

    一.下载maven并解压 下载地址:http://maven.apache.org/download.cgi 解压后如下: 二.配置环境变量 配置MAVEN_HOME 再path中添加 安装成功 三. ...

  6. 淘淘商城 本地仓库配置和仓库jar包下载

    SVN服务器的搭建请查看该文:<Win7 x64 svn 服务器搭建> 1:仓库包存放位置: 2:setting.xml 文件配置信息 <?xml version="1.0 ...

  7. gradle本地、远程仓库配置

    本地仓库配置 配置环境变量GRADLE_USER_HOME,并指向你的一个本地目录,用来保存Gradle下载的依赖包. 远程仓库配置 一般Gradle.maven从中央仓库mavenCentral() ...

  8. gradle本地、远程仓库配置--转

    https://blog.csdn.net/x_iya/article/details/75040806 本地仓库配置配置环境变量GRADLE_USER_HOME,并指向你的一个本地目录,用来保存Gr ...

  9. Maven本地仓库/中央仓库(阿里镜像)/JDK配置

    第一步打开你已经下载好的Maven,进入:根磁盘:\......\apache-maven-3.6.2\conf文件夹找到settings.xml文件(没有的可以自行创建一个同名的文件即可) 使用文本 ...

随机推荐

  1. Android的Spinner控件用法解析

    微调框 微调框提供一种方法,让用户可以从值集中快速选择一个值.默认状态下,微调框显示其当前所选的值. 触摸微调框可显示下拉菜单,其中列有所有其他可用值,用户可从中选择一个新值. 您可以使用 Spinn ...

  2. Xcode的playground中对于SpriteKit物理对象的更新为何无效

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了便于SpriteKit中物理行为的调试,我们可以借助于Xc ...

  3. Java基本语法-----java常量

    1常量的概述 常量是指在程序运行过程中其值不能改变的量. 2常量类型 Java中常量的分类: 整数常量 : 所有整数 小数常量 : 所有小数 布尔常量 : 只有true和false 字符常量 :使用' ...

  4. UNIX网络编程——通过UNIX域套接字传递描述符和 sendmsg/recvmsg 函数

    在前面我们介绍了UNIX域套接字编程,更重要的一点是UNIX域套接字可以在同一台主机上各进程之间传递文件描述符. 下面先来看两个函数: #include <sys/types.h> #in ...

  5. 编译GDAL支持MySQL

    GDAL支持MySQL需要MySQL的库才可以,编译很简单,修改nmake.opt文件中对应的MySQL的库的路径和lib即可. nmake.opt文件中397行左右,如下: # MySQL Libr ...

  6. 最简单的基于Flash的流媒体示例:RTMP推送和接收(ActionScript)

    ===================================================== Flash流媒体文章列表: 最简单的基于Flash的流媒体示例:RTMP推送和接收(Acti ...

  7. antlr v4 使用指南连载1——简介

    antlr v4简介        antlr是一个强大语言解析工具,可以用于处理结构化文本.二进制文件.说白了,其实可以这么认为,antlr是一个更强大的正则表达式工具.它可以完成更多正则表达式无法 ...

  8. UNIX网络编程——客户/服务器程序设计示范(六)

    TCP并发服务器程序,每个客户一个线程 前面讲述了,每个客户一个进程的服务器,或为每个客户现场fork一个子进程,或者预先派生一定数目的子进程.如果服务器主机支持线程,我们就可以改用线程以取代子进程. ...

  9. sql中奇怪的sum(1),sum(2),count(1),count(6),count(*):统计总数

    sql的统计函数 sql统计函数有 count 统计条数,配合group用 sum 累加指定字段数值 但注意sum(1)就特殊 sum(1)等同于count(*) sum(1)统计个数,功能和coun ...

  10. EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证

     { field : 'startPort', title : "起始端口", editor: "text", width : 50, editor: { ...