一、准备工作:
1.虚拟机配置:
主节点:8G内存,硬盘100G
从节点:4G内存,硬盘100G,
从节点最低两个 总结点数必须为奇数(zookeeper选举机制)
2.需要的安装包:
- JDK1.8
- Scale
- Mysql安装包,jar包
- CDH相关安装包
3.下载地址
- 网盘地址
https://pan.baidu.com/s/1rIQo5T5cQ2i2m28Hnrt5zA
- 提取码
egzq
二、虚拟机基础配置:
1.配置固定IP(所有)
虚拟机网络配置为NAT模式
- 方法一:
进入/etc/sysconfig/network-scripts/ 目录,编辑ifcfg-ens33文件,修改内容如下(图为网络图片,个人未才用该方式)
service network restart
其中GATEWAY和DNS1需要和虚拟机中的网关相同查看方式如下
- 方法二(需要系统安装了桌面):
进入虚拟机(本人使用root用户),点击应用程序-系统设置-网络-有线-右下角齿轮标签-ipv4 详细配置如图,地址需要与网关在同网段内
手动关闭网络再重新开启 查看是否更改IP成功
2.修改hostname(所有)
vi /etc/sysconfig/network
配置内容如下 每台机器的hostname需要不同
NETWORKING=yes
HOSTNAME=cdh1
3.修改hosts 内容为:IP 主机名(所有)
vi /etc/hosts
192.168.200.131 cdh1
192.168.200.132 cdh2
192.168.200.133 cdh3
4.关闭防火墙(所有)
systemctl stop firewalld #关闭关闭
systemctl disable firewalld #禁用防火墙
5.禁用selinux(所有)
vi /etc/sysconfig/selinux
修改:SELINUX=disabled
6.NTP服务器设置(可选,节点较少,节点时间偏差不大(5分钟内)可不配置)(所有)
yum -y install ntp
1.在主节点cdh01执行
vi /etc/ntp.conf
2.注释掉所有server *.*.*的指向,新添加一条可连接的ntp服务器
server ntp.sjtu.edu.cn iburst
3.在两个从节点执行
vi /etc/ntp.conf
注释掉所有server *.*.*的指向,新添下面一条把ntp指向master服务器地址(/etc/ntp.conf下)
server cdh01 iburst
4.所有节点启动服务
service ntpd start
5.查看ntp服务状态
ntpq –p
注:在服务器配置时可以选择同一时区并开启自动日期和时间来代替以上操作
7.配置免密登录(所有,以下步骤包含三个节点的所有操作)
ssh-keygen -t rsa #生成密钥
cd /root/.ssh/
cat id_rsa.pub>>authorized_keys #将密钥写入authorized_keys,该操作在master上执行
scp - r authorized_keys node1: /root/.ssh/ #将 authorized_keys传递到node1节点上,该操作在master上执行
cat id_rsa.pub>>authorized_keys # 在node1 /root/.ssh/路径上执行
scp - r authorized_keys node2: /root/.ssh/ # 在node1 /root/.ssh/路径上执行
cat id_rsa.pub>>authorized_keys # 在node2 /root/.ssh/路径上执行
scp - r authorized_keys node1: /root/.ssh/ # 在node2 /root/.ssh/路径上执行
scp - r authorized_keys master: /root/.ssh/ # 在node2 /root/.ssh/路径上执行
注:该部分操作时为了让authorized_keys 内能记录所有的节点的id,最后将保存了所有节点id的文件发送给到所有节点上
8.添加其他依赖(所有)
yum install chkconfig python bind-utils psmisc libxslt zlib sqlite fuse fuse-libs redhat-lsb cyrus-sasl-plain cyrus-sasl-gssapi
9.准备mysql连接jar包(主节点)
1.在cdh01上准备mysql的jar包:
mkdir -p /usr/share/java
2.修改jar包的名字,并拷贝到/usr/share/java/目录:
cp mysql-connector-java-5.1.38-bin.jar /usr/share/java/mysql-connector-java.jar
10.安装jdk(所有)
1.卸载jdk
安装之前首先检查一下,你的服务器是否默认安装了OpenJDK,如果系统自带了,就需要卸载,步骤如下:
#检查是否安装
[root@cdh01~]java -version
java version "1.7.0_75"
OpenJDK Runtime Environment (rhel-2.5.4.2.el7_0-x86_64 u75-b13)
OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode)
#查看需要卸载的包
[root@cdh01~]rpm -qa | grep jdk
java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64
java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.el7_0.x86_64
#卸载
[root@cdh01~]yum -y remove java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64
[root@cdh01~]yum -y remove java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.el7_0.x86_64
#再次检查
[root@cdh01~]java -version
bash: /usr/bin/java: No such file or directory
如果没有安装,则可以跳过此步骤。
2.安装jdk
tar -zxvf jdk-8u191-linux-x64.tar.gz -C /opt/jdk
vi /etc/profile
#在文件中追加
export JAVA_HOME=/opt/jdk/
export PATH=$PATH:$JAVA_HOME/bin
#保存退出之后,这里还需要设置一个软连接:
mkdir /usr/java
ln -s /opt/jdk /usr/java/default
注:CDH平台安装的时候默认寻找的jdk路径为/usr/java。
三、CDH相关软件的安装
1.安装mysql(主节点)
1.卸载mariadb
[root@cdh01]rpm -qa | grep mariadb
mariadb-libs-5.5.41-2.el7_0.x86_64
2.如存在上述情形,按照下面卸载
[root@cdh01]rpm -e --nodeps mariadb-libs-5.5.41-2.el7_0.x86_64
3.安装mysql
3.1创建用户及用户组
#增加用户组mysql:
groupadd mysql
#增加用户mysql,加入mysql用户组:
useradd -r -g mysql mysql
3.2安装MySQL
#安装server:
rpm -ivh MySQL-server-5.6.29-1.linux_glibc2.5.x86_64.rpm
#安装client:
rpm -ivh MySQL-client-5.6.29-1.linux_glibc2.5.x86_64.rpm
3.3添加随机启动
cp /usr/share/mysql/mysql.server /etc/init.d/mysqld
3.4启动MySQL
service mysqld start
3.5修改密码(单引号内为新密码)(网上方法很多,本人只有这一种尝试成功了,若有问题可以自行百度)
cat /root/.mysql_secret #此密码只能用来修改密码使用。
复制获取到的随机密码,在执行下面这行命令后,会要求输入密码,输入刚才获取的随机密码即可
mysqladmin -u root -p password 'root'
3.6连接测试
#连接进入mysql,命令如下:
mysql -uroot -proot
4.创建CDH用到的相关表
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
5.设置mysql数据库远程访问权限
grant all privileges on *.* to root@'%' identified by 'root' with grant option;
flush privileges;
2.安装scala(所有)
#解压文件
tar -zxvf scala-2.11.0.tgz -C /opt/
#进入对应目录
cd /opt
#重命名
mv scala-2.12.8/ scala
#配置环境变量
vi /etc/profile
#在文件中追加
export SCALA_HOME=/opt/scala/
export PATH=$PATH:$SCALA_HOME/bin
四、安装Cloudera-Manager
1.使用的内容
cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz
CDH-5.7.2-1.cdh5.7.2.p0.11-el7.parcel
CDH-5.7.2-1.cdh5.7.2.p0.11-el7.parcel.sha1
manifest.json
2.安装CM
- 解压文件(所有)
mkdir /opt/cloudera-manager
tar -zxvf cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz -C /opt/cloudera-manager
- 创建cloudera-scm用户(所有)
#创建
useradd -r -d /opt/cloudera-manager/cm-5.7.2/run/cloudera-scm-server -M -c "Cloudera SCM User" cloudera-scm
#查看
id cloudera-scm
3.配置CM
- 配置主节点指向(所有节点)
#编辑文件
vi /opt/cloudera-manager/cm-5.7.2/etc/cloudera-scm-agent/config.ini
#需要修改的内容
server_host=cdh1
- 配置仓库目录(主节点)
#创建文件夹
mkdir -p /opt/cloudera/parcel-repo
#将文件改为指定的用户组拥有
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
#复制文件
cp CDH-5.7.2-1.cdh5.7.2.p0.18-el7.parcel CDH-5.7.2-1.cdh5.7.2.p0.18-el7.parcel.sha1 manifest.json /opt/cloudera/parcel-repo
#进入目录
cd /opt/cloudera/parcel-repo
#重命名
mv CDH-5.7.2-1.cdh5.7.2.p0.18-el7.parcel.sha1 CDH-5.7.2-1.cdh5.7.2.p0.18-el7.parcel.sha
-
配置CDH从节点目录(所有)
#创建目录
mkdir -p /opt/cloudera/parcels
#更改文件所有权为指定用户
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
解释:Clouder-Manager将CDH从主节点的/opt/cloudera/parcel-repo目录中抽取出来,分发解压激活到各个节点的/opt/cloudera/parcels目录中。
- 初始化数据库(主节点)
/opt/cloudera-manager/cm-5.7.2/share/cmf/schema/scm_prepare_database.sh mysql cm -uroot -proot --scm-host localhost scm scm scm
五、启动服务
- 启动service服务(主节点)
/opt/cloudera-manager/cm-5.7.2/etc/init.d/cloudera-scm-server start
- 启动agent服务(所有)
/opt/cloudera-manager/cm-5.7.2/etc/init.d/cloudera-scm-agent start
六、登录及后续安装
1.登录网址:主节点IP:7180,页面如下图,默认的账户密码为:admin admin
2.同意协议并继续
3.选择需要部署的版本,这离选择的是免费版本
4.CDH安装提示,继续即可
5.指定CDH需要的主机
6.按图选择CDH版本
7.安装集群
注:若途中出现分配过程卡住,或一直无法完成,检查各个节点间免密登录是否配置成功。在免密登录配置后的首次登录仍是需要密码的。
8.检查主机正确性
在检查中回出现两个警告框,需要执行以下代码,执行后重新检查主机正确性即可通过,不需要重启服务和机器
echo 0 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/defrag
9.选择需要安装的服务
10设置集群配置,默认配置即可
11配置数据库设置
注:
1.出现下图问题检查是否设置数据库访问权限为所有,设置方式参考https://blog.csdn.net/lwz18642660013/article/details/106119488
2.其他报错提示请核实以下问题
- 账号密码是否正确
- 是否配置了mysql连接驱动
- 驱动版本是否正确
12.审核更改 默认即可
13.安装集群服务
注:
1.若出现如下错误,请检查是否执行了jdk的软连接操作,因为其会默认去/usr/java 路径下寻找jdk环境变量,但是没用找到,因而报错
2.重装时HDFS相关文件没有删除干净,需要执行下列代码进行删除(重装CDH导致)
#namenode节点(一般是主节点):
rm -rf /dfs/nn
#datanode节点(一般是从节点)(主节点也有可能是datanode):
rm -rf /dfs/dn
3.提示yarn启动失败,删除/var/lib/hadoop-yarn/yarn-nm-recovery/yarn-nm-state目录下的CURRENT文件(重装CDH导致)
4.安装oozie 提示Failed to create Oozie database tables.报错 删除/var/lib/oozie/目录下文件即可(重装导致)(浏览器崩溃截图未能保存下来)
5.可能性:
1)数据库种oozie表已经存在,所以未能创建成功
2)schema 未被创建
14.完成安装
----------------------------------------------------------------------------
搭建时参考连接:https://www.jianshu.com/p/e479888151fc
本文内容根据实际搭建情况有所修改