cm安装要求,具体配置参考cloudera官网
首先,配置给三台服务器配置好ip:vim /etc/sysconfig/network-scripts/ifcfg-eth0
设置如下:
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:4E:BB:D5"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="b530dd2b-639e-4746-ba0d-254c78811de1"
IPADDR="172.31.26.200"
NETMASK="255.255.255.0"
GATEWAY="172.31.26.254"
DNS1="****"(这个自己设置一下)
然后,执行service network restart重启一下网络。
接下来,就是关闭SELinux、关闭防火墙。
关闭SELinux:
暂时关闭:setenforce 0 搭环境一定要注意关闭,像搭httpd服务的时候必须关掉。
执行vi /etc/selinux/config
, 设置如下内容便可永久关闭
SELINUX=disabled
关闭防火墙:
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
接下来,就是修改一下hosts文件,像大数据中一般使用主机名。
执行:vim /etc/hosts
,添加
172.31.26.200 bigData200
172.31.26.222 bigData222
172.31.26.223 bigData223
三个节点都要添加。
如果某个过程中遇到错误,大家可以自行百度,都可以找到相应的解决办法。
建立Master到每一台Slave的SSH受信证书。由于Master将会通过SSH启动所有Slave的Hadoop,所以需要建立单向或者双向证书保证命令执行时不需要再输入密码。在Master和所有的Slave机器上执行:ssh-keygen -t rsa
。执行此命令的时候,看到提示只需要回车。然后就会在/root/.ssh/下面产生id_rsa.pub的证书文件,通过scp将Master机器上的这个文件拷贝到Slave上(记得修改名称),例如:scp root@masterIP:/root/.ssh/id_rsa.pub /root/.ssh/46_rsa.pub
,然后执行cat /root/.ssh/46_rsa.pub >>/root/.ssh/authorized_keys
,建立authorized_keys文件即可,可以打开这个文件看看,也就是rsa的公钥作为key,user@IP作为value。从slave到master反向也是一样的操作。
然后每台服务器上都修改ssh的配置文件:vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
执行:vim /etc/ssh/ssh_config
:
StrictHostKeyChecking no
最后,可以看下主节点和子节点上的authorized_keys
执行cat /root/.ssh/authorized_keys
也就是说,你要无密码登录哪台主机,就得在那台主机上有一个授权的key。
这个配置,其实是为了保证slave节点与主节点的时间保持一致。 如果没有安装ntp服务,则先安装:
ntp安装:
yum -y install ntp
/yum安装NTP服务/
chkconfig –add ntpd
/添加NTP/
chkconfig ntpd on
/开机自启动NTP/
设置:
1.在iDriller主节点上编辑配置文件/etc/ntp.conf
vim /etc/ntp.conf
去掉一下两行前面的#号
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
2. 在iDriller子节点上分别编辑配置文件/etc/ntp.conf
vim /etc/ntp.conf
在#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap行下面增加行:
server bigData200
启动ntp服务:
service ntpd start
验证:
watch ntpq -p
安装clush需要先配置好ssh免登陆。Clush可以在集群上并行执行shell命令并收集命令输出,所以分发文件就比较方便
先去下载clustershell-1.6-1.el6.noarch.rpm,然后安装
rpm -ivh clustershell-1.6-1.el6.noarch.rpm
这个只需要安装在主节点上,安装好后,执行
vim /etc/clustershell/groups
,然后清空所有设置:
all:bigData200,bigData222,bigData223
slaves:bigData222,bigData223
然后,我们可以创建一个文件 touch /tmp/testfile
,进行测试
clush -g all –copy /tmp/testfile –dest /tmp/
,看是否分发到从节点上。
这一步可以说是最麻烦的,麻烦就在准备源,也就是rmp包,因为安装某个包时会有先安装很多依赖,所以这些包都得准备好。另外,为什么要使用本地源呢,因为大数据服务器一般是不会联网的,同时不使用本地源传输速度非常慢。
首先,需要安装一个httpd服务,这个可以不安装在集群的节点上,都行。
yum -y install httpd
service httpd restart
chkconfig httpd on
然后,http默认是将文件全部放在/var/www/html/下的:
这里,把cm相关的包放在cm目录下,把相关的常用包放在iso下,把升级包放在parcels下,然后启动服务后直接在浏览器中便可访问,如下
这里,我们先执行:cd /etc/yum.repos.d/
然后创建一个目录bak,把这些默认源移到bak下,添加本地源cm.repo和iso.repo:
cm.repo:
[cm]
name=cm
baseurl=http://rzx161/cm
enabled=1
gpgcheck=0
iso.repo:
[iso]
name=iso
baseurl=http://rzx161/iso
enabled=1
gpgckeck=0
gpgkey=http://172.31.25.161/iso/RPM-GPG-KEY-CentOS-6
然后使用clush分发到另外两条从节点上去,执行
clush -g all --copy *.repo --dest /etc/yum.repos.d/
先卸载原有mysql
rpm -qa | grep -i mysql | xargs rpm -e –nodeps
然后安装驱动
yum -y install mysql-connector-java
执行
yum -y install cloudera-manager-server*
yum -y install mysql-server
分别安装cm server和mysql。
设置服务为开机启动:
chkconfig cloudera-scm-server on
chkconfig cloudera-scm-server-db on
chkconfig mysqld on
启动mysql:service mysqld start
在mysql中创建对应用户和数据库:
mysql>create database cmf default character set utf8 collate utf8_general_ci;
mysql>grant all on cmf.* to 'cmf'@'localhost' identified by 'cmf';
mysql>flush privileges;
mysql>exit;
编辑/etc/cloudera-scm-server/db.properties,将cmf库正确配置:
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=localhost
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=cmf
启动cm:
service cloudera-scm-server-db start
service cloudera-scm-server start
在浏览器访问这个地址便可看到
密码默认是admin。
登陆进去后就是按照步骤操作
这个位置容易失败,主要是系统版本的原因,导致一些依赖有问题,真是悲剧。这个过程中要填一些源,就把刚才搭建httpd中的路径http://IP/cm/和http://IP/parcels/填写进去即可。
cm中可以添加很多服务,我们可以选择需要的服务先安装,之后也可以新增服务。
最好服务都成功后,并按照提示修改下相应的配置,便可看到:
在cm可以修改对于服务的配置文件,还可以执行命令,还可以监控服务等
⚠️服务器不同,配置环境不同,过程中会有相应的问题,如果过程中有维提岛的问题,自行百度解决