虚拟机部署Cloudera Manager + Cloudera Hadoop 6.1.0

    vm虚拟机内安装CM+CDH6.1.0,centos7系统,本机资源有限,教程先以1台为例(内存>6G,磁盘划分/至少40G,/data/10G),后续节点可以通过扩容方式加入,所以分为两个大步骤:cm节点部署,和集群的扩容;

    1、准备cm的rpm包,cdh的parcel包,第1个链接内的需要完全下载,第2个链接内根据linux版本(centos6 or 7)下载;

cm的rpm包:
https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/RPMS/x86_64/
cdh的parcels包:
https://archive.cloudera.com/cdh6/6.1.0/parcels/

2、修改虚拟机的网络设置、禁用SElinux、修改主机名、关闭防火墙、ssh免密、开启http服务、设置时钟同步;

     对于网络的要求是:NAT模式下,所有主机在同网段,且能访问外网。修改IP、网关、DNS;

vim /etc/sysconfig/network-scripts/ifcfg-ens33 

    首先,修改ifcfg-en33的dhcp自动分配修改为静态寻址,增加ip/掩码/网关配置;(网关不管怎么配,都不要配192.168.x.1,因为1号IP是VMnet8网卡的IP)

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="5ed941c2-deb4-48ae-a76d-838503c8683c"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.242.134"
GATWAY="192.168.242.2"
NETMASK="255.255.255.0"
DNS1="192.168.242.2"

 配置完成后通过service network restart 重启网卡设置,依然无法连接外网(ping www.baidu.com),可以增加默认dns;

route add default gw 192.168.242.2

其次,增加主机和主机名映射(/etc/hosts),关闭防火墙,关闭SElinux,设置多主机免密,开启http服务;

#cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.242.134 hadoop1
#关闭防火墙,centos7之前版本
systemctl disable firewalld
#关闭防火墙,centos7之后版本
systemctl disable firewalld.service
#重启生效
#vi /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted

    主机免密的方法:

主机A/B/C为例,设置免密登录的方法:
① 每台机器上执行 ssh-keygen -t rsa ,敲3次回车会在家目录/home/csap下生成隐藏的.ssh目录,首先需要给此目录赋权限700: chmod 700 .ssh;这个目录下有两个文件:id_rsa 私钥和id_rsa.pub 公钥;
② 在此目录中创建 authorized_keys 文件并赋权:
cd .ssh
touch authorized_keys
chmod 644 authorized_keys
③ 以机器A为例,执行以上操作后,如果不知道其他机器的密码,比如绑定4A;把自己的 id_rsa.pub 公钥 以及其他两台机器的公钥粘贴到 authorized_keys文件中,然后把这个文件复制到其他2台机器即可。等于所有机器都有其他机器的公钥,即可完成ssh 免密登录;
④ 如果知道其他机器密码,可以直接执行这个把公钥写到其他机器的authorized_keys文件中:ssh-copy-id -i ~/.ssh/[email protected]

    时钟同步(保证其他节点同cm节点时钟一致):

1、所有机器安装ntp :yum -y install ntp
2、CM节点配置时钟与自己同步:vim /etc/ntp.conf,删除其他server,加入:
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
3、其他非CM节点,同步CM节点的时间,vim /etc/ntp.conf,加入:
server xxx.xxx.xxx.xx
4、重启所有机器的ntp服务
systemctl restart ntpd或者service ntpd restart
systemctl status ntpd或者service ntpd status
5、验证同步
所有节点执行ntpq –p,左边出现*号表示同步成功。
6、若不成功;
/usr/sbin/ntpdate stdtime.gov.hk 
ntpdate xxx.xxx.xxx.xxx
手动同步时间

    开启http服务,/var/www/html/目录下会自动创建cm和cdh目录

yum -y install httpd
systemctl start httpd 或service httpd start

    3、制作本地yum源。

    将第1步下载的cdh和cm包放在对应目录下,并修改yum配置:

① 开启http服务
#创建目录,并上传本地的cdh和cm到制定文件夹
cd /var/www/html/
mkdir cm-6.1.0 cdh-6.1.0
#完成后在浏览器打开url:http://192.168.242.134/cm-6.1.0,能够访问则成功;

② 制作本地yum源
#下载yum源工具包
yum -y install yum-utils createrepo
# 在cm-6.1.0目录下生成rpm元数据:
createrepon /var/www/html/cm-6.1.0
#并对/var/www/html下的所有目录和文件赋权:
chmod  -R 755 /var/www/html
#创建本地Cloudera Manager的repo源,创建/etc/yum.repos.d/myrepo.repo,加入一些配置项:
[myrepo]
name = myrepo
baseurl = http://192.168.242.134/cm-6.1.0
enable = true
gpgcheck = false
#使用yum repolist验证是否成功,

   完成后,可通过rul查看文件;

4、开始安装cloudera-manager。

    这里使用默认的pgsql作为元数据库,可以自己安装mysql库,并将其作为元数据库;

# ① 安装必要rpm包
cd /var/www/html/cm-6.1.0/
chmod +x cloudera-manager-installer.bin 

# 安装jdk
rpm -ivh oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm 
# 安装cm-agent、cm-daemon、cm-server、cm-server-db的rpm包,步骤有一定约束:
rpm -ivh cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm 
rpm -ivh cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm 
rpm -ivh cloudera-manager-server-db-2-6.1.0-769885.el7.x86_64.rpm (报错)
# 报错因为server-db 依赖postgresql-server >= 8.4 ,使用yum 安装,自动下载依赖
yum install -y cloudera-manager-server-db-2-6.1.0-769885.el7.x86_64.rpm

# server-agent 需要依赖更多
rpm -ivh cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm 
#警告:cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID b0b19c9f: NOKEY错误:依赖检测失败:
# 解决办法是分别yum安装依赖包;
yum install -y lsb
yum install -y mod_ssl
yum install -y openssl-devel
yum install -y python-psycopg2
yum install -y MySQL-python
#完成后,重新安装server-agent依赖

# ② 上面的rpm依赖完成安装后,启动cm的installer
./cloudera-manager-installer.bin --skip_repo_package=1

# ③ 删除/etc/cloudera-scm-server/db.properties
rm /etc/cloudera-scm-server/db.properties

 安装完成后提示如下说明cm安装成功,启动7180端口,用户名和密码都是admin;

验证:

(1)netstat -lnpt | grep 7180 端口有运行

(2)查看日志:tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log 提示ScmActive completed successfully

(3)web查看xx.xx.xx.xx:7180是否可以访问

5、使用本地parcel包安装cdh(坑很多)。

    步骤4完成cm的安装,web访问192.168.242.134:7180登录cm页面按照指引进行cdh安装。

① 存储库选择http://192.168.242.134/cm-6.1.0(确认http服务已开启,可以url访问)

② 修改cdh的parcels文件名称:

mv CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha256 CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha

③ 经常出现无法读取本地cdh的parcels包问题,需要重启installer;一般没用,还是外网下载。。。

# 卸载重装
/opt/cloudera/installer/uninstall-cloudera-manager.sh
rm /etc/cloudera-scm-server/db.properties
./cloudera-manager-installer.bin --skip_repo_package=1

帖子上说可以重启scm-server解决,但无效,可以在其下载一半返回页面,重新扫描可以解决;

6、配置cdh中的大数据相关组件

按照指引进行,记住数据库的登录名和密码;

初始化组件安装时容易出现主机资源不足,前期应该给cm节点足够的存储空间;

能够完成组件安装,就可以看见实时监控页面,后续扩容将后面补充;

7、扩容新机器。

     cm的web界面选择“add hosts”,按照指引完成cm的agent安装,成功后会进行cdh包的分发,扩容新机器必须完成步骤2中的主机准备过程,保证开启http服务,可远程访问cm节点的cdh包,没有多少坑。

发布了62 篇原创文章 · 获赞 158 · 访问量 32万+

猜你喜欢

转载自blog.csdn.net/yezonggang/article/details/105412340