目录
1 系统环境 - 1 -
2 文件下载 - 1 -
2.1 Centos7 - 1 -
2.2 Cloudera Manager 6.0.0 - 1 -
2.3 CDH6.0.0 - 1 -
3 环境准备(一) - 1 -
3.1 更改hosts - 1 -
3.2 关闭防火墙 - 2 -
3.3 修改Linux swappiness参数 - 2 -
3.4 设置透明大页面 - 2 -
3.5 安装jdk - 3 -
3.6 安装httpd - 3 -
3.7 所有节点配置NTP服务,保持时间同步 - 3 -
3.8 禁用Selinux - 3 -
4 环境准备(二) - 4 -
4.1 更改hostname - 4 -
4.2 设置静态IP - 4 -
4.3 时钟同步 - 5 -
4.4 打通SSH,设置ssh无密码登陆(所有节点) - 6 -
4.5 CentOS7本地源搭建(主节点) - 7 -
4.5.1 原理 - 7 -
4.5.2 准备安装工具 - 7 -
4.5.3 配置httpd - 7 -
4.5.4 配置本地源文件 - 7 -
4.6 安装MySQL - 8 -
4.6.1 下载MySQL 5.7 - 8 -
4.6.2 安装 - 8 -
4.6.3 启动/关闭/重启MySQL服务 - 8 -
4.6.4 查看3306端口是否成功开启,即mysql是否启动: - 8 -
4.6.5 查看初始密码 - 8 -
4.6.6 初始化Mysql - 9 -
4.6.7 修改mysql服务器端口和大小写敏感 - 9 -
4.6.8 登录MySQL - 9 -
4.6.9 安装MySQL JDBC Driver - 9 -
4.6.10 mysql常用命令 - 9 -
4.7 安装Cloudera Manager(主节点) - 10 -
4.7.1 安装cloudera manager - 10 -
4.7.2 为cloudera软件创建数据库 - 10 -
4.7.3 初始化数据库 - 11 -
4.7.4 启动cm服务 - 12 -
4.7.5 检查端口是否监听 - 12 -
5 文档说明 - 12 -
一、系统环境
操作系统:Centos7
CDH:6.0.0
Cloudera
Manager:6.0.0
二、文件下载
1、Centos7
CentOS-7-x86_64-DVD-1708.iso
地址:http://vault.centos.org/7.4.1708/isos/x86_64/
2、Cloudera Manager 6.0.0
cloudera-manager-agent-6.0.0-530873.el7.x86_64.rpm
cloudera-manager-daemons-6.0.0-530873.el7.x86_64.rpm
cloudera-manager-server-6.0.0-530873.el7.x86_64.rpm
cloudera-manager-server-db-2-6.0.0-530873.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
allkeys.asc
地址:
https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/RPMS/x86_64/
3、CDH6.0.0
本文基于CentOS7,下载的parcels包及manifest文件对应的版本为el7:
CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel
CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel.sha256
manifest.json
地址:https://archive.cloudera.com/cdh6/6.0.0/parcels/
三、环境准备(一)
1、更改hosts
#vim/etc/hosts
192.168.100.40 master0
192.168.100.41 master1
192.168.100.42 master2
192.168.100.43 client0
192.168.100.44 client1
192.168.100.45 client2
2、关闭防火墙
关闭开机自动启动:
#systemctldisable firewalld
停止防火墙服务:
#systemctlstop firewalld
3、修改Linuxs wappiness参数
不修改此参数可以继续进行安装,但可能会遇到问题,Cloudera
Manager 报告主机由于交换运行状况不佳。为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0(cloudera建议10以下)。
临时解决:
#echo0 > /proc/sys/vm/swappiness
永久解决:
#sysctl-w vm.swappiness=0
#echovm.swappiness = 0 >> /etc/sysctl.conf
4、设置透明大页面
执行:
#echonever > /sys/kernel/mm/transparent_hugepage/defrag
#echonever > /sys/kernel/mm/transparent_hugepage/enabled
将如下脚本添加到/etc/rc.d/rc.local文件中:
#vim/etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled;
then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag;
then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi
给与可执行权限:
#chmod+x /etc/rc.d/rc.local
5、安装jdk
#yum-y list java*
#yum-y install java-1.8.0-openjdk*
查看java版本:#java -version
安装位置:JAVA_HOME=/usr/lib/jvm/java-openjdk
6、安装httpd
#yuminstall httpd
启动web服务器,并将之设置为自动启动:
#systemctlstart httpd.service
#systemctlenable httpd.service
7、所有节点配置NTP服务,保持时间同步
安装相关组件:
#yuminstall -y ntp
启动服务:
#systemctlstart ntpd
查看状态:
#systemctlstatus ntpd
配置开机启动:
#systemctlenable ntpd
设置为与clinet0机器同步:
#vim /etc/ntp.conf
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
serverclient0
8、禁用Selinux
SELinux全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等。
(1)查看SELinux状态,两种方法:
1)#/usr/sbin/sestatus -v
如果SELinux status参数为enabled为开启状态
2)#getenforce
为enabled为开启状态
(2)关闭SELinux:
1)临时关闭(不用重启机器):
设置SELinux 成为permissive模式
#setenforce0
设置SELinux 成为enforcing模式
#setenforce1
2)修改配置文件需要重启机器:
修改/etc/selinux/config文件
#vim/etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
三、环境准备(二)
执行完上面这个步骤直接执行关机,将机器进行克隆复制,就存在多台相同的机器,然后对这些机器执行接下来的操作,这样操作的目的是集群很多的情况下可以节省很多时间,把重复的事在最前面先做完。
1、更改hostname
更改hostname为XXXname
#hostnamectlset-hostname XXXname
查看是否成功
#hostname
2、设置静态IP
进入/etc/sysconfig/network-scripts目录,找到该网卡的配置文件ifcfg-ensXXX,修改文件:
#cd/etc/sysconfig/network-scripts/
#ll
#vimifcfg-ens192
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" #使用静态IP地址,默认为dhcp
IPADDR="192.168.XXX.XXX" #设置的静态IP地址
NETMASK="255.255.255.0" #子网掩码
GATEWAY="192.168.XXX.1" #网关地址
DNS1="192.168.XXX.1" # DNS服务器
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="95b614cd-79b0-4755-b08d-99f1cca7271b"
DEVICE="ens33"
ONBOOT="yes" #是否开机启用
按照hosts里面设置的IP,对每一台机器上都设置不同的静态IP
修改完成后,重启网络服务:
#service
network restart或者#systemctl restart network
通过命令查看是否设置成功:
#ifconfig
3、时钟同步
clinet0节点作为ntp服务器与外界对时中心同步时间,配置时钟与自己同步,所有其他节点以clinet0节点为基础同步时间,因为所有机器是克隆的,所以现在只需配置一下client0主机。
在clinet0上执行:
#vim /etc/ntp.conf
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
所有机器都重启ntpd:
#systemctlrestart ntpd
查看当前同步的时间服务器状态:
#ntpq-p
下面为上图时间服务器状态各参数含义:
refid:参考的上一层NTP主机的地址
st:即stratum阶层,值越小表示ntpd serve精准度越高
when:几秒前曾做过时间同步更新的操作
poll:每隔多少毫秒与ntpd serve同步一次
reach:已经向上层NTP服务器要求更新的次数
delay:网络传输过程钟延迟的时间
offset:时间补偿的结果
jitter:Linux系统时间与BIOS硬件时间的差异时间
4、打通SSH,设置SSH无密码登录(所有节点)
#ssh-keygen-t rsa
一路回车,生成无密码的密钥对
将公钥添加到认证文件中:
#cat~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
查看结果:
#cat~/.ssh/authorized_keys
设置authorized_keys的访问权限:
#chmod600 ~/.ssh/authorized_keys
将所有节点上面的密码全都加在client0的authorized_keys上,下面两步骤在clinet0上执行:
#sshroot@hostXXX cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp文件到所有datenode节点:
#scp
~/.ssh/authorized_keys root@hostXXX:~/.ssh/authorized_keys
可以在各台机器进行登录测试
#sshhostXXX
5、CentOS7本地源搭建(主节点)
原理
利用httpd建立一个httpd服务器用于存放本地源的rpm包
利用createrepo建立本地rpm包的描述信息
并在/etc/yum.repos.d/中加入本地源的描述repo使得yum能够找到本地源
最后再修改优先级使得yum优先从本地源安装。
准备安装工具
#yuminstall -y httpd
#yuminstall -y createrepo
#yuminstall -y yum-plugin-priorities
配置httpd
查看httpd是否开启:
#systemctlstatus httpd.service
如果没有开启,则开启httpd服务:
#systemctlstart httpd.service
并设置为自启动:
#systemctlenable httpd.service
如果开启的,则直接进行下一步
这个时候httpd就已经能够正常工作了,本机ip是192.168.100.40,那么访问http:// 192.168. 100.40可以看到。
配置本地源文件
httpd服务器的位置默认在/var/www/html,在其下建立一个文件夹tools放入cdh(包含cdh三个文件包),然后执行createrepo ./ 对tools文件夹建立描述信息
#cd/var/www/html
#mkdirtools
#cdtools
#cp-r cdh ./
创建描述信息
#createrepo./
访问http:// 192.168.100.40/tools可以看到目录
创建yum repo文件
yum的repo路径默认在/etc/yum.repos.d/中,用vim创建repo文件,yum会自动读取这个路径下的所有repo作为安装包的安装源
#vim/etc/yum.repos.d/local.repo
local.repo文件如下:
[tools] //源名称 随意取
name=tools //源描述 随意取
baseurl=http:// 192.168.100.40/tools/ //源地址 我们建立的http服务就可以用http地址
enabled=1 //源是否可用
gpgcheck=0 //时候检查gpg,因为没有认证所以写不检查
priority=1 //优先级,yum-plugin-priorities会用到,优先级越小越高
刷新yum缓存
清除yum信息
#yumclean all
创建cache
#yummakecache
6、安装MySQL
下载mysql5.7
方法1先下载rpm包,然后放在自己想放的路径里;
方法2:
#wgethttp://dev.mysql.com/mysql57-community-release-el7-8.noarch.rpm
安装
到rpm包文件路径下执行:
#yuminstall mysql57-community-release-el7-8.noarch.rpm
#yuminstall mysql-server
关闭/重启MySQL服务
#servicemysqld start/stop/restart
查看端口3306端口是否成功开启,即mysql是否启动:
#netstat-ln | grep 3306
查看初始密码
为了加强安全性,MySQL 5.7为root用户随机生成了一个密码,如果用的是rpm包安装,则默认在/var/log/mysqld.log中保存。通过下面命令获得初始密码,如图在root@localhost: 后的即为初始密码。
#cat/var/log/mysqld.log | grep password
初始化密码
可以重设密码,其余的按提示回车和y就可以:
#/usr/bin/mysql_secure_installation
修改mysql服务器端口和大小写敏感
#vi/etc/my.cnf
port=13306
lower_case_table_names=1
安装MySQL JDBC Driver
提前下载好mysql-connector-java.jar:
#mkdir-p /usr/share/java/
#cpmysql-connector-java.jar /usr/share/java/mysql-connector-java.jar
登录mysql
#mysql-uroot -p'passwd'
mysql常用命令
(1)修改用户密码(MySQL 5.7 对用户密码有要求,设置的密码必须达到规定长度,且必须含有数字,小写或大写字母,特殊字符):
mysql>alter user 'root'@'localhost' identified by 'password';
(2)创建数据库:
mysql>createdatabase name DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
(3)创建用户并授权:
mysql>CREATEUSER 'username'@'%' IDENTIFIED BY 'passwd';
(4)创建一个可以从任何地方连接服务器的一个完全的超级用户格式:
grant
select on 数据库名.* to 用户名@登录主机 identified by “密码”
mysql>GRANTALL PRIVILEGES ON databasename.* TO 'username'@'%' IDENTIFIED BY ' aostarit2015';
(5)创建数据库、用户后刷新:
mysql>flushprivileges;
(6)检查用户是否创建成功:
mysql>selectuser, host from mysql.user;
(7)查看所有数据库:
mysql>show
databases;
(8)删除数据库:
mysql>dropdatabase DB;
(9)使用数据库:
mysql>use
database;
(10)查看表:
mysql>show
tables;
7、安装 Cloudera Manager(主节点)
安装cloudera manager
在安装包放置位置执行:
#yuminstall cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
为cloudera软件创建数据库
需要建的数据库有:scm、amon、rman、hue、metastore、sentry、nav、navms、oozie:
mysql>CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql>GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm@123';
mysql>CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql>GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY ' amon@123';
mysql>CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql>GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman@123';
mysql>CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql>GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue@123';
mysql>CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql>GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'metastore@123';
mysql>CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql>GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry@123';
mysql>CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql>GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav@123';
mysql>CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql>GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms@123';
mysql>CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql>GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie@123';
刷新:
mysql>flushprivileges
检查用户是否创建成功:
mysql>selectuser, host from mysql.user;
初始化数据库
执行(如果数据库和CM在一台服务器上)语法,初始化数据库:
[options]
#/opt/cloudera/cm/schema/scm_prepare_database.shmysql scm scm
(运行/opt/cloudera/cm/schema/scm_prepare_database.sh可以查看参数)
启动cm服务
#systemctlstart cloudera-scm-server
#systemctlrestart cloudera-scm-server
#systemctlstatus cloudera-scm-server
检查端口是否监听
#netstat-lnpt | grep 7180
通过主机ip:7180访问了
文档说明
日期 版本号 平台搭建人 文档作者
2019.3.26 1 谢士明、岳毫 岳毫