CDH6.3.*离线安装

扶醉桌前 提交于 2019-12-11 16:19:40

安装之前准备:

安装环境:三台centos7虚拟机:分别为node1(16g内存)、node2(4g内存)、node3(4g内存)

两个极有帮助的脚本

集群同步脚本

1)在/root目录下创建bin目录,并在bin目录下创建文件xsync,文件内容如下:
[root@node1 ~]$ mkdir bin
[root@node1 ~]$ cd bin/
[root@node1 bin]$ vi xsync
在该文件中编写如下代码
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=basename $p1
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=cd -P $(dirname $p1); pwd
echo pdir=$pdir

#4 获取当前用户名称
user=whoami

#5 循环
for((host=2; host<4; host++)); do
echo ------------------- nofe$host --------------
rsync -av pdir/pdir/fname user@nodeuser@nodehost:pdirdone2xsync[root@hadoop102bin]pdir done 2)修改脚本 xsync 具有执行权限 [root@hadoop102 bin] chmod 777 xsync

集群整体操作脚本

1)在/root/bin目录下创建脚本xcall.sh

[root@hadoop102 bin]$ vim xcall.sh
2)在脚本中编写如下内容
#! /bin/bash

for i in node1 node2 node3
do
echo --------- $i ----------
ssh i"i "*"
done
3)修改脚本执行权限
[root@node1 bin]$ chmod 777 xcall.sh

虚拟机IP配置

vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改:
ONBOOT=yes
NETMASK=255.255.255.0
GATEWAY=192.168.33.2
BROADCAST=192.168.33.255
(具体可以百度哈!!!)
在这里插入图片描述

配置hostname

修改自己想要更改为的主机名
vim /etc/hostname

vim /etc/hosts
在这里插入图片描述

禁用防火墙

• systemctl stop firewalld 关闭防火墙
• systemctl disable firewalld 禁止防火墙开机自启

卸载mariadb软件

此处需要注意的是centos 7 默认安装的是mariadb,如果不卸载直接安装的话会报错,报错信息mariadb-libs is obsoleted by mysql-community-libs-5.7.20-1.el7.x86_64
rpm -qa | grep mariadb #查看安装信息
rpm -e mariadb-libs* --nodeps #根据查找到的软件包信息卸载

禁用SELinux功能

打开这个文件/etc/selinux/config(在某些系统中是这个文件/etc/sysconfig/selinux)
将SELINUX=enforcing 改为 SELINUX=permissive
保存重启后
输入setenforce 0
检查SELinux状态:
getenforce

配置SSH 登陆端口

配置node1对node1、node2、node3三台服务器免密登录。
1)生成公钥和私钥:
[root@node1 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
2)将公钥拷贝到要免密登录的目标机器上
[root@node1 .ssh]$ ssh-copy-id node1
[root@node1 .ssh]$ ssh-copy-id node2
[root@node1 .ssh]$ ssh-copy-id node3
3)重复1和2的操作,配置node2对node1、node2、node3三台服务器免密登录。

一些优化问题

安装时会提示的问题:
在这里插入图片描述
1、虚拟内存设置:
Cloudera 建议将 /proc/sys/vm/swappiness 设置为0-10。当前设置为 30。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf,以在重启后保存该设置。您可以继续进行安装,但 Cloudera Manager 可能会报告您的主机由于交换而运行状况不良。

解决:
临时解决
通过echo 10 > /proc/sys/vm/swappiness即可解决。
永久解决
sysctl -w vm.swappiness=10
echo vm.swappiness = 10 >> /etc/sysctl.conf
2、透明大页问题:
已启用透明大页面压缩,可能会导致重大性能问题。请运行“echo never > /sys/kernel/mm/transparent_hugepage/defrag”和“echo never > /sys/kernel/mm/transparent_hugepage/enabled”以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置。
处理:
大内存页禁用
echo never>/sys/kernel/mm/transparent_hugepage/defrag
echo never>/sys/kernel/mm/transparent_hugepage/enabled
然后将命令写到 /etc/rc.local,保证每次重启时能执行
在这里插入图片描述

安装软件

启动NTP服务

1、在所有机器上安装ntp服务
yum install ntp

server服务器配置

修改系统时间
timedatectl set-ntp no # 关闭ntp
timedatectl set-time “2019-11-28 14:31:00” # 设置时间
timedatectl set-timezone Asia/Shanghai # 设置时区
date # 查看配置是否正确

2、配置时钟同步server
vim /etc/ntp.conf
#允许设置的可信任地址段对NTPD各服务的访问,但不允许此地址段内客户端修改NTPD服务器时间(nomodify)
restrict 192.168.33.0 mask 255.255.255.0 nomodify notrap

3、注释掉网络服务器
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

4、设置本地时间服务器
service 192.168.33.101

5、外部时间服务器不可用时,以本地时间作为时间服务
server 127.127.1.0
fudge 127.127.1.0 stratum 5
在这里插入图片描述

Client服务配置

vi /etc/ntp.conf

#注释掉网络服务器
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 192.168.33.101 #<–该IP是NTP主机端的IP
restrict 192.168.33.101 nomodify notrap noquery # 允许上层时间服务器主动修改本机时间

在所有机器上执行:
service ntpd restart #重启ntp服务
service ntpd restart # 重启时钟同步服务
systemctl disable chronyd.service # 禁用chronyd服务
systemctl enable ntpd.service # 开机启动
systemctl status ntpd.service #查看ntp服务的状态是否正确
ntpdate -u 192.168.33.101 # 强制同步时间
(强烈建议上一步只在客户端执行,我懒!一起了!!!)
hwclock –systohc #将硬件时钟与系统时钟同步
ntpstat # 查看同步状态
在这里插入图片描述
网上有人做了个定时任务同步时间(我懒不想弄!!!大家参照自己做一下):
客户端配置定时任务
[root@node1]#vim /usr/bin/ntpsync.sh
#!/bin/bash
/usr/sbin/ntpdate 192.168.113.159
#同步系统时间到硬件时间
/sbin/hwclock –w
[root@node1]#crontab -e

#sync time with ntpserver at 12:00
0 12 * * * /usr/bin/ntpsync.sh

配置本地包存储库

我采用的是建立永久内部储存库的方式其他方式见链接https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cm_ig_create_local_package_repo.html#internal_package_repo
也可以挑选需要的yum源进行安装(如果挑选yum源安装 记得导入GPG key(如果没有这步操作,很可能cloudera服务安装失败)manager节点
rpm --import https://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPM-GPG-KEY-cloudera

配置httpd

1、安装ApacheHTTPServer:
sudo yum install httpd
2、启动ApacheHTTPServer:
sudo systemctl start httpd
并将yum源包导入到/var/www/html文件夹下

cloudera-repos文件夹的百度网盘链接:
链接:https://pan.baidu.com/s/1-6mSYkm6TZTDde4KjBB8hQ
提取码:5y65

成功了是可以这样访问的
在这里插入图片描述
正常离线网络下:应删除CenteOS 自带的源,因为你无法访问外网,不删除会报错,并配置本地yum源(网上有教程)

rm -rf /etc/yum.repos.d/Centos*
完全离线环境下记得配本地yum源哦!!!

配置cm与cdh的yum源
vi /etc/yum.repos.d/cloudera-repo.repo
添加如下内容
[cloudera-repo]
name=cloudera-repo
baseurl=http://192.168.33.101/cloudera-repos/cm6/6.3.0/redhat7/yum/
enabled=1
gpgcheck=0

vi /etc/yum.repos.d/cloudera-repo-cdh.repo

[cloudera-repo-cdh]
name=cloudera-repo-cdh
baseurl=http://192.168.33.101/cloudera-repos/cdh6/6.3.0/redhat7/yum/
enabled=1
gpgcheck=0

• yum clean all

在所有节点安装jdk

sudo yum install oracle-j2sdk1.8
添加环境变量
vim /etc/profile
添加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera/
export PATH=JAVAHOME/bin:JAVA_HOME/bin:PATH
export CLASSPATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar

source /etc/profile

将/etc/profile文件追加到~/.bashrc后面(一定要弄,不然会报错)
[root@node1 ~]# cat /etc/profile >> ~/.bashrc
[root@node2 ~]# cat /etc/profile >> ~/.bashrc
[root@node3 ~]# cat /etc/profile >> ~/.bashrc
使用下面命令测试
xcall jps

在ClouderaManagerServer主机上,键入以下命令来安装ClouderaManager包。

sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

安装MySQL(主节点安装即可)

安装步骤:
(1)此处需要注意的是centos 7 默认安装的是mariadb,如果不卸载直接安装的话会报错,报错信息mariadb-libs is obsoleted by mysql-community-libs-5.7.20-1.el7.x86_64
#查看安装信息
rpm -qa | grep mariadb
在这里插入图片描述
#根据查找到的软件包信息卸载
rpm -e mariadb-libs* --nodeps
在这里插入图片描述
MySQL不再包含在RHEL中。您必须从MySQL站点下载存储库并直接安装它。您可以使用以下命令安装MySQL。有关更多信息,请访问MySQL网站.
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

sudo yum update

sudo yum install mysql-server

sudo systemctl start mysqld

配置和启动MySQL服务器

如果MySQL服务器正在运行,则停止它。

sudo systemctl stop mysqld
移动旧InnoDB日志文件/var/lib/mysql/ib_logfile0和/var/lib/mysql/ib_logfile1离开/var/lib/mysql/到备用位置

vi /etc/my.cnf
使用官网推荐配置

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction-isolation = READ-COMMITTED
#Disabling symbolic-links is recommended to prevent assorted security risks;
#to do so, uncomment this line:
symbolic-links = 0
key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1

max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M

#log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log

#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1

binlog_format = mixed

read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M

#InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_ALL_TABLES

确保MySQL服务器在启动时启动:
sudo systemctl enable mysqld
启动MySQL服务器:
sudo systemctl start mysqld

安装MySQL JDBC驱动程序
Cloudera建议只使用5.1版的JDBC驱动程序。
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar zxvf mysql-connector-java-5.1.46.tar.gz
sudo mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.46
sudo cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

一定要执行下面这个!!否则会报错!真的,我就忽略了!
运行/usr/bin/mysql_security_install若要设置MySQL根密码和其他与安全相关的设置,请执行以下操作。在新安装中,根部密码为空。按Enter提示输入根密码时,请输入。对于其余的提示,输入下面所列的响应bold:
sudo /usr/bin/mysql_secure_installation

[…]
Enter current password for root (enter for none):
OK, successfully used password, moving on…
[…]
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
[…]
Disallow root login remotely? [Y/n] N
[…]
Remove test database and access to it [Y/n] Y
[…]
Reload privilege tables now? [Y/n] Y
All done!

设置远程主机登录
mysql> GRANT ALL PRIVILEGES ON . TO ‘your username’@’%’ IDENTIFIED BY ‘your password’;

新建cloudera manager 需要的用户和库

为 Cloudera Software 创建数据库

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'root';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'root';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'root';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'root';
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'root';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'root';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'root';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'root';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'root';

scm_pre准备_database.sh语法

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm root
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql amon amon root
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql rman rman root
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql hue hue root
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql metastore metastore root
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql sentry sentry root
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql nav nav root
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql navms navms root
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql oozie oozie root

如果存在,请删除嵌入的PostgreSQL属性文件:
sudo rm /etc/cloudera-scm-server/db.mgmt.properties

设置ClouderaManager数据库后,启动ClouderaManagerServer,并登录到ClouderaManager管理控制台:

1、 启动ClouderaManagerServer:
systemctl start cloudera-scm-server
2、 等待ClouderaManagerServer启动几分钟。要观察启动过程,请在ClouderaManagerServer主机上运行以下命令:
sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
当您看到这个日志条目时,Cloudera Manager管理控制台准备就绪:
INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
3、 在web浏览器中,转到http:/<server_host>:7180,在哪里<server_host>ClouderaManagerServer运行的主机的FQDN或IP地址。
4、登录到Cloudera Manager管理控制台。默认凭据是:
Username: admin
Password: admin

现在就可以可视化安装CDH了,稍微需要注意的地方我贴出来了哦。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!