一、包管理工具及CentOS的yum

1、包管理工具如何发现可以用的包

包管理工具依赖一系列软件源,工具下载源的信息存储在配置文件中,其位置随某包管理工具不同而变化

  • 使用yum的RedHat/CentOS存储在:/etc/yum.repos.d
  • 使用apt-get的Debian/Ubuntu在:/etc/apt/apt.conf (额外的源采用*.list文件指定,存储在/etc/apt/sources.list.d目录下)

例如在,CentOS下面:

[root@lemon ~]# ls -l /etc/yum.repos.d/
total
-rw-r--r--. root root Feb : CentOS-Base.repo
-rw-r--r--. root root Feb : CentOS-Debuginfo.repo
-rw-r--r--. root root Feb : CentOS-Media.repo
-rw-r--r--. root root Feb : CentOS-Vault.repo
drwxr-xr-x root root Jun : cloudera-cdh4
-rw-r--r-- root root Jun : clouder-cdh4.repo

上述每个.repo文件对应着一个或者多个软件源,下面CentOS-Base.repo的片段说明,该文件定义了两个软件源,一个是Base,一个是Upadate。镜像列表参数指向一系列可以下载软件源的网址。

#………
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#………

在CentOS下面可以使用:yum repolist  查看系统中启用的软件源。CentOS有如下软件源列表:

[root@lemon ~]# yum repolist
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirror01.idc.hinet.net
* extras: mirror01.idc.hinet.net
* updates: ftp.stu.edu.tw
repo id repo name status
base CentOS- - Base ,
cloudera-cdh4 Cloudera's Distribution for Hadoop, Version 4 97
extras CentOS- - Extras
updates CentOS- - Updates
repolist: ,

二、创建自己的yum软件源(以Cloudera Hadoop的安装为例)

自定义软件源,给不能联网或者网络不畅的计算机安装软件提供了便利,使得待安装软件的主机可以使用本地的软件源完成安装。下面讲述如何创建本地包软 件源,并指示本地主机直接使用。简要概括起来如下:将下载的RPM包放到本地主机的某一个目录下,接着完成创createrepo(创建软件源的工作), 然后在网站上发布这一软件源。

1、下载Cloudera Manager安装文件

Cloudera Manager的可以从如下网址获得:

http://archive.cloudera.com/cm4/installer/

这里选择Cloudera Manager 最新版4.6.0.1

http://archive.cloudera.com/cm4/installer/latest/cloudera-manager-installer.bin

2、下载相关的CM安装所需要的RPM包

下载网址为:

http://archive.cloudera.com/cm4/redhat/6/x86_64/cm/4/RPMS/x86_64/

下载全部的7个rmp包,如下图所示:

3、创建软件源

将下载好的rpm文件拷贝到制定目录,如:/home/admin/RPMS中

[root@lemon RPMS]# ls
cloudera-manager-agent-4.5.-.cm452.p0..x86_64.rpm
cloudera-manager-daemons-4.5.-.cm452.p0..x86_64.rpm
cloudera-manager-parcel-4.5.-4.5.-.cm452.p0..x86_64.rpm
cloudera-manager-server-4.5.-.cm452.p0..x86_64.rpm
cloudera-manager-server-db-4.5.-.cm452.p0..x86_64.rpm
enterprise-debuginfo-4.5.-.cm452.p0..x86_64.rpm
jdk-6u31-linux-amd64.rpm

创建软件源的主机没有安装createrepo,可以通过shell命令yum install createrepo安装。
当在包含文件的目录下运行如下创建命令:

[root@lemon RPMS]# createrepo .

程序也会创建一个repodata目录,该目录包含一些描述软件源的xml文件。如下所示:

[root@lemon RPMS]# createrepo .
Spawning worker with pkgs
Workers Finished
Gathering worker results Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@lemon RPMS]# ls
cloudera-manager-agent-4.5.-.cm452.p0..x86_64.rpm
cloudera-manager-daemons-4.5.-.cm452.p0..x86_64.rpm
cloudera-manager-parcel-4.5.-4.5.-.cm452.p0..x86_64.rpm
cloudera-manager-server-4.5.-.cm452.p0..x86_64.rpm
cloudera-manager-server-db-4.5.-.cm452.p0..x86_64.rpm
enterprise-debuginfo-4.5.-.cm452.p0..x86_64.rpm
jdk-6u31-linux-amd64.rpm
repodata
[root@lemon RPMS]# cd repodata/
[root@lemon repodata]# lsother.xml.gz
other.sqlite.bz2
filelists.sqlite.bz2
primary.xml.gz
filelists.xml.gz
primary.sqlite.bz2
repomd.xml

此命令之后,RPM包就会加入到本地的软件源中。

4、安装Apache httpd web服务器

如果你已经安装了一个web服务器,可以略过此步,如果未安装可以通过如下shell命令安装

[root@lemon ~]$ yum install httpd

安装完毕后,启动httpd服务

[root@lemon ~]$ service httpd start

5、发布软件源文件

将文件复制/移动到WEB服务器的根目录下,Linux下面默认是/var/www/html目录,

[root@lemon ~]$ mv /home/admin/RPMS /var/www/html
[root@lemon ~]$ chmod -R ugo+rx /var/www/html/RPMS

并更改文件权限,使用户、同组、其他组都可以读/执行文件。
访问http://<hostname>:80/RPMS测试文件首页是否正常显示各文件的索引,通常要关闭selinux(重启生效),该yum软件源才能访问。

如果不能访问,出现403错误(在实体机上常见),即you don't have permission to access / on
this server(Apache Server权限访问问题),则需要在/etc/httpd/httpd.conf中添加如下配置:

<Directory "/var/www/icons">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory> Alias /CDH4-RPMS/ "/var/www/html/CDH4-RPMS/"
<Directory "/var/wwww/html/CDH4-RPMS">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory> Alias /CM4-RPMS/ "/var/www/html/CM4-RPMS/"
<Directory "/var/www/html/CM4-RPMS">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory> Alias /IMPALA-RPMS/ "/var/www/html/IMPALA-RPMS/"
<Directory "/var/www/html/IMPALA-RPMS">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

6、更改客户端配置,使其能够找到该软件源

在客户端新建如下格式的文件,内容如下所示:

[myrepo]
name=myrepo
baseurl=http://hostname/RPMS
enabled=
gpgcheck=

主机名是刚才所建立的软件源的主机名。将文件命名为myrepo.repo,并将文件放到/etc/yum.repos.d目录下,即最终结果为/etc/yum.repos.d/myrepo.repo

这里的客户端指的是使用本地源的主机,(即待安装的不能联网的哪些主机)。

注意:/etc/yum.repos.d目录下仅仅保留自己创建的本地库,否则其他的库因为不能联网,会报错的,使得安装退出。本例中,仅仅保留myrepo.repo。

在CM的集群配置页面,设定好本地源后,会有相应的解析,找到本地的源。其中cloudera-manager.repo

cloudera-cdh4.repo、cloudera-impala.repo解析后新建的,原来自己配的源的名字分别是cm4repo.repo、cdh4repo.repo、impalarepo.repo(实际应用中发现,最好将名字命名为cloudera-manager.repo、cloudera-cdh4.repo、cloudera-impala.repo, 否则会可能出现无法解析错误,即cloudera-manager-installer-bin还是会向cloudera的官网去找)。

解析后的内容如下:

[root@lemon yum.repos.d]# cat cloudera-cdh4.repo
[cloudera-cdh4]
name = Cloudera CDH, Version (Custom)
baseurl = http://192.168.2.171/CDH4-RPMS
gpgcheck = [root@lemon yum.repos.d]# cat cloudera-impala.repo
[cloudera-impala]
name = Impala, Version (Custom)
baseurl = http://192.168.2.171/impala
gpgcheck = [root@lemon yum.repos.d]# cat cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager, Version 4.6.
baseurl = http://192.168.2.171/RPMS
gpgcheck =

安装的时候也可能会出现如下错误:

Resolving Dependencies
--> Running transaction check
---> Package cloudera-manager-server-db.x86_64 :4.6.-.cm460.p0. will be installed
--> Processing Dependency: postgresql-server >= 8.0 for package: cloudera-manager-server-db-4.6.-.cm460.p0..x86_64
--> Finished Dependency Resolution
Error: Package: cloudera-manager-server-db-4.6.-.cm460.p0..x86_64 (cm4repo)
Requires: postgresql-server >= 8.0
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

所以,这个时候要安装postgresql-server8.4 或者是9.0(要求8.0及其以上),这个安装比较麻烦,需要解决各种依赖库。

postgresql说明:

postgresql包含许多不同的包,包括第三方类库,通常安装最重要的包即可(能满足大部分应用需求)。这些包如下:

  • postgresql - 客户端类库及二进制文件
  • postgresql-server - 核心的数据库服务器
  • postgresql-contrib - 附加的供应组件
  • postgresql-devel - 用户C语言开发的类库和头文件
  • pgadmin3 - 数据库图像化管理工具第三版

9.0版本的rpm包具体下载地址为:

http://yum.postgresql.org/9.0/redhat/rhel-6-x86_64/repoview/

备注:研究发现缺少包这些问题是由虚拟机造成的,虚拟机安装的时候 是默认安装,省去了里面很大一部分的包,比如虚拟机安装的时候不带jdk、postgresql数据库、mysql数据库,而这些都是在实体机安装的时候 所没有的问题,所以实践很重要!在实体机下面缺少postgresql数据库所造成的问题根本就不存在!

7、使用本地类库安装CM

CM安装必须通过package方式,而CDH、Impala可以通过package、parcel方式安装。

安装程序默认从网络下载程序包安装,如果你已经配置好了本地软件源,并将本机(客户端)做了识别配置,

只需要在安装的时候添加参数(--skip_repo_package=1),shell命令如下:

$ sudo ./cloudera-manager-installer.bin --skip_repo_package=

详细的安装步骤及过程,详见Cloudera Manager and CDH安装及配置

备注:CM包下载地址:http://archive.cloudera.com/cm4/

    CDH包下载地址:http://archive.cloudera.com/cdh4/

    IMPALA包下载地址:http://archive.cloudera.com/impala/

另外下载时候要注意,如果X86_64同级目录还有noarch目录,且里面也有文件的时候也要一并下载,不然使用本地软件源的时候提示部分文件找不到。

创建本地CM 离线服务器的更多相关文章

  1. 为小程序开发创建本地mock数据服务器

    开发时使用easy-mock的服务,不是大厂就不是大厂,实在恶心,每天都会有卡的这么一段时间 于是,自己建个本地mock服务算了,想使用express 但是必须把json数据里面的不同对象,分配到不同 ...

  2. Python 创建本地服务器环境生成二维码

    一. 需求 公司要做一个H5手机端适配页面,因技术问题所以H5是外包的,每次前端给我们源码,我们把源码传到服务器让其他人访问看是否存在bug,这个不是很麻烦吗?有人说,可以让前端在他们的服务器上先托管 ...

  3. docker 创建本地镜像服务器

    1.docker pull registry //下载registry 镜像,registry 为docker 官方提供的一个镜像, 我们可以用它来创建本地的docker私有仓库. docker:/r ...

  4. 创建本地yum软件源,为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备

    一.包管理工具及CentOS的yum 1.包管理工具如何发现可以用的包 包管理工具依赖一系列软件源,工具下载源的信息存储在配置文件中,其位置随某包管理工具不同而变化 使用yum的RedHat/Cent ...

  5. 离线服务器下docker的部署与应用

    一分钟内形成docker的模糊概念 网上很多文章避免将docker与虚拟机混为一谈,但对于初学者来说,完全可以将docker当做一种虚拟机技术,只需要牢牢记住一点最重要的区别:docker依赖于物理机 ...

  6. 用java套接字创建HTTP客户与服务器程序

    最近再学习java的web编程,发现用java创建一个小的服务器和客户端是如此的简单,引用经典图书<Tomcat与Java Web开发技术详解(第二版)>(孙卫琴) 根据书中案例敲代码自己 ...

  7. 搭建本地Ubuntu 镜像服务器

    一.需求分析 最近公司软件Team 有个需求是这样的:能不能在局域网搭建一个Ubuntu 镜像服务器, 这样作的好处是可以节省Ubuntu某些常用工具的安装时间. 二.部署过程 2.1 测试环境 目前 ...

  8. 用http-server 创建node.js 静态服务器

    今天做一本书上的例子,结果代码不能正常运行,查询了一下,是语法过时了,书其实是新买的,出版不久. 过时代码如下 var connect=require('connect'); connect.crea ...

  9. 创建本地数据库mySQL并连接JDBC

    转自: http://blog.csdn.net/wei_chong_chong/article/details/44830491 如何创建本地数据库MySQL并连接JDBC 转载 2015年04月0 ...

随机推荐

  1. 关于.net中的脚本语言使用

    基于.net中drl框架的脚本现在有很多,最近也由于工作的需要,目前有lua.python.ruby.javascript的.net实现,对ruby不怎么了解,python.lua.js就成了试验的对 ...

  2. CF 136A Presents

    http://codeforces.com/problemset/problem/136/A 题意 :就是输入很多数字,第 i 个数字 pi 代表着第 i 个人的礼物给了第 pi 个人,而让你输出的数 ...

  3. UR #13 Ernd

    考试的时候没有注意到可以将(a,b)放在二维平面上之后旋转坐标系,使得转移变成树状数组二维偏序 这样就算我想出来了第二个转移的斜率优化也没有什么卵用啊(摔西瓜 设g(i)表示当前站在第i个水果下面且第 ...

  4. 省市区 Mysql 数据库表

    1.查省SELECT * FROM china WHERE china.Pid=02.查市SELECT * FROM chinaWHERE china.Pid=3300003.查区SELECT * F ...

  5. Spring与Struts2整合

    Spring与Struts2为什么要整合呢? 把Action实例交给Spring来管理!! 1.单独测试Struts是否添加成功(jar包和配置文件),先单独测试,不要整合之后再测试,容易出问题 we ...

  6. laravel Authentication and Security

    Creating the user modelFirst of all, we need to define the model that is going to be used to represe ...

  7. 主机头部分 www有和无是有区别的

    关于主机部分www的问题: case 1: frontend web_service bind *:80 bind *:443 ssl crt /etc/haproxy/cert.pem acl ww ...

  8. C# CLR及程序集部署浅析

    摘 要 .NET Framework 到底是什么?公共语言运行时和 .NET Framework 类库分别指的是什么东西?CLR. CLS. CTS.FCL等这些又是什么?为什么出现程序集的概念?它与 ...

  9. tcp断开的4次挥手

    http://blog.csdn.net/fw0124/article/details/7452695 由于TCP连 接是全双工的,因此每个方向都必须单独进行关闭.这原则是当一方完成它的数据发送任务后 ...

  10. 1414. Astronomical Database(STL)

    1414 破题 又逼着用stl 卡内存 trie树太耗了 水不过去 用set存字符串 set可以自己按一定顺序存 且没有重复的 再用lower_bound二分查找字符串的第一次出现 接着往后找就行了 ...