使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

导读

这篇文章是关于使用CDH搭建Hadoop集群的第一步:配置package仓库。本文主要参考Cloudera官方文档。

在进行这一步之前,应该进行充分的前期准备。关于前期准备工作的相关内容请参考文章:

使用Cloudera的CDH部署Hadoop:准备工作

开始配置package仓库

使用package management tools(RHEL-yum)安装Cloudera Manager。Cloudera主张联网(Internet-accessible)安装。可以创建自己的内部仓库在不联网的情况下安装。

可以创建永久的或临时的package仓库。这里只介绍如何创建永久的package仓库。

1安装web server

如果组织内已经有了web server,可以看到仓库目录包含路径RPMs和repodata/。那么可以使用已有的web server。没有的话就安装Install Apache HTTP Server。

检测是否安装了:

Apache HTTP Server:httpd -v(显示安装的版本信息及建立环境)

安装Apache HTTP Server:

sudo yum install httpd

也许你会遇到,在Centos 7在执行这个命令报错,信息如下

[root@localhost ~]# sudo yum install httpd

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was

14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"

One of the configured repositories failed (未知),

and yum doesn't have enough cached data to continue. At this point the only

safe thing yum can do is fail. There are a few ways to work "fix" this:

1. Contact the upstream for the repository and get them to fix the problem.

2. Reconfigure the baseurl/etc. for the repository, to point to a working

upstream. This is most often useful if you are using a newer

distribution release than is supported by the repository (and the

packages for the previous distribution release still work).

3. Run the command with the repository temporarily disabled

yum --disablerepo=<repoid> ...

4. Disable the repository permanently, so yum won't use it by default. Yum

will then just ignore the repository until you permanently enable it

again or use --enablerepo for temporary usage:

yum-config-manager --disable <repoid>

or

subscription-manager repos --disable=<repoid>

5. Configure the failing repository to be skipped, if it is unavailable.

Note that yum will try to contact the repo. when it runs most commands,

so will have to try and fail each time (and thus. yum will be be much

slower). If it is a very temporary problem though, this is often a nice

compromise:

yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

Cannot find a valid baseurl for repo: base/7/x86_64

解决办法

这是没有联网或DNS没有配置造成的。

开启Apache HTTPD:

sudo service httpd start

2下载发行的库文件(Publishing Repository Files)

下载,官网文档罗列了各种命令,但是不联网的话根本无法使用,因此先将文件下载下来。

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

对于CDH6的下载也差不多:

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

另外,CDH6还有Index of gplextras6/6.0.0/redhat7/yum,下载他

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

推荐使用parcel包来安装,所以建议下载parcel包。

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

注意

对于下载的文件如果提供了SHA256文件,那么最好还是验证一下。Windows系统下的验证方法是,在命令提示符下使用:

certutil -hashfile filepath SHA256

其中filepath是下载的文件全路径,这个命令其实是生成文件的SHA256哈希码。然后拿获得的哈希码和网站提供的哈希码对比,如果一样的话文件就没有问题。

例如文件E:\CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel

使用命令:certutil -hashfile E:\CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel SHA256

执行结果如下:

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

3移动以下载文件到web server目录并修改文件权限访问http://<web_server>/cloudera-repos/,看是否有索引目录。

因为安装cm6的机器没有联网,所以也就没用那台机器下载,使用了一台windows系统的机器下载文件,下载完使用winscp将其传到指定文件夹。

使用winscp登录机器,找不到/var/www/html/cloudera-repos,如下图:

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

没有/var/www/html/cloudera-repos那么就创建它。

创建/var/www/html/cloudera-repos目录。

同样的/var/www/html/cloudera-repos/cm6,/var/www/html/cloudera-repos/cdh6

/var/www/html/cloudera-repos/gplextras6

这些目录都不存在,那么也创建他们。

建好了上述目录后,将文件考入其中:

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

然后为了防止修改这个文件夹下的文件,那么修改路径权限:

sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cm6

命令备注:

u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人。

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

上面的步骤完成以后,访问http://<web_server>/cloudera-repos/,但可能无法成功。查找原因并解决:

使用ps -e |grep httpd查看是否有httpd进程。

没有httpd进程就重启:systemctl restart httpd.service

确保关闭并禁用防火墙。

这样就可以看到文件了

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

注意

上面的文件夹示例是不规范的,虽然官网给出了下载Cloudera Manager 6.0和CDH 6的方式,但那都是Linux命令,如果要在Windows系统中下载,那么有些文件直接点击就会弹出下载框,有些则不行,要右键点中文件,选择从链接另存为的方式才可以将文件保存下来。

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

特别要注意的是:尽量按照原网站的目录结构放置文件,尤其是对初次安装CDH和对Linux不是很熟悉的同学。

例如结构如下:

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

其中repodata中的文件为:

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

x86_64中的文件为

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

值得注意的是yum文件夹下还包括两个文件没有在上述目录结构中展示出来:

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

4修改客户端使用内部仓库

在集群的每个主机上创建一个/etc/yum.repos.d/cloudera-repo.repo文件。其中<web_server>是主机名

内容如下:

[cloudera-manager]

name=Cloudera Manager 6.0.0

baseurl=http://192.168.107.83/cm6/6.0.0/redhat7/yum/

gpgkey=http://192.168.107.83/cm6/6.0.0/redhat7/yum/RPM-GPG-KEY-cloudera

gpgcheck=1

enabled=1

autorefresh=0

type=rpm-md

priority=1

注:

[cloudera-repo]:这是仓库的ID

name:仓库的名称或描述

Baseurl:仓库的地址,可以是http、https、ftp、基于本地的file://,特别应注意的是此地址目录下必须要有repodata目录。

enabled:是否启用此仓库

gpgcheck:是否检测来源合法性

priority:yum源的优先级,由 1 ~ 99 的 99 个数表示,1是最高级。

使用命令,测试是否一切都是可用的,看看软件包是否可找到:

列出所有软件包:yum list all

列出所有可用软件包:yum list available

查找指定软件包:yum search <packagename>

例如:

服务下有文件oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm,那么使用命令:

yum search oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm

但是无法找到:

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

使用命令:yum list available,列出所有可用软件包:

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

明显是有上述那个软件包的,不过包名不等于文件名!!

使用命令:

yum search oracle-j2sdk1.8

可以找到oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

甚至使用:

yum search oracle-j2sdk

都可以找到oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm

不过要注意yum search oracle-j2sdk能够唯一代表oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm

注意

如果有默认的yum源,那么修改配置文件,使之失效,设置enabled=0

即失效。

例如,在我的Centos 7系统上,有如下默认的yum源配置:

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

此外,在使用内部包时,有时会报如下信息:

使用Cloudera的CDH部署Hadoop:第一步,配置package仓库

刷新服务器端:yum clean all && yum check-update

更新:yum update

5下载cloudera-manager.repo文件放在/etc/yum.repos.d/目录下。

使用Cloudera repository可直接放在文件夹下,如果是内部库的话,要修改baseurl为内部地址。

查看https://www.cloudera.com/documentation/enterprise/release-notes/topics/cm_vd.html找到Repo File的url。

命令:sudo wget <repo_file_url> -P /etc/yum.repos.d/

6导入签名GPG key

sudo rpm --import https://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/RPM-GPG-KEY-cloudera

内容来源:今日头条
角标
继续阅读(剩余50%
我要举报