一、包管理工具及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. VS2005 VS2008 Manifest 配置问题总结

    一.问题 编译某个遗留工程后,运行程序时报错,“由于应用程序的配置不正确,应用程序无法启动.重新安装应用程序可能会解决这个问题.” 查看生成的Manifest文件如下: <?xml versio ...

  2. Maven Source jar

    http://blog.csdn.net/symgdwyh/article/details/4407945

  3. navicat 导入sql文件乱码问题解决

    一,右键数据库链接,点击链接属性,修改以下信息,如图: 选择高级选项页签==>去掉使用MySQL字符集复选框==>选择GB2312字符编码==>点击确定 三,控制台后,show va ...

  4. NEERC 2014, Eastern subregional contest

    最近做的一场比赛,把自己负责过的题目记一下好了. Problem B URAL 2013 Neither shaken nor stirred 题意:一个有向图,每个结点一个非负值,可以转移到其他结点 ...

  5. Razor视图引擎的基本概念与法语

    Razor 视图引擎的特点: 简洁.富于表现.流畅 尽量减少页面代码的输入,实现快速流畅的编程工作 不必明确为服务器代码标记起始与结束符,Razor 能智能判断,这样让页面看清洁,代码方便阅读 asp ...

  6. sc.exe管理系统服务

    sc.exe管理系统服务 下面介绍SC,SC QC,and SC QUERY sc.exe create HomerSatelliteDesktopGC binPath= "D:XXXXXX ...

  7. MySQL高效分页解决方案集

    一,最常见MYSQL最基本的分页方式: select * from content order by id desc limit 0, 10 在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的 ...

  8. 1306.Sequence Median(堆排序)

    1306 URAL真是没水题 以为简单的排序就好了 ME  内存限制很紧 堆排序 或者 STL 用堆排序做的 正好复习一下 都忘了 #include <iostream> #include ...

  9. Unity3D中使用3DMAX建模规范

    1.将3Dmax中的单位制设置为厘米.  如果使用3DMax来建模的话,可将3DMax的系统默认单位改成厘米 〉Customize - Units Setup - Metric - Display U ...

  10. LeetCode Power of Two (2的幂)

    题意:判断1个数n是否刚好是2的幂,幂大于0. 思路:注意会给负数,奇数.对于每个数判断31次即可. class Solution { public: bool isPowerOfTwo(int n) ...