大数据平台环境部署手册(CDH6.0.0)

目录

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


图3 初始化数据库

(运行/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 谢士明、岳毫  岳毫

你可能感兴趣的:(大数据平台环境部署手册(CDH6.0.0))