集群"/>
clouder manager完整搭建cdh集群
搭建cdh全过程
1)根据文档 “安装RedHat+Linux+7” 安装好centos7的操作系统 (3台机器,内存9g、3g、3g; 磁盘40g、15g、15g)
实际配置多台机器:?
1)利用cdh配置大数据集群环境
2)制作一个系统(里面已经安装了所需要的软件)
3)系统安装,然后主节点肯定从头到尾配置(里面会存在mysql,clouderManager-Server,,,从节点所没有的东西)
4)系统安装,从节点里面的配置还是得手动设置如,网络、ip地址映射、防火墙,,,
5)增加节点,删除节点利用cdhManager,前提是之前的配置都ok,也拷贝了clouder-cm这个包吧
实际上,各机器的系统安装(运维有它们的方式)、配置各机器的网络ip(用脚本实现)、最后cdh页面管理添加!
思考问题:如果集群几十台机器,难道要逐一经行ip的配置吗?
建立centos系统时,选择的是本机模式,然后搭建系统的过程中进行的网络ip对应的是vm8的网段,配置的ip不对,没对 应(本机模式 --》vmware1, Nat模式 --》 vmware8)
以后搭建一开始就选择NAT模式。(配置好后,再查看机器的ip跟ifcfg-ens33的IP是否一致)
这样ip配置成功之后,就可以使用shell工具进行配置多台机器,可以通过shell给每台机器配置ssh,配置ssh之前得给各机器用户添加无密码使用sudo命令的权限(同时关闭SELinux,否则ssh连接会要密码) ,再写脚本配置多台机器
这样的方案应该可以是可以执行的,虽然虚拟机都是通过克隆出来的,但是它们的ip都不一样的
我们这里因为机器比较少,所以就用手动配置了,上述这种方案遇到多台机器的时候可以尝试
给cdh用户添加无密码使用sudo命令的权限 (这里也先不配置吧),我这次主要想能通过clouder manager把cdh集群搭建起来,其它的问题先不管了
vi /etc/sudoers
cdh ALL=(ALL) NOPASSWD: ALL
关闭SELinux,否则ssh连接会要密码 (没关也没见要密码)
查看SELinux状态
/usr/sbin/sestatus -v
修改配置文件需要重启机器:
vim /etc/selinux/config
SELINUX=disabled
2)配置网卡设置ip、让虚拟机可以上网
虚拟机怎么ping不通百度呢?(四个方面)
a.windows中的vmware8的网段对应windows中的网段(手动设置)
b.虚拟机中打开编辑网络编辑器,点击vmware8,选择NAT模式,子网网段与之前的保持一致,如:192.168.1.0
c.虚拟机中点击设置,选择NAT模式
d.vi /etc/sysconfig/network-scripts/ifcfg-ens33
sudo chmod 777 /etc/sysconfig/network-scripts/ifcfg-ens33
vi /etc/sysconfig/network-scripts/ifcfg-ens33
选择NET模式,配置ip网关
BOOTPROTO=static
IPADDR=192.168.1.11
GATEWAY=192.168.1.2
DNS1=8.8.8.8
DNS2=8.8.4.4
NETMASK=255.255.255.0
ONBOOT=yes
sudo chmod 777 /etc/resolv.conf
更改DNS vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
重启网络 systemctl restart network
3) 更改主机名字 vi /etc/hostname
修改hosts文件,匹配主机名与ip
sudo chmod 777 /etc/hosts
vi /etc/hosts
192.168.1.11 cdh01
192.168.1.12 cdh02
192.168.1.13 cdh03
4)关闭防火墙 (永久性)
关闭防火墙
systemctl stop firewalld.service
关闭开机自动启动
systemctl disable firewalld.service
reboot: 再进行后续操作
5)
挂载光盘:mount /dev/cdrom /mnt (每台机器都需要挂载光盘),在此之前每台机器cd上都对应在centos系统文件
删除原来的所有repo文件 rm -rf /etc/yum.repos.d/* (每台机器都要删完,不然install不成功)
创建yum的源文件: vi /etc/yum.repos.d/my.repo
[centos-yum]
baseurl=file:///mnt
enabled=1
gpgcheck=0
没有源就无法下载yum install ntp,源在安装的系统文件中,所以需要挂载光盘读取
开启NTP服务
所有节点都需要操作
yum install ntp
systemctl is-enabled ntpd
systemctl enable ntpd
systemctl start ntpd
ntpdate手动同步一下时间
sudo service ntpd stop
sudo ntpdate cn.pool.ntp : 同步网络时间
sudo service ntpd start
6)配置免密ssh(每台机器都执行 )
SSH安装 (centos中默认已经安装好了ssh)
重启OpenSSH服务 service sshd restart
生成公钥和密钥:ssh-keygen -t rsa
cd ~/.ssh cat id_rsa.pub >> authorized_keys (追加,不会覆盖)
修改.ssh目录的权限以及authorized_keys 的权限(这个必须修改,要不然还是需要密码,所有机器上)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ssh-copy-id -i id_rsa.pub root@cdh01 ---将你的公共密钥填充到一个远程机器上的authorized_keys文件中
7)java安装的目录: 卸载原有的jdk,删完全部文件
rpm -qa | grep java
rpm -e –nodeps java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64
java -version
rpm -ivh jdk-8u161-linux-x64.rpm (.rpm包与.gz包不一样)
配置环境变量: echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment
快照下
----------------------------------------------
8)clouder manager搭建cdh集群
clouder manager放到/opt目录
安装包、解压包存放地方分别是: /root/package 、/root/training/
cdh01 clouder manager 、mysql、Agent
cdh02、03 Agent
先上传clouder manager,mysql安装包,mysql驱动包到cdh01; 后面再把两个parcel,上传到cdh01指定目录!
然后拷贝cdh0q的agent到两个slave,拷贝mysql驱动包到两个slave!
8)-1)安装mysql
a)centos7自带的是mariadb,需要先卸载掉
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.41-2.el7_0.x86_64
将下载好的mysql rpm包拷贝到服务器上然后解压
tar -xvf mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar -C /root/training/
然后安装 rpm -ivh (互相依赖有先后顺序,就装这四个即可)
mysql-community-common-5.7.9-1.el7.x86_64.rpm
mysql-community-libs-5.7.9-1.el7.x86_64.rpm --(依赖于common)
mysql-community-libs-compat-5.7.19-1.el7.x86_64.rpm -- (后面校验数据库hue需要)
mysql-community-client-5.7.9-1.el7.x86_64.rpm --(依赖于libs)
mysql-community-server-5.7.9-1.el7.x86_64.rpm --(依赖于client、common)
mysql-community-devel-5.7.19-1.el7.x86_64.rpm (hue会用到)
安装后的mysql会自动初始化
b)配置开机启动(systemctl enable mysqld.service)
启动MySQL: systemctl start mysqld.service
查看root用户的密码:cat /var/log/mysqld.log | grep password
登录后修改密码:
mysql -u root -p
alter user 'root'@'localhost' identified by '123456';
c)允许mysql远程访问
use mysql;
select user,host from user;
update user set host='%' where user='root' AND host='localhost';
FLUSH PRIVILEGES;
d)拷贝mysql-connector-java到各个节点指定目录下(所有的节点)
cp mysql-connector-java-5.1.36-bin.jar /usr/share/java/mysql-connector-java.jar
e)创建数据库
create database hive ;
create database amon ; ---> 这个是CDH的activity monitor
create database hue ;
create database oozie ;
grant all on *.* to root@"%" identified by "123456";
注意:需要在cdh71上创建report数据库,如下:
create database report;
create user 'reportmanager'@'%' identified by '123456';
grant all on report.* TO 'reportmanager'@'%';
grant all on report.* TO 'reportmanager'@'localhost' identified by '123456';
快照下
-----------
8)-2)安装配置Clouder Manager(在cdh01上)
a)将cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz上传至/opt目录,并解压
tar -zxvf cloudera-manager-centos7-cm5.12.1_x86_64.ta r.gz
b)将mysql的驱动放到/opt/cm-5.12.1/share/cmf/lib/中
cp /usr/share/java/mysql-connector-java.jar /opt/cm-5.12.1/share/cmf/lib/
c)初始化Cloudera Manager的数据库元信息
/opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hbigdata11 -uroot -p123456 --scm-host bigdata11 scm scm cm --force
<最后三个参数是:数据库名,数据库用户名,数据库密码注意符合规则>
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。-hcdh01:数据库建立在cdh01主机上面。也就是主节点上面。-uroot:root身份运行mysql。-123456:mysql的root密码是***。–scm-host cdh01:CMS的主机,一般是和mysql安装的主机是在同一个主机上。最后三个参数是:数据库用户名,数据库密码,数据库名。
遇到问题:Your password does not satisfy the current policy requirements
解决如下:修改密码规则
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=1;
set global validate_password_special_char_count=0;
set global validate_password_length=1;
FLUSH PRIVILEGES;
d)创建cloudera-scm用户
useradd --system --home=/opt/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
e)将以下文件上传至/opt/cloudera/parcel-repo/目录
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1
manifest.json
重命名文件CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1
改名为:CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha (注意:少了一个1)
修改 /opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名
8)-3)配置Cloudera Agent(cdh02和cdh03)
a)从主节点cdh01上将Cloudera Manager Agent复制到agent节点(cdh02和cdh03)上
scp -r /opt/cm-5.12.1 root@cdh02:/opt/
scp -r /opt/cm-5.12.1 root@cdh03:/opt/
b)在agent节点(cdh02和cdh03)上创建cloudera-scm用户
useradd --system --home=/opt/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
8)-4)部署CDH5
a)在cdh71启动服务Cloudera Manager Server
/opt/cm-5.12.1/etc/init.d/cloudera-scm-server start
b)在cdh71、cdh72和cdh73上启动的agent :
/opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start
c)访问cdh71上的Cloudera Manager:
端口:7180(http://192.168.1.11:7180/cmf/login)
/opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini中查看端口号
用户名密码:admin/admin
接受用户条款
选择60天试用版
点击“继续”
为CDH群集安装指定主机(选择cdh01、cdh02和cdh03)
d)选择存储库
(点击“Parcel更多选项”删除默认的远程库。如果之前没有做这一步,会有错误。需要重新安装) --- 对于不能上网的虚拟机,能上网应该没问题,没试过!
e)验证正确性
在cdh01、cdh02和cdh03上,执行下面的语句,并点击“重新运行”按钮
echo 10 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
f)选择自定义,选择要在群集上安装的 CDH 5 服务(不要选择kafka,后期手动集成kafka)
默认已经分配好,但个别地方改下,zookeeper分配三台机器,以及为activity monitor分配主机
g)校验数据库
填写mysql中创建的数据库名、用户名、密码
密码之前配的是Welcome_1,测试怎么变成了123456,hue还验证不通过??
因为后来我把root用户的密码改为了123456,这里的数据库对应的用户也是root,所以密码跟着变
安装mysql的时候,将 mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm 也装上hue就校验通过了
h)创建成功
验证每台机器上的Java后台进程
i)报错客户端配置生成需要激活以下其他 Parcel:[kafka]
CDH的parcel包中是没有kafka的,说明cdh集群要另外集成kafka,集成kafka的前提条件是要先搭建好集群
附上链接:https://wwwblogs/lenmom/p/9157087.html
a.根据要求选择对应的版本下载 /documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_kafka
b.下载kafka 的csd包(一个jar包)、parcel包(两个parcel加一个json文件)
c.上传CSD包的jar,到/opt/cloudera/csd
上传parcel包中的3个文件,到/opt/cloudera/parcel-repo(文件重名改掉、sha1后缀去掉1)
d.进入CDH的管理界面,点击主机->parcel->检查新parcel
kafka出来后,点击分配、激活按钮,操作成功
向集群中添加kafka服务
f.回到CDH主页面,点击kafka,进入配置页面,点击下方警告处,修改 Java Heap Size of Broker为1G
卸载之前安装不成功的集群,重新安装:
删除所有主机以及服务
点击向集群添加主机,就会跟之前一样重新开始搭建集群
clouder manager界面很多标红问题:(增加内存、磁盘分配得到解决)
主机内存磁盘感觉都不够呢主要是内存,我都还没跑任务内存就满了什么鬼(删除不用的服务留下spark就好、试下直接新增虚拟机内存)
从节点磁盘不太够(但可以通过克隆添加从节点解决)
虚拟机的内存、磁盘容量都可以修改莫慌
更多推荐
clouder manager完整搭建cdh集群
发布评论