一、准备工作
1.1安装JDK
此操作需要在所有机器上执行。
准备java环境,安装jdk,设置JAVA_HOME环境变量。
jdk要安装在/usr/java/里,否则Cloudera Manager找不到会报错
配置环境变量
vim /root/.bash_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 .bash_profile
1.2设置主机名 hostname
此操作需要在所有机器上执行。
主机名/etc/hostname进行配置。
1.3 Host文件配置
此操作需要在所有机器上执行。
源文件内容需要删除,否则会出现错误 具体错误在本文最后常见问题里会说明。
1.4 重启
此操作需要在所有机器上执行。
上面两个文件修改完成之后需要重启机器。
Reboot命令重启。
1.5关闭防火墙
此操作需要在所有机器上执行。
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #开机禁用防火墙
systemctl status firewalld #查看防火墙状态是否关闭
1.6关闭selinux
此操作需要在所有机器上执行。
setenforce 0
vim /etc/sysconfig/selinux
SELINUX=disabled
1.7 ssh免密码登陆
此操作需要在所有机器上执行。
第一步:修改/etc/ssh/ssh_config
添加StrictHostKeyChecking no
第二步:修改/etc/ssh/sshd_config
添加PrintLastLog no
第三步:用scp方式把ssh_config和sshd_config两个文件传到其他机器
cd /etc/ssh/
scp ssh_config [email protected]:/etc/ssh/
scp sshd_config [email protected]:/etc/ssh/
第四步:配置公钥:(hadoop用户下)
ssh-****** -t rsa然后一直回车(每台机器)
第五步:将所有机器上的公钥合并到authorized_keys(目录:/home/hadoop/.ssh)当中。
cd /home/hadoop/.ssh
cat id_rsa.pub>>authorized_keys
ssh [email protected] cat /home/hadoop/.ssh/ id_rsa.pub>>/home/hadoop/.ssh/authorized_keys
把上面的had002换成其他所有机器,都执行一遍,
执行完了之后把authorized_keys和known_hosts文件scp到所有机器。
注意:此时需要.ssh文件权限为700,authorized_keys权限为600(若authorized_keys的权限不是600,免密码登陆不成功)
1.8 NTP服务器设置
此操作需要在所有机器上执行。
此操作用于不同节点间实现时间同步。
1.8.1安装ntp
yum -y install ntp
1.8.2修改配置设置
vim /etc/ntp.conf
注释掉所有server *.*.*的指向,新添加一条可连接的ntp服务器
我这儿设置的是指向本机
在其他节点上把ntp指向master服务器地址即可
server 192.168.223.137 iburst
1.8.3重启ntp
安装完成后设置ntp开机启动并启动ntp
systemctl enable ntpd
systemctl start ntpd
查看状态
systemctl status ntpd
二、安装cloudera manager
2.1 下载
各节点下载cloudera manager 我用迅雷下载 并上传到个节点 速度比较快
下载地址:https://archive.cloudera.com/cm5/cm/5/
2.2安装MySQL
我这儿的MySQL是安装在主节点上。
2.2.1下载mysql rpm包
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
安装rpm 这个rpm是为了更新yum源地址的
rpm -ivh mysql-community-release-el7-5.noarch.rpm
2.2.2安装MySQL
使用yum在线安装
yum install -y mysql-server
2.2.3启动mysql
systemctl start mysqld
2.2.4修改密码
登录后修改root密码
mysql -uroot -p
use mysql;
update user set password=password('668899') where user='root' and host='localhost';
FLUSH PRIVILEGES #刷新立即生效
2.3需要安装 MySQL JDBC Driver
下载mysql-connector-java-5.1.40.zip上传到服务器
unzip mysql-connector-java-5.1.40.zip #解压
cd mysql-connector-java-5.1.40 #进入目录
mkdir -p /usr/share/java/ #驱动许放在此目录 cm会在此文件夹查找
cp mysql-connector-java-5.1.40-bin.jar /usr/share/java/mysql-connector-java.jar #复制并修改名称
2.4创建库和用户
安装完mysql后 需要创建CDH服务所需的数据库和用户,后边安装时需要用到。
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '668899';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '668899';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '668899';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY '668899';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '668899';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '668899';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '668899';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '668899';
挑个账号测试一下本地能否登陆 防止后期安装cdh 链接数据库时报错
如果 新建的用户本地登录不了 远程可以登录
解决办法:我用的mysql版本是5.6 安装完数据库后 需要删除匿名用户
用root登录mysql后执行
use mysql; #选择mysql库
delete from user where user=''; #删除匿名用户
FLUSH PRIVILEGES; #刷新缓存
2.5 Cloudera Manager安装(主节点)
Cloudera Manager可以说是Cloudera系列产品和组件的核心,它负责统一配置管理CDH集群,基本上本篇文章都是围绕CM的安装部署来展开的,然后再通过CM去安装CDH及其其它相关组件。
在master节点安装Cloudera Manager Server并启动 ,cloudera-manager-daemons 是运行server和agent所需要的
刚才下载好的cloudera-manager包解压到/opt/目录下
下载地址:http://archive.cloudera.com/cm5/cm/5/
tar -zxvf cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz -C /opt/
注意:在主机节点创建如下的目录,否则容易报错,7180端口起不来。
mkdir -p /var/lib/cloudera-scm-server
mkdir -p /var/lib/cloudera-scm-agent
mkdir -p /var/lib/cloudera-scm-server-db/data
2.6初始化数据(主节点)
cd /opt/cm-5.16.2/share/cmf/schema
scm_prepare_database.sh [-数据库类型] [-h主机名 [-u用户名] [-p密码] [主机地址] [创建的数据库名] [用户] [密码]
./scm_prepare_database.sh mysql -hlocalhost -uroot -p668899 --scm-host localhost scm root 668899
2.7在master和node节点安装Cloudera Manager Agent
因为Cloudera Manager Server 与Cloudera Manager Agent 在一个cm包中 所以除主节点外 其他节点都要解压安装cm包
tar -zxvf cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz -C /opt/
修改 cloudera-scm-agent/config.ini中的server_host为主节点主机名
vim /opt/cm-5.16.2/etc/cloudera-scm-agent/config.ini
改成主节点主机名.
server_host=cdh.master
各节点创建cm用户
useradd --system --home=/opt/cm-5.16.2/run/cloudera-scm-server --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
如果没有安装psmisc 需要安装一下 (否则会报:cloudera-scm-agent:行109: pstree: 未找到命令)
yum install -y psmisc
2.8 启动
主节点启动
/opt/cm-5.16.2/etc/init.d/cloudera-scm-server start
/opt/cm-5.16.2/etc/init.d/cloudera-scm-server stop #停止
所有节点启动
/opt/cm-5.16.2/etc/init.d/cloudera-scm-agent start
/opt/cm-5.16.2/etc/init.d/cloudera-scm-agent stop #停止
三、安装CDH
3.1下载CDH安装包
此操作在主节点上操作。
在 https://archive.cloudera.com/cdh5/parcels/5.16.2/ 找到文件对应的版本。
下载的包有:CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel、CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1、manifest.json
然后上传到目录/opt/cloudera/parcel-repo
上传完毕后修改目录文件权限属性
chown cloudera-scm:cloudera-scm -R /opt/cloudera/parcel-repo/
#修改权限属性
注意 一定要修改sha1名称为sha
mv CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha
#修改后parcel-repo文件夹如下
主节点执行如下操作
优化交换分区
echo "vm.swappiness = 10" >> /etc/sysctl.conf
sysctl -p
禁用透明大页面压缩
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
并将上面的两条命令写入开机自启动/etc/rc.local
CDH相关配置文件位置:
/etc/hadoop/conf
日志位置:
/opt/cm-5.16.2/log
数据库与日志相关配置文件在目录:
/opt/cm-5.16.2/etc/cloudera-scm-server
账号:admin
密码:admin
登录web界面 配置集群安装CDH
选择部署的版本
继续
填写节点地址,点击搜索
选择需要安装的clouderamanager版本 要选择与之前下载好的CDH的版本一致
percel文件下载并分发安装到集群所有节点上
继续
出现两个问题:
优化交换分区
echo "vm.swappiness = 10" >> /etc/sysctl.conf
sysctl -p
禁用透明大页面压缩
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
点击完成
选择服务
这里一般情况下默认即可,但是如果集群中某台电脑的配置严重不行的时候,建议少分配点任务
数据库设置
注意:这个要与前面的mysql中建立hive,oozie,hue相对应,如果之前没有建立的话,会报错
强烈建议将各个数据库与相应角色实例置于同一主机上
审核更改,如果有特定目录的设定或者参数的设定,可以在这里进行更正
点击继续,
此文章的操作步骤借鉴了下面链接的文章:https://blog.csdn.net/ltgsoldier1/article/details/99963272