安装CDH6.3.1

 CDH6.3.1安装遇到很多问题,我想主要是由于条件有限,毕竟自己的电脑内存不如专业集群的内存大(如果是内存和硬盘充足,有些是可以避免的,甚至不会出现报错的情况),这里就介绍一下我用VMware安装的虚机中搭建CDH集群的辛酸历程。为了避免多次、重复安装不成功,所以需要具备以下条件:

1. 内存要足够大

我的电脑内存是8G:

使用虚拟机安装Cloudare server:4GCloudare agent:分别为1G电脑最后很卡,而且内存98%。官方推荐最小内存为10G,所以最好还是听从官方的建议。

2.    安装的系统Centos7.7,这里我就不写VMware安装centos的操作步骤了。

3. ClouderaManager介绍:

3.1 ClouderaManager的概念

简单来说,Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。

3.2 ClouderaManager的功能

1) 管理:对集群进行管理,如添加、删除节点等操作。

2) 监控:监控集群的健康情况,对设置的各种指标和系统运行情况进行全面监控。

3) 诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。

4) 集成:多组件进行整合。

1.1    安装前准备

1.1.1     网络配置【所有节点】

修改hostname

在每个节点上执行hostname [主机名]

配置网络
 

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=cdh6 #【每个节点改成相应的hostname】

NETWORKING_IPV6=no

PEERNTP=no

保存退出

重启网络服务

service network restart

配置hosts(可用ifconfig查看ip)

vim /etc/hosts

192.168.244.168 cdh6

1.1.2     设置ssh免密登陆【所有节点】

生成无密码的密钥对

ssh-keygen -t rsa

一路回车

将公钥添加到本地认证文件中

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

设置authorized_keys的访问权限

chmod 600 /root/.ssh/authorized_keys

**以上步骤先在每个节点上先执行一遍,然后执行下面操作

将每个节点上生成的id_rsa.pub复制到其他所有节点并添加到它们的认证文件中

比如:manager上生成的id_rsa.pub,复制到node1和node2上

scp /root/.ssh/id_rsa.pub node1:/root/(manager上执行)

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys(在node1上执行)

scp /root/.ssh/id_rsa.pub node2:/root/(manager上执行)

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys(在node2上执行)

其余节点类似操作

验证是否配置免密登录成功:

ssh root@node2

1.1.3     安装Oracle的JDK【所有节点】

如果CentOS装有OpenJDK,卸载之,CDH6需要使用Oracle的JDK,我这里使用jdk 1.8。

卸载自带的OpenJDK

使用rpm -qa  |  grep java查询java相关的包

使用rpm -qa  |  grep openjdk  |  xargs rpm -e --nodeps卸载之

安装oracle jdk

rpm -ivh jdk-8u211-linux-x64.rpm

echo 'export JAVA_HOME=/usr/java/default'>>/etc/profile

source /etc/profile

1.1.4     关闭防火墙和SELinux 【所有节点】

注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。 

关闭防火墙

CentOS 7.0默认使用的是firewall作为防火墙

查看防火墙状态

firewall-cmd --state

停止firewall

systemctl stop firewalld

禁止firewall开机启动

systemctl disable firewalld

关闭SELINUX

setenforce 0 (临时生效)

修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)

1.1.5  安装配置MySQL5.7【主节点】

卸载已有的mysql-libs

rpm -qa | grep mysql rpm -qa | grep maria

rpm -e --nodeps 【包名】

上传tar.gz包到/usr/mysql

rz或者使用winscp工具

解压:

tar -zxvf mysql-5.7.28-linux-glibc2.5-x86_64.tar.gz

移动并重命名:

mv mysql-5.7.28-linux-glibc2.5-x86_64 mysql-5.7.28

创建mysql用户组和用户并修改权限

groupadd mysql useradd -r -g mysql mysql

创建数据目录并赋予权限

mkdir -p /home/mysql/data /#创建目录 chown mysql:mysql -R /home/mysql/data #赋予权限

配置my.cnf

vim /etc/my.cnf

[mysqld]

bind-address=0.0.0.0

port=3306

user=mysql

basedir=/usr/mysql/mysql-5.7.28

datadir=/usr/mysql/data

socket=/tmp/mysql.sock

log-error=/usr/mysql/data/mysql.err

pid-file=/usr/mysql/data/mysql.pid

#character config character_set_server=utf8mb4

symbolic-links=0

explicit_defaults_for_timestamp=true

初始化数据库

进入mysql的bin目录

cd /usr/mysql/mysql-5.7.28/bin/

初始化

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/mysql/mysql-5.7.28/ --datadir=/usr/mysql/data/ --user=mysql --initialize

查看密码

cat /usr/mysql/data/mysql.err | more | grep password

启动mysql,并更改root 密码

先将mysql.server放置到/etc/init.d/mysql中

cp /usr/mysql/mysql-5.7.11/support-files/mysql.server /etc/init.d/mysql

#启动!!!

service mysql start

ps -ef|grep mysql

下面修改密码

首先登录mysql,前面的那个是随机生成的。

./mysql -u root -p   #bin目录下

SET PASSWORD = PASSWORD('123456');

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

FLUSH PRIVILEGES;

这时候你如果使用远程连接……你会发现你无法连接。(防火墙要关闭)

这里主要执行下面三个命令(先登录数据库)

use mysql #访问mysql库 update user set host = '%' where user = 'root'; #使root能再任何host访问 FLUSH PRIVILEGES;

如果不希望每次都到bin目录下使用mysql命令则执行以下命令

ln -s /usr/mysql/mysql-5.7.11/bin/mysql /usr/bin

mysql创建数据库cmf、amon

create database amon DEFAULT CHARACTER set utf8;

create database cmf DEFAULT CHARACTER set utf8;

grant all privileges on cmf.* to 'cmf'@'%' identified by '123456';

grant all privileges on amon.* to 'amon'@'%' identified by '123456';

flush privileges;

创建/usr/share/java目录

mkdir -p /usr/share/java

把mysql-connector-java的jar拷贝到该目录下:

cp mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar

设置开机启动

先将/usr/mysql/mysql-5.7.11/support-files/ 文件夹下的mysql.server文件复制到 /etc/rc.d/init.d/ 目录下mysqld

命令: 

cp /usr/mysql/mysql-5.7.11/support-files/mysql.server /etc/rc.d/init.d/mysqld

赋予可执行权限:

chmod +x /etc/rc.d/init.d/mysqld

开机启动:

chkconfig mysqld on

查看服务列表:  

chkconfig --list

看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下:chkconfig --level 345 mysqld on

 

1.1.6    配置NTP(Network Time Protocol)服务【所有节点】

集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下: master节点作为ntp服务器与外界对时中心同步时间,随后对所有slave节点提供时间同步服务。所有slave节点以master节点为基础同步时间。

1.2    安装Cloudera Manager

1.2.1    解压cloudera manager

上传cm文件到/opt

 

其中manager节点(既有server又有agent):

Server需要安装的:

cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

安装rpm包,不安装依赖:

rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force

rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm --nodeps --force

rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force

修改文件:

cd /etc/cloudera-scm-server/ vim db.properties

 

注意:com.cloudera.cmf.db.setupType一定要改成EXTERNAL,这是一个坑。

查看日志:cd /var/log/cloudera-scm-server/

 

启动cloudera-scm-server:

service cloudera-scm-server start

查看日志:cd /var/log/cloudera-scm-server/

tail –f cloudera-scm-server.log

初始化数据,大概需要1~2分钟,出现7180端口皆大欢喜:

访问780的web界面:到这里,先不要动!!!!!!!!!!

修改/etc/cloudera-scm-agent/config.ini

vim config.ini

 

启动cloudera-scm-agent:

service cloudera-scm-agent start

node1、node2节点:

Agent需要安装的:

cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

安装rpm包,不安装依赖:

rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force

rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force

修改/etc/cloudera-scm-agent/config.ini

vim config.ini

 

安装httpd服务

yum install httpd -y service httpd start mkdir -p /var/www/html/cdh6_parcel/

mv /opt/cdh6.3.2+cm6.3.1/cdh6/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /var/www/html/cdh6_parcel/

mv /opt/cdh6.3.2+cm6.3.1/cdh6/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 /var/www/html/cdh6_parcel/

mv /opt/cdh6.3.2+cm6.3.1/cdh6/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

mv /opt/cdh6.3.2+cm6.3.1/cdh6/manifest.json /var/www/html/cdh6_parcel/

访问:http://192.168.244.168/cdh6_parcel/

 

点击“更多选项”,远程parcel存储库URL这里删除的只剩一条,把刚才我们创建的http地址添加进去

 

 

 

这里注意:http://manager/cdh6_parcel/不是https://manager/cdh6_parcel/

 

 

 

1.    Cloudera 建议将 /proc/sys/vm/swappiness 设置为 10。当前设置为 30。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:

解决办法:

三台节点上运行:echo 'vm.swappiness=10'>> /etc/sysctl.conf

立即生效:sysctl –p

2.    已启用透明大页面压缩,可能会导致重大性能问题

三台节点分别执行:

echo never > /sys/kernel/mm/transparent_hugepage/defrag

echo never > /sys/kernel/mm/transparent_hugepage/enabled

然后,点击重新运行:

 

再次查看“显示检查器结果”,如下图:这里的这个先不用管,忽略即可

 

我们选择下图红色框内的(我已经了解了,让我继续安装吧),继续安装

 

点击继续,选择要安装的服务,自定义服务:自己决定安装什么,比如安装:HDFS,勾选上就行

 

自定义服务分配

 

数据库设置:

 

1.    因为内存少,所以会遇到下面问题:

command aborted because of exception:Command timed-out after 90 seconds hdfs/hdfs.sh ["mkdir","/tmp","hdfs","superfgroup","1777"]

上面的命令超时。

解决办法:

再次重试,就可以通过了。

假如遇到其他问题,可以通过角色日志查看问题原因。

2. CDH部署集群报错:fail to format namenode

手动格式化namenode

问题原因

是由于之前初始化 namenode 在 /dfs/nn 留下了残留数据(失效数据),从而影响再次初始化

解决方法

清空残留数据后,重新初始化

namenode节点: rm -rf /dfs/nn datanode节点: rm -rf /dfs/dn

由于我的只是namenode节点有问题,所以只需:rm -rf /dfs/nn

 

最终运行全部通过

点击完成即可。

CloudareManager界面:

 

安装完CDH就可以安装其他组件了,比如impala、kudu、Kafka等,以后会更新其他组件相关内容,敬请期待!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值