以下亲测过,放心参考~
JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
CDH5.15.1Parcel包下载地址:http://archive-primary.cloudera.com/cdh5/parcels/5.15.1/
CM5.15.1下载地址:http://archive-primary.cloudera.com/cm5/cm/5/
mysql驱动下载地址:http://central.maven.org/maven2/mysql/mysql-connector-java/
环境系统:CentOS Linux release 7.3.1611 (Core)
JAVA: java version "1.8.0_161"
三个节点:172.16.13.21 cdh01
172.16.13.22 cdh02
172.16.13.23 cdh03
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens160
其他保持不变,主要配置以下配置项,:
ONBOOT:IP开机自动启动
BOOTPROTO:IP类型为静态IP
IPADDR:IP地址
NETMASK:子网掩码
GATEWAY:默认网关
DNS1,DNS2:DNS服务器(联网用的)
具体根据自己局域网的情况进行配置,这里不多 讲,不需要配置的童鞋跳过,有问题的童鞋自己去网上搜
重启网卡驱动
sudo service network restart
三台服务器分别修改
sudo hostnamectl set-hostname cdh01 # 使用这个命令会立即生效且重启也生效
hostname #查看主机名
sudo vi /etc/hosts
sudo systemctl status firewalld.service #查看防火墙状态
sudo systemctl stop firewalld.service #停止防火墙
sudo systemctl disable firewalld.service #禁止防火墙开机启动
sudo vim /etc/sysconfig/selinux
#修改配置项:
SELINUX=disabled
#临时关闭透明大页面(立即生效)必须为root用户执行
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
# 永久关闭透明大页面(重启生效)
sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX后添加一个参数transparent_hugepage=never
修改前
修改后
然后执行该命令:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg ---->>执行该命令
最后重启sudo init 6
# 查看是否已经关闭
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
重启后我发现 enabled 是never,但defrag却依然是always,不过经过查询meminfo,大内存页面是被禁用了.
#临时修改
sysctl -w vm.swappiness=1
#永久修改
echo "vm.swappiness=1" >> /etc/sysctl.conf
#查看
sudo sysctl -p
sudo reboot
在用户目录下执行
ssh-keygen -t rsa (一路回车)
在其他节点也同样执行此操作,生成密钥之后
切换到.ssh/目录下
cd .ssh/
然后把密钥文件重命名,并且复制到cdh01(主节点)的.ssh/目录下,其他节点类似
mv id_rsa.pub 2id_rsa.pub
scp 2id_rsa.pub gwnet@cdh01:/home/gwnet/.ssh/
在主节点上的.ssh/目录下查看,并且把3个节点上的密钥文件写到authorized_keys,再复制到其他2个节点上
查看authorized_keys,并给authorized_keys文件授权
cat authorized_keys
chmod 600 authorized_keys
复制到另外2个节点上
scp authorized_keys gwnet@cdh02:/home/gwnet/.ssh/
scp authorized_keys gwnet@cdh03:/home/gwnet/.ssh/
在另外2个节点上同样需要授权
chmod 600 authorized_keys
测试连接(此时切换到其他节点就不需要再输入密码了)
ssh cdh02
ssh cdh03
先把JDK1.8的rpm包上传到每个服务器
创建安装jdk的目录,并解压到该目录
sudo mkdir /usr/java
sudo tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/java/
配置环境变量
sudo vim /etc/profile
配置如下:
export JAVA_HOME=/usr/java/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH
使配置文件生效
source /etc/profile
验证jdk安装是否成功
java -version
centos有点在安装系统时安装了ntp,那就不用再安装了
ntp4.2.6安装包下载地址:https://download.csdn.net/download/qq_24817093/10789227
上传ntp软件包到服务器
进入到该软件包目录
sudo rpm -ivh *.rpm
修改ntp配置文件(在所有服务器上执行),所有服务器屏蔽默认server
sudo vim /etc/ntp.conf
主节点配置(主ntp服务器)
从节点配置(从ntp服务器)
然后重启ntp服务器
sudo service ntpd restart
mysql5.7.22安装包下载链接:https://download.csdn.net/download/qq_24817093/10789171
上传mysql的rpm安装包
#查看系统自带的mysql安装包
sudo rpm -qa | grep -i mar
#卸载系统自带的安装包
sudo rpm -ev mariadb-libs-5.5.52-1.el7.x86_64 --nodeps
依次安装mysql安装包
sudo rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
启动mysql服务
sudo service mysqld start
查看mysql的初始随机密码
sudo cat /var/log/mysqld.log | more
#修改初始密码及授权远程访问:
mysql -uroot -p
然后输入刚才查看到的随机密码
#修改mysql密码
set password='P@ssw0rd';
#授权远程登陆
grant all privileges on *.* to 'root'@'%' identified by 'P@ssw0rd';
#更新权限
flush privileges;
创建数据库
#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#Hue
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#Oozie Server
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
安装Cloudera Manager Server 和Agent:
上传cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz安装包
将安装包解压到/opt/目录
sudo tar -zxvf cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz -C /opt/
初始化数据库
上传mysql驱动包,并复制到/opt/cm-5.15.1/share/cmf/lib下:
执行命令:sudo cp mysql-connector-java-5.1.46-bin.jar /opt/cm-5.15.1/share/cmf/lib/
复制mysql驱动到各个文件夹, 否则后面CM安装时出现Failed to Create Hive Metastore Database Table的错误
sudo cp /opt/cm-5.15.1/share/cmf/lib/mysql-connector-java-*-bin.jar /opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/hive/lib/
sudo cp /opt/cm-5.15.1/share/cmf/lib/mysql-connector-java-*-bin.jar /opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/oozie/lib/
sudo cp /opt/cm-5.15.1/share/cmf/lib/mysql-connector-java-*-bin.jar /var/lib/oozie/
初始化数据库命令:(scm密码要设置一定的复杂的,不然会报错)
sudo /opt/cm-5.15.1/share/cmf/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -pP@ssw0rd --scm-host localhost scm scm P@ssw0rd
修改agent的配置文件
将/opt/cm-5.15.1/etc/cloudera-scm-agent/config.ini中的server_host修改为主节点的主机名。
sudo vim /opt/cm-5.15.1/etc/cloudera-scm-agent/config.ini
将/opt/ cm-5.15.1复制到其他节点上/opt目录
在其他节点上对/opt目录下授权(不然复制过去权限不够报错,gwnet为虚拟机的普通用户)
sudo chown -R gwnet:gwnet /opt
sudo scp -r /opt/cm-5.15.1/ gwnet@cdh02:/opt/
sudo scp -r /opt/cm-5.15.1/ gwnet@cdh03:/opt/
创建用户 cloudera-scm(所有节点)
执行:sudo chown -R cloudera-scm:cloudera-scm *
sudo useradd --system --home=/opt/cm-5.15.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
将cdh的parcel包移动到/opt/cloudera/parcel-repo/
#所有节点都要启动agent
sudo /opt/cm-5.15.1/etc/init.d/cloudera-scm-agent start
#只有主节点需要启动server
sudo /opt/cm-5.15.1/etc/init.d/cloudera-scm-server start
出现上面pstree: command not found,只需要安装个psmisc包就可以了
#查看server和agent状态
sudo /opt/cm-5.15.1/etc/init.d/cloudera-scm-agent status
sudo /opt/cm-5.15.1/etc/init.d/cloudera-scm-server status
由于后面在浏览器界面安装CM经常报依赖错误,所以现在首先安装一些依赖包,防止后面安装过程中报错
安装如需下图所示的软件包,否则在后面CM界面安装时会出现以下错误:
hue Unexpected error. Unable to verify database connection
需要安装的rpm包:
libxslt-1.1.28-5.el7.x86_64.rpm
python-lxml-3.2.1-4.el7.x86_64.rpm
sudo netstat -lnp |grep 80
输入默认用户名admin密码admin
继续下一步
建议选择免费
继续下一步
输入安装cdh的各个节点IP或者主机名
选择你上传的Parcel包,这里选择CDH-5.15.1
等待分配解压激活完成
继续下一步
继续下一步(遇到警告的根据提示解决)
我这里选择含Hbase的内核,根据自己实际情况选择
我这里默认,根据实际情况选择
输入之前创建的数据库名和用户名密码
默认
等待步骤安装完成
继续下一步
到这里集群安装基本完成
由于刚安装完成可能有警告和错误,根据提示要求解决,解决完成大概就如下图所示
1.
centos7的防火墙没有关,关闭防火墙,然后禁止开机启动即可
2.
关闭透明大页面即可,根据以上提示关闭
3.
【问题分析】
安装Hive或oozie的时,因为我们使用了mysql作为hive/oozie的元数据存储,hive/oozie默认没有带mysql的驱动,需要添加mysql驱动文件
【解决方法】
sudo cp /opt/cm-5.15.1/share/cmf/lib/mysql-connector-java-*-bin.jar /opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/hive/lib/
sudo cp /opt/cm-5.15.1/share/cmf/lib/mysql-connector-java-*-bin.jar /opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/oozie/lib/
sudo cp /opt/cm-5.15.1/share/cmf/lib/mysql-connector-java-*-bin.jar /var/lib/oozie/
4.
需要提前安装环境 httpd, mod_ssl即可
5.
常规警告: 必须在 HBase 服务中配置 Thrift Server 角色以使用 Hue HBase Browser 应用程序。
解决办法:
给HBase添加Thrift Server角色, 为了方便, 将Thrift Server添加到Hue同一主机
重启集群之后, 警告又变成了:
在 HBase Thrift Server 属性中选择服务器以使用 Hue HBase Browser 应用程序
选择下图所示的配置,然后重启即可
最后说下,大家安装过程中如果遇到什么问题,可以在文章下方评论中提出,我能解决的尽量为大家解决!!!