centos统一使用centos7.6 64位版本
jdk-8u141
node01 192.168.83.100 zk cdh
node02 192.168.83.120 zk mysql cdh
node03 192.168.83.130 zk cdh
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl stop firewalld
systemctl disable firewalld
vi /etc/selinux/config
SELINUX=disabled
第一台机器执行以下命令修改主机名
vi /etc/hostname
node01.kaikeba.com
第二台机器执行以下命令修改主机名
vim /etc/hostname
node02.kaikeba.com
第三台机器执行以下命令修改主机名
vim /etc/hostname
node03.kaikeba.com
vi /etc/hosts
192.168.52.100 node01.kaikeba.com node01
192.168.52.110 node02.kaikeba.com node02
192.168.52.120 node03.kaikeba.com node03
yum -y install ntpdate
crontab -e
*/1 * * * * /usr/sbin/ntpdate time1.aliyun.com
mkdir -p /kkb/soft # 软件压缩包存放目录
mkdir -p /kkb/install # 软件解压后存放目录
上传压缩包到第一台服务器的/kkb/soft下面,然后进行解压,配置环境变量即可,三台机器都依次安装即可
cd /kkb/soft/
tar -zxf jdk-8u141-linux-x64.tar.gz -C /kkb/install/
配置相关环境变量
vim /etc/profile
export JAVA_HOME=/kkb/install/jdk1.8.0_141
export PATH=:$JAVA_HOME/bin:$PATH
步骤1.
ssh-keygen -t rsa
步骤2.
拷贝公钥到第一台机器
ssh-copy-id node01
步骤3.
将第一台机器的公钥拷贝到其他机器上,在第一台机器上面指定以下命令
scp /root/.ssh/authorized_keys node02:/root/.ssh/
scp /root/.ssh/authorized_keys node03:/root/.ssh/
在CentOS7中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB
yum install -y wget
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
yum -y install mysql57-community-release-el7-10.noarch.rpm
下面就是使用yum安装MySQL了,这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。
yum -y install mysql-community-server
启动mysql服务
systemctl start mysqld.service
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log
mysql -u root -p
提示修改初始密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '!Qaz123456';
添加scm用户对scm库的访问权限
mysql> grant all on scm.* to scm@'%' identified by '!Qaz123456';
切换数据库
mysql>use mysql
mysql> select user,host from user;
刷新访问权限的设置,这一步非常重要,如果没有操作,scm远程访问mysql数据库就失败.
mysql> flush privileges;
添加root用户远程访问数据库
mysql>grant all on *.* to root@'%' identified by '!Qaz123456';
mysql> flush privileges;
mysql> select user,host from user;
mysql> delete from user where user='root' and host='localhost';
mysql> select user,host from user;
mysql> flush privileges;
创建scm数据库
mysql> create database scm;
mysql> show databases;
mysql> update mysql.user set Grant_priv='Y',Super_priv='Y' where user = 'root' and host = '%';
mysql> flush privileges;
mysql> quit
从起mysql服务
systemctl restart mysqld.service
由于是离线部署,因此需要预先下载好需要的文件。
需要准备的文件有:
Cloudera Manager 5
文件名: cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz
下载地址: https://archive.cloudera.com/cm5/cm/5/
CDH安装包(Parecls包)
版本号必须与Cloudera Manager相对应
下载地址: https://archive.cloudera.com/cdh5/parcels/5.14.0/
需要下载下面3个文件:
CDH-5.14.0-1.cdh5.14.0.p0.23-el7.parcel
CDH-5.14.0-1.cdh5.14.0.p0.23-el7.parcel.sha1
manifest.json
MySQL jdbc驱动
文件名: mysql-connector-java-.tar.gz
下载地址: https://dev.mysql.com/downloads/connector/j/
解压出: mysql-connector-java-bin.jar
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb
所有节点上传cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz文件并解压
tar -zxvf cloudera-manager-centos7-cm5.14.2_x86_64.tar.gz -C /opt
所有节点进入到/opt,在/opt下我们创建一个CDH目录
mkdir CDH
所有节点手动创建文件夹
mkdir -p /opt/cm-5.14.2/run/cloudera-scm-agent
所有节点创建cloudera-scm用户
useradd --system --home=/opt/cm-5.14.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
cp mysql-connector-java.jar /opt/cm-5.14.2/share/cmf/lib/
# 我们在远程拷贝一下这个mysql驱动包到第二个节点上
scp mysql-connector-java.jar root@node02:~
# 在第二节点也执行此命令
cp mysql-connector-java.jar /opt/cm-5.14.2/share/cmf/lib/
# 在节点1执行初始化操作
/opt/cm-5.14.2/share/cmf/schema/scm_prepare_database.sh mysql -h node02 -uroot -p'!Qaz123456' --scm-host node01 scm scm '!Qaz123456'
{数据库类型} -h {数据库所在节点ip/hostname} -u{数据库用户名} -p{数据库密码} –scm-host ${Cloudera Manager Server节点ip/hostname} scm(数据库) scm(用户名) scm(密码)
将其中的server_host参数修改为Cloudera Manager Server节点的主机名
三个机器都要将其默认的server_host=localhost 修改成node01
vi /opt/cm-5.14.2/etc/cloudera-scm-agent/config.ini
server_host=node01
CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel
CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha1
manifest.json
mv CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha1 CDH-5.14.2-1.cdh5.14.2.p0.3-el7.parcel.sha
所有节点更改cm相关文件夹的用户及用户组
chown -R cloudera-scm:cloudera-scm /opt/cloudera
chown -R cloudera-scm:cloudera-scm /opt/cm-5.14.2
node01 执行,服务器开启,客户端开启
/opt/cm-5.14.2/etc/init.d/cloudera-scm-server start
/opt/cm-5.14.2/etc/init.d/cloudera-scm-agent start
/opt/cm-5.14.2/etc/init.d/cloudera-scm-agent start
在浏览器窗口输入,安装服务端主机的ip地址+7180端口号
192.168.83.100:7180
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'vm.swappiness=10'>> /etc/sysctl.conf
sysctl vm.swappiness=10
如下图,然后点击重新运行,不出以为,就不会在出现警告了,点击完成,进入hadoop生态圈服务组件的安装
su hdfs
cd # 切换到家目录
hadoop dfs -ls /
vim words # 写入 hello woeld
在hdfs中创建一个目录
hdfs dfs -mkdir /test
把test文件上传至hdfs中
hefs dfs -put words /test/words
启动wordcount测试jar包
hadoop jar /opt/cloudera/parcels/CDH-5.14.2-1.cdh5.14.2.p0.3/jars/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /test/words /test/output
cd /opt/cloudera/parcel-repo/ # 进入
mv manifest.json bak_manifest.json # 备份manifest.json
# 如果不进行备份,后面将kafka的文件传入parcel-repo会覆盖之前cloudera-manager的manifest
mv KAFKA-3.1.0-1.3.1.0.p0.35-el7.parcel* /opt/cloudera/parcel-repo/ # 把kafa安装文件移到到parcel-repo目录下
mv manifest.json /opt/cloudera/parcel-repo/
# 我们把其中的.sh1后缀的文件名称,给改变为sh结尾
mv KAFKA-3.1.0-1.3.1.0.p0.35-el7.parcel.sha1 KAFKA-3.1.0-1.3.1.0.p0.35-el7.parcel.sha
如下图,添加服务,最终状态为已完成,启动过程中会出现错误不用管,这时因为CDH给默认将kafka的内存设置为50M,太小了,根本没法启动成功,后续需要我们手动调整,后再次启动Kafka
如下图,点击实例,点击Kafka Broker(我们先配置node01节点的内存大小,node02和node03内存配置方式相同,需要按照此方式进行修改)