市场上免费大数据框架主要有三个版本,原生的Apache版本,Cloudera公司研发的(Cloudera Distribution Hadoop,简称“CDH”)CDH版本(最新6.1),也是市场上使用最多的,Hortonworks版本(Hortonworks Data Platform,简称“HDP”)
Cloudera Manager相关介绍
cloudera公司开源大数据框架
管理集群的
使用CM可以对大数据的各个框架进行智能的安装、部署及集群的资源、服务的监控
yum 在线安装
rpm 离线安装
tar 离线安装
CM安装(只能安装CDH版本的大数据框架)
cm-cloudera managerment 下载地址https://www.cloudera.com/downloads/manager/5-16-1.html
cm-5.16.1 对应安装cdh5.16.1版本 下载地址http://archive.cloudera.com/cdh5/parcels/latest/
存储整个集群的配置与监控信息
hive、hue、cm等组件需要用到
Linux Centos7.5
jdk1.8
scala-2.11
mysql
5.5 不支持impala的安装
5.6 -- 选择
5.7 --密码不能设置太简单。。。
ip
主机名 : mf01~mf06
ipv6禁用
关闭防火墙并设置为开机不启动
禁用selinux
ip | 内存 |
---|---|
192.168.199.190 | 14g |
192.168.199.191 | 14g |
192.168.199.192 | 10g |
192.168.199.193 | 10g |
192.168.199.194 | 10g |
192.168.199.195 | 10g |
# free -h 查看内存空间
# df -h 查看磁盘空间
# cat /proc/cpuinfo | grep "processor" |wc -l 总核数
# vim /etc/hostname
mf01 //主机名不能出现空格或回车符
重启生效
# vim /etc/hosts
192.168.199.190 mf01
192.168.199.191 mf02
192.168.199.192 mf03
192.168.199.193 mf04
192.168.199.194 mf05
192.168.199.195 mf06
C:\Windows\System32\drivers\etc
192.168.199.190 mf01
192.168.199.191 mf02
192.168.199.192 mf03
192.168.199.193 mf04
192.168.199.194 mf05
192.168.199.195 mf06
# hostname
# ping mf01
编辑文件/etc/sysctl.conf,
#vim /etc/sysctl.conf
添加下面的行:
net.ipv6.conf.all.disable_ipv6 =1
net.ipv6.conf.default.disable_ipv6 =1
如果你想要为特定的网卡禁止IPv6,比如,对于enp0s3,添加下面的行。
net.ipv6.conf.enp0s3.disable_ipv6 =1
保存并退出文件。
执行下面的命令来使设置生效。
#sysctl -p
验证:
#ip a
如果没有出现inet6相关信息则表示ipv6已经禁用成功
#systemctl stop firewalld 关闭
#systemctl disable firewalld 开机禁用
#systemctl status firewalld 查看状态
希望集群中任意两台服务器都可以免秘钥登陆
免秘钥登陆是针对某台服务器的上的某个用户
# ssh-keygen 一直按enter到结束,产生公钥和私钥
# ssh-copy-id mf01
……
# ssh-copy-id mf06
验证:
# ssh mf01
# exit 验证后要退出
略
首先安装ntp
#yum install ntp
安装完毕之后,启动服务
#systemctl start ntpd.service
设置开机自启动
#systemctl enable ntpd.service
在集群中选择一台服务器作为集群的时间服务器
mf01
修改mf01的配置文件
#vim /etc/ntp.conf
restrict 192.168.0.0 mask 255.255.255.0
设置后,重启ntpd服务,用ntpstat来检查效果【大概几秒钟就可以看到效果】
#systemctl restart ntpd
#ntpstat
其他服务器配置
修改/etc/ntp.conf文件,注释掉外网时间服务器,添加本地服务器即可
#vim /etc/ntp.conf
server 192.168.199.190 #添加此行
#server 0.centos.pool.ntp.org iburst #以下四行注释掉
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
修改集群时间服务器的硬件时钟时间
# hwclock --localtime 服务器的硬件时钟时间
# hwclock --localtime -w 将系统时间写给硬件时钟时间
```
设置硬件时钟时间与系统时间自动同步,系统关机时则把内存的系统时间写入并修改硬件时间,重启时系统时间会与硬件时间进行同步,从而保证系统时间是正确的
#SYNC_HWCLOCK=yes
# vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
设置后,重启ntpd服务,用ntpstat来检查效果【大概需要等十五分钟,看到效果】
#systemctl restart ntpd
#ntpstat
# vim /etc/security/limits.conf
添加以下信息:
soft ofile 32728
hard nofile 1024567
soft nproc 65535
hard nproc unlimited
soft memlock unlimited
hard memlock unlimited
# scp /etc/security/limits.conf mf02:/etc/security/ 依次拷贝集群其他节点
重启生效
验证:
# ulimit -a
选择mf01安装mysql
卸载系统自带
# rpm -qa |grep mysql
使用yum方式安装mysql
修改mysql的镜像源
#cd /etc/yum.repos.d yum源仓库
# rpm -Uvh mysql57-community-release-el7-8.noarch.rpm
/etc/yum.repos.d目录下出现两个mysql相关yum源配置文件
mysql-community.repo
mysql-community-source.repo
修改mysql的yum源配置文件
# vi mysql-community.repo
[mysql56-community]
enabled=1
[mysql57-community]
enabled=0
# vi mysql-community-source.repo
[mysql56-community-source]
enabled=1
[mysql-tools-preview-source]
enabled=1
更新yum源缓存
# yum makecache
查看基于当前yum仓库可以安装的mysql相关软件
# yum repolist enabled | grep mysql
安装mysql5.6社区版本
# yum -y install mysql-community-server
Complete!
#service mysqld status
#service mysqld start
#mysql_secure_installation 初始化设置
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n
... skipping.
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] n
... skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
Cleaning up...
安装CM所需要的第三方依赖包 (所有服务器)
# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb
Complete!
**在server节点上创建目录并将CM安装包解压到该目录下 **
# mkdir -p /opt/cloudera-manager
上传CM安装包到linux上
# tar -zxvf cloudera-manager-el7-cm5.16.1_x86_64.tar.gz -C /opt/cloudera-manager/
修改CM的配置文件
#cd /opt/cloudera-manager/cm-5.16.1/etc/cloudera-scm-agent
# vi config.ini
# Hostname of the CM server. 声明CM server的通讯地址
server_host=mf01
# Port that the CM server is listening on.
server_port=7182
依次将CM的安装目录拷贝给集群其他节点
# scp -r /opt/cloudera-manager/ mf02:/opt/
……
# scp -r /opt/cloudera-manager/ mf06:/opt/
useradd
--system 表示创建的是一个系统用户
--home=/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-server 指定用户主目录
--no-create-home 不在创建主目录
--shell=/bin/false 不作用服务器的登陆用户
--comment "Cloudera SCM User" 备注
cloudera-scm 用户名
验证:
# cat /etc/passwd | grep cloudera-scm
mysql> grant all privileges on . to ‘temp’@’%’ identified by ‘temp’ with grant option ;
on . 表示可以访问mysql中的 哪些库.哪些表 ,*代表所有
to ‘temp’@’%’ 表示赋权限给哪个用户,并且该用户需要通过哪台服务器来访问
% 代表所有
with grant option 权限传递
mysql> flush privileges ; 刷新权限
初始化CM在mysql的状态使用CM自带的初始化脚本 /opt/cloudera-manager/cm5.16.1/share/cmf/schema/scm_prepare_database.sh
/opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql -h mf01 -utemp -ptemp --scm-host mf01 scm scm scm
报错: 缺少驱动包
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
**解决:
将驱动包放入当前服务器的/usr/share/java目录下
CM管理的集群,cm本身或者通过cm所安装的其他框架(hive sqoop)都会默认到/usr/share/java下找驱动包 **
重新执行初始化操作
CDH的源-》parcel包
1)创建目录
# mkdir -p /opt/cloudera/parcel-repo --在server上创建
# mkdir -p /opt/cloudera/parcels --在所有的agent节点上创建
#mkdir -p /opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-agent --在所有的agent节点上创建
2)将CDH的源移动到sever的parcel-repo 目录下
3)修改校验码文件名称
#mv CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha
4)修改parcel-repo parcels目录的所属人
# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/ -在server上
# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels -在agent上
启动server服务
# /opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server start
日志查看
#tail –f /opt/cloudera-manager/cm-5.16.1/log/cloudera-scm-server/cloudera-scm-server.log
启动agent服务
# /opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent start
浏览器打开mf01:7180
将mysql-connector-java.jar包拷贝到其他节点上,不然安装hive、hue等组件时会报错
# scp mysql-connector-java.jar mf02:/usr/share/java
…
# scp mysql-connector-java.jar mf06:/usr/share/java
在mysql里创建hive,oozie,hue,amon相关数据库,后面添加这些组件时需要