由于本人原来都是采用在线安装方式,使用公司港台服务器代理,速度还是很可观的。不过最近要求在Centos 7上离线安装,有点坑,网上的很多都是抄来抄去,安装到一半可能就走不下去,这里是本人亲测,遇到的问题都一一说明并且解决掉。这里趟了一遍,希望对读者有帮助。不说废话,进入主题:

Cloudera官网给出三种安装方式,我们采用PathC,使用下载好的包进行安装。我这里只使用本地虚拟机来进行安装说明:


机器本身环境配置(所有机器):

设置本身机器ip

首先查看自身机器网卡,我用的NAT方式:

[root@localhost Desktop]# ifconfig


那么看到eno16777736为我们的外部网卡,我们接下来修改他的ip:

[root@localhost Desktop]# vi/etc/sysconfig/network-scripts/ifcfg-eno16777736

我们会看到如下:


然后我们改为静态ip:


此处的网关需要查看自己网段的网关。然后我们重启网路:

[root@localhostDesktop]# systemctl restart network

再次查看网络:

[root@localhost Desktop]# ifconfig


没有问题,已经成功。


更改DNS

如果我们现在运行如下命令会发现我们不识别baidu:

[root@localhost Desktop]# ping www.baidu.com

ping: unkNown host www.baidu.com


这说明我们的DNS没有设置好,修改相应配置:

[root@localhost Desktop]# vi /etc/resolv.conf

正常里面是空的,加入:

nameserver 8.8.8.8

nameserver 8.8.4.4

保存退出,然后重启网络然后尝试:


更改成功


更改主机名字(看自己意愿,我假设分别是wm001,wm002,wm003):

接下来我们更改主机名字。首先我们输入如下命令,查看本机主机名字:



我们需要更改名字:

[root@localhost Desktop]# vi /etc/hostname
然后把原来名字去掉,改为:

wm001

保存退出,再次查看:




更改yum源:

Yum原本的源都在国外,更新特别浪费时间,我们改为阿里源:

首先我们将原来的源进行备份:

[root@localhost Desktop]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup


接下来我们用阿里源进行替换:

[root@localhost Desktop]# wget -O/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

接下来我们makecache一下,然后更新包:

[root@localhost Desktop]# yum makecache

[root@localhost Desktop]# yum update

过程可能会很长,y输入然后一直继续。

至此,yum源更新完毕。


Cloudera 安装开始:

Cloudera manager 选择

首先考虑到我们集群中所用的为Centos 7,所以Cloudera Manager我选的为最新版本:

Cloudera Manager 5.10.0,主要是根据官网文档选择,下载地址为:

http://archive.cloudera.com/cm5/repo-as-tarball/

如下贴出该版本支持的Centos 各系统:


CDH选择

由于我们的cloudera manager已经选择了,所以CDH版本也可以确定:

CDH-5.10.0-1.cdh5.10.0.p0.41-el7.parcel,至于4或者5都可以:

下载地址为:http://archive.cloudera.com/cdh5/

JDK选择

官网给出:

所以不管java的版本是1.7还是1.8,只要符合上述要求即可。Centos 7自带java,我们查看一下版本:


Cloudera官方给出:


所以我们需要卸载本机自带的openJDK,安装我们自己的JDK到/usr/java/目录下。我们进行如下操作:

首先我们查看安装的Java并且卸载该java(所有机器):


现在java已经卸载干净,我们上oracle官网,下载我们所需的java版本:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

然后安装我们的java:


可以看到,我们安装的java被安装到了/usr/java目录下,并且创建了一个latest链接文件,然后我们把java的目录放到环境中去:


至此,java环境准备完毕。


配置SSH

一般centos 7默认安装了openssh,我们在wm001上创建密匙,这里需要说明一下,根据官网说明:


我们使用root用户创建密匙(所有机器):


接着我们需要修改hosts文件,依据Cloudera官网:


所以我们要在每台机器的hosts文件中加入其余机器的信息,我们现在只在wm001中加入,稍后会写相应的脚本来传递到各个机器上。在wm001上改为如下:

127.0.0.1localhost

::1localhost

192.168.75.128 wm001

192.168.75.129 wm002

192.168.75.130 wm003

然后我们在wm001上创建文件autossh.sh脚本,然后编辑:

#!/bin/bash

# 注意此处用于主机已经生成了ssh-key

password='moon'

auto_ssh(){

/usr/bin/expect <<-EOF

set time 30

spawn ssh-copy-id -i $HOME/.ssh/id_rsa.pub$1

expect {

"*yes/no" { send"yes\r"; exp_continue }

"*password:" { send"$password\r" }

}

expect eof

EOF

}

for i in $@;do

auto_ssh $i

done

## 至此所有互信已经完成,接下来开始复制host文件

for i in $@;do

scp/etc/hosts root@$i:/etc/hosts

#scp/shellscripts/hello root@$i:/usr/local

done


脚本中的password是各机器root用户登陆密码。

然后我们赋予可执行权限:

由于脚本使用了expect包,而centos默认不安装,所以此时我们需要安装一下:


然后我们运行脚本:


显示成功,我们测试一下:


如上说明我们已经把各机器ssh成功,并且hosts文件我们也已经拷贝成功。

至此,SSH配置完毕。


安装配置MysqL

根据官网所述:


我们需要一个外部数据库来存储集群的信息,我们使用MysqL。版本我们采用:5.6,包采用:

MysqL-community-release-el7-5.noarch.rpm。因为根据官方,5.6是支持的:


下载地址为:http://repo.MysqL.com/MysqL-community-release-el7-5.noarch.rpm

然后我们开始安装MysqL的rpm包,此处注意,我们只在wm001上安装:


然后我们更新yum:


然后安装MysqL-server:


之所以我们不直接使用yum是因为centos7 不提供MysqL的版本,所以需要我们手动下载导入:


接下来设置MysqL开机启动:

[root@wm001 ~]# systemctl enable MysqLd.service

然后启动MysqL:

[root@wm001 ~]# systemctl start MysqLd

接下来,设置root用户密码:

[root@wm001 ~]# MysqLadmin -u root password 'wordemotion'


防火墙等设置:

首先官方文档中描述:


这里建议关闭防火墙,如果非要开启的话,官网有个对照,各个核心控件所需开启的端口,手动开启即可。
关闭SELinux:

[root@wm001 ~]# systemctl stop firewalld.service

[root@wm001 ~]# vim /etc/selinux/config



NTP设置

由于机器都是虚拟机,时间相同,不设置。此跳过。(安装公司集群时,务必设置)


Cloudera Manager 安装

现在我们要正式开始安装cloudera manger了,首先把我们事先下载好的cloudera manager上传到各个机器:


然后我们把文件解压到/opt目录下(每台机器都如此):

tar -zxvf cloudera-manager-centos7-cm5.10.0_x86_64.tar.gz -C /opt/

接下来我们要在所有的机器上配置主机的名字:

vim /opt/cm-5.10.0/etc/cloudera-scm-agent/config.ini




接下来我们要在所有机器上创建用户,具体原因如官方解释:


运行命令如下:

useradd --system --home-dir /opt/cm-5.10.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

接下来我们要为cloudera manager建立数据库,不过在此之前我们需要下载msyql数据库驱动下载地址:http://dev.mysql.com/downloads/connector/j/

我们解压把文件上传到/opt/cm-5.10.0/share/cmf/lib/目录下:

cp mysql-connector-java-5.1.40-bin.jar /opt/cm-5.10.0/share/cmf/lib/

scp mysql-connector-java-5.1.40-bin.jar wm002:/opt/cm-5.10.0/share/cmf/lib/

这样之后我们开始创建库,cm给了脚本自动创建数据库等,所以我们只需要运行该脚本即可:

/opt/cm-5.10.0/share/cmf/schema/scm_prepare_database.sh MysqL cm -hlocalhost -uroot -pwordemotion --scm-host localhost scm word@emotion


其中wordemotion 是数据库的root用户密码,而后面的word@emotion是新的用户scm的密码。

现在按照原理数据库应该已经有了该库,我们查看一下:


没有问题,数据库已经成功创建。


启动Cloudera Manager


现在我们开始启动cloudera manager,首先在wm001上启动server:

/opt/cm-5.10.0/etc/init.d/cloudera-scm-serverstart


然后我们在所有机器上启动agent

/opt/cm-5.10.0/etc/init.d/cloudera-scm-agentstart


我们在wm001上查看相应端口是已经打开,出现如图所示证明已经打开:

我们在浏览器查看:

http://192.168.75.128:7180

出现如下图所示证明安装成功,默认账号密码都是admin:


登陆,我们进入到如下界面,先不要着急点击继续


CDH安装

我们在下载CDH的时候会有相对应的sha文件,我们这里是:

CDH-5.10.0-1.cdh5.10.0.p0.41-el7.parcel.sha1

我们需要重命名该文件为:

CDH-5.10.0-1.cdh5.10.0.p0.41-el7.parcel.sha

然后把

CDH-5.10.0-1.cdh5.10.0.p0.41-el7.parcel与上面的sha文件一起放入到/opt/cloudera/parcel-repo/目录下(只是主机如此操作):

mv CDH-5.10.0-1.cdh5.10.0.p0.41-el7.parcel /opt/cloudera/parcel-repo/

继续Cloudera Manager安装

我们在刚才的网页选择接受然后继续:


这里我们选择免费版,一般中小型公司都选择免费版,完全能够解决绝大多数业务所需。继续:


继续:


在这里我们能够看到三个主机,这也就说明只要我们的所有agent成功启动的话,我们就可以在这里看到所有的机器。

选中所有机器继续:


保持默认,继续:


到了此页面我发现集群卡住不动。

发现此问题我首先想到的是去看日志:

路径是:/opt/cm-5.10.0/log/cloudera-scm-agent

[root@wm001 cloudera-scm-agent]# tail -n 300 cloudera-scm-agent.log

我们发现确实agent发生错误,错误如下:


如上错误信息也就说明了用split去切分的时候,字段>4个,所以报错。

我追踪脚本找到报错位置:


然后我们找到调用的位置:


注释详细的说明了该方法是用update-alternatives找到指定名字的所有alternatives。那么我不知道具体要找的是哪个名字,但是我知道指定有一个名字用空格切分长度大于4。去国外的网站也查了,很多人遇到这个问题,使用如下脚本进行定位:



那么我们定位到了是因为这个包造成的。那么两种方案:


一种是把这个包卸载:

alternatives --display libjavaplugin.so.x86_64

alternatives --remove libjavaplugin.so.x86_64 /usr/lib64/IcedTeaPlugin.so

一种是更改此脚本文件,关闭server和agent,重新启动:


/opt/cm-5.10.0/etc/init.d/cloudera-scm-agent stop(所有机器)

/opt/cm-5.10.0/etc/init.d/cloudera-scm-stop stop

先把原来的脚本进行备份:

cp /opt/cm-5.10.0/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.10.0-py2.7.egg/cmf/client_configs.py ./client_configs.py.bak

然后把该脚本覆盖老脚本,同时发往各个机器:

scp client_configs.py wm002:/opt/cm-5.10.0/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.10.0-py2.7.egg/cmf/client_configs.py

这样之后我们启动server和agent:

/opt/cm-5.10.0/etc/init.d/cloudera-scm-server start

/opt/cm-5.10.0/etc/init.d/cloudera-scm-agent start

然后我们打开网页,依照之前的操作到上次卡住的地方,如今已经能够正常运行了,我们等待一段时间即可:


等待时间可能会偏长,等全部成功如下图时,继续:


这时需要等待一段时间:


出现如图所示时,点击完成:


当下面的内核出现的时候,我们选择自定义(hdfs,spark,yarn,zookeeper),根据需求自定义,我这里只是演示而已:


后我们点击继续:

下面的页面一般建议默认文件夹,最后的zk如果机器充裕的话建议三个,我这三台机器配置较差,就用了一个,然后我们继续:


出现如下页面时,我们等待审核:


然后默认路径继续:


然后集群开始为我们启动各个组件,时间随着机器配置而定,如果机器配置很烂的话,很有可能会启动失败。

启动成功后我们继续如下图:


然后点击完成:


然后我们进入到管理界面,途中的警告是因为我磁盘和内存太小导致的,不影响使用,我们集群cpu和IO的监控也已经为我们启动。


至此,我们的生产模式离线安装成功完成。

【注】:最后出现的问题个人感觉可能是centos版本导致的,我的虚拟机就是centos 7.0,是不在cdh支持的列表中的,所以出现了那个问题。同样也有可能我们使用的最新的Cloudera Manager,目前他不够完善导致的,不过目前可以通过修改脚本而不用改动机器,个人认为该问题不算集群风险。

CDH在Centos 7离线安装的更多相关文章

  1. 用android SDK 4.0获取Facebook用户名

    这是我的代码不起作用:我确切地知道了不打印.在回调之外只有第一个记录打印内容的日志.对不起英语不好.解决方法很简单这假设用户已经登录.

  2. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. centos+php+coreseek+sphinx+mysql之一coreseek安装篇

    这篇文章主要介绍了centos+php+coreseek+sphinx+mysql之一coreseek安装篇的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

  4. Centos7 中 Node.js安装简单方法

    这篇文章主要介绍了Centos7 中 Node.js安装简单方法,非常不错具有一定的参考借鉴价值,需要的朋友可以参考下

  5. nodejs脚本centos开机启动实操方法

    在本篇文章里小编给大家整理的是关于nodejs脚本centos开机启动实操方法,有兴趣的朋友们参考下。

  6. Centos PHP 扩展Xchche的安装教程

    这篇文章主要介绍了Centos PHP 扩展Xchche的安装教程的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

  7. Linux CentOS系统下安装node.js与express的方法

    这篇文章主要给大家介绍了在Linux CentOS系统下安装node.js与express的方法,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

  8. CentOS上安装Node.js和mongodb笔记

    这篇文章主要介绍了CentOS上安装Node.js和mongodb笔记,本文讲解了Python安装、Node.js安装、npm安装、mongodb驱动安装、mongodb数据库操作测试代码等内容,需要的朋友可以参考下

  9. centos7上编译安装php7以php-fpm方式连接apache

    这篇文章主要介绍了centos7上编译安装php7以php-fpm方式连接apache的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  10. CentOS 7.9服务器Java部署环境配置的过程详解

    这篇文章主要介绍了CentOS 7.9服务器Java部署环境配置,主要包括ftp服务器搭建过程、jdk安装方法以及mysql安装过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部