NO. | 软件名称 | 版本 |
---|---|---|
1. | 操作系统 | Centos7.6 64 位 |
2. | JDK | jdk-8u191-linux-x64 |
3. | Clouder Manager | 5.15.0 |
4. | CDH | 5.15.0 |
5. | 数据库 | mysql57-community-release-el7-8.noarch.rpm |
6. | JDBC | mysql-connector-java-5.1.46.jar |
NO. | 机器名称 | 内网IP | 配置 | 用途 |
---|---|---|---|---|
1. | hadoop202 | 192.168.10.202 | 32C/128Gb/1.5TB | 主,CM,MysqlDB |
2. | hadoop201 | 192.168.10.201 | 24C/64Gb/0.5TB | 从 |
3. | hadoop200 | 192.168.10.200 | 24C/64Gb/0.5TB | 从 |
1)修改机器名称
#hostnamectl set-hostname xxx //设置机器名
#hostname // 查看本机名
这种方式,在Centos7中可以永久性改变主机名称。
或者
vi /etc/sysconfig/network
# 配置如下
NETWORKING=yes
HOSTNAME=[主机名]
# vi /etc/hosts
内容都改为:
127.0.0.1 localhost //建议保留此行
192.168.10.202 hadoop202
192.168.10.201 hadoop201
192.168.10.200 hadoop200
注:配置好后可进行ping测试
注:为了简便,可以先关闭防所有节点火墙,安装完成后,再按照下面步骤设置。
防火墙常用命令:
#firewall-cmd --state(查询防火墙状态)
#systemctl stop firewalld.service(关闭防火墙)
#systemctl start firewalld.service(开启防火墙)
#systemctl disable firewalld.service(禁止firewall开机启动)
注:将子节点设置为从主节点ssh无密码登陆(主节点访问从节点需要无密码互通,否则后面会出现问题)
在主节点上执行:
# cd ~ //进入到 根目录
# ssh-keygen -t rsa
一路回车,生成无密码的密钥对。
把公钥拷贝至所有从服务器上:
# cd /root/.ssh //查看公钥存放目录
# cp id_rsa.pub authorized_keys //将公钥拷贝成authorized_keys
# chmod 600 authorized_keys
#发送公钥
# ssh-copy-id -i hadoop202
# ssh-copy-id -i hadoop201
# ssh-copy-id -i hadoop200
注:配置完后可进行ssh +主机名进行测试
关闭linux SELINUX安全内核
# setenforce 0 (临时生效)
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
# vi /etc/selinux/config
# 内容增加:
SELINUX=disabled
重启后生效
# reboot
查看SELINUX是否关闭:
#sestatus
注:在Centos7中遇到SELINUX无法关闭时,重新启动机器可恢复正常
注:集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。
所有节点安装相关组件:
# yum install ntp ntpdate -y
NTP服务端(主节点):
编辑 /etc/ntp.conf:1
# vi /etc/ntp.conf
//在文件中输入上面网页内容:
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org
启动ntp服务:
# systemctl start ntpd
配置开机启动:
# systemctl enable ntpd.service
注意:如果ntpd 开机启动失效,有可能是因为安装了chronyd 并且是开机自启状态,所以导致ntpd开机自启失败。
# 查看 chronyd设置状态
#systemctl status chronyd
以上显示表明,chronyd显示为开机启动状态。
相关操作:
#systemctl disable chronyd.service //将chronyd设为禁用状态
此时,NTP的服务开机自启动完成!
检查是否设置成功【刚启动时需要等10分钟才可以进行更新。会出现错误== no server suitable for synchronization found==】:
# ntpq -p
//更新时间
#timedatectl
NTP客户端(所有从节点):
远程客户端时间同步测试
# date
#ntpdate 192.168.0.202
192.168.0.202是NTP服务端IP,显示如下信息,测试成功:
客户端设置计划任务,每30分钟同步时间
#crontab -e
//加入内容:
0-59/30 * * * * /usr/sbin/ntpdate 192.168.0.202 && /sbin/hwclock -w
设置定时任务开机启动
//设置开机启动
# systemctl enable crond.service
//查看状态
# systemctl status crond
jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
CentOS系统一般自带OpenJdk,需要卸载掉自带的OpenJdk,使用
# rpm -qa | grep java //查看是否安装java相关的包
卸载相关包
# rpm -e –nodeps 包名
安装相关包
#rpm -ivh jdk-8u151-linux-x64.rpm
配置JAVA_HOME环境变量:
修改/etc/profile文件配置环境变量,执行命令
# vi /etc/profile
# 在profile文件最后加入如下内容
export JAVA_HOME=[安装路径]/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin
执行命令使其生效
#source /etc/profile //使修改立即生效
#echo $PATH //查看PATH值
#echo $JAVA_HOME //查看JAVA_HOME值
注:在Centos7中修改/etc/profile文件配置环境变量,机器启动后有时不生效,可以修改/etc/ bashrc文件配置环境变量
#vi /etc/bashrc
//在文件最后加入:
export JAVA_HOME=[安装路径]/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin
//使修改立即生效
# source /etc/bashrc
//查看JAVA_HOME值
#echo $JAVA_HOME
在master节点安装mysql服务,下载mysql的repo源
# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
安装mysql包
# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
安装mysql服务
# yum install mysql-server //如果提示镜像下载未成功需要多次尝试
启动mysqld服务
# service mysqld restart
查看原始密码
# grep "password" /var/log/mysqld.log
使用查询出的原始密码登录
# mysql -uroot -p[原始密码]
登录进mysql后:
设置root用户密码:
mysql> alter user 'root'@'localhost' identified by 'Master01#';
mysql> flush privileges;
创建CDH服务所需的数据库:
mysql> create database hive default charset utf8;
mysql> create database oozie default charset utf8;
mysql> create database hue default charset utf8;
创建密码并访问权限:
mysql>grant all privileges on hive.* to 'hive'@'%' identified by 'MasterHive01#' with grant option;
mysql> grant all privileges on oozie.* to 'oozie'@'%' identified by 'MasterOozie01#' with grant option;
mysql> grant all privileges on hue.* to 'hue'@'%' identified by 'MasterHue01#' with grant option;
mysql> grant all privileges on scm.* to 'scm'@'%' identified by 'MasterScm01#' with grant option;
mysql> flush privileges;
注:外部数据库只需要安装在一个节点上即可,我们使用mysql,它的主要作用是用来存储元数据,如hive,oozie等。我们使用主节点来安装mysql。
所有节点逐一检查一下以下的依赖包是否安装,如果没有,则使用yum install -y进行安装
# yum install -y bind-utils
# yum install -y cyrus-sasl-gssapi
# yum install -y cyrus-sasl-plain
# yum install -y fuse
# yum install -y fuse-libs
# yum install -y gcc
# yum install -y httpd
# yum install -y libxslt
# yum install -y mod_ssl
# yum install -y MySQL-python
# yum install -y openssl-devel
# yum install -y portmap
# yum install -y postgresql-server >= 8.4
# yum install -y psmisc
# yum install -y python >= 2.4.3-43
# yum install -y python-devel >= 2.4.3-43
# yum install -y python-psycopg2
# yum install -y python-setuptools
# yum install -y swig
# yum install -y perl
# //启动web服务器,并将之设置为自动启动:
# systemctl start httpd.service
# systemctl enable httpd.service
官方安装文档:http://www.cloudera.com/documentation/enterprise/5-15-x.html
在master节点上cd 到/opt 目录上下载
# wget http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz
# wget http://archive.cloudera.com/cdh5/parcels/5.15.0/CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel
# wget http://archive.cloudera.com/cdh5/parcels/5.15.0/CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
# wget http://archive.cloudera.com/cdh5/parcels/5.15.0/manifest.json
# wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
在每台服务器上创建CM使用的用户
# useradd --system --home=/opt/cm-5.15.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
在master节点执行如下操作
# mv CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1 CDH-5.15.0-1 z.cdh5.15.0.p0.21-el7.parcel.sha //修改名称
# tar -zxvf cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz -C /opt/ //解压缩
# mv CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha manifest.json /opt/cloudera/parcel-repo //移动文件到parcel-repo中
将mysql-connector-java-5.1.46.tar.gz解压,生成mysql-connector-java-5.1.46。将mysql-connector-java-5.1.46下的mysql-connector-java-5.1.46-bin.jar
copy到/usr/share/java(如没有则mkdir,新建该目录)和/opt/cm-5.15.0/share/cmf/lib目录下。
# tar -zxf mysql-connector-java-5.1.46.tar.gz
# cd mysql-connector-java-5.1.46
# cp mysql-connector-java-5.1.46-bin.jar /opt/cm-5.15.0/share/cmf/lib
# cp mysql-connector-java-5.1.46-bin.jar /usr/share/java
配置agnent,将server_hostg改为master
# vi /opt/cm-5.15.0/etc/cloudera-scm-agent/config.ini
复制agent到其他节点
# scp -r /opt/cm-5.15.0 geeky201:/opt
# scp -r /opt/cm-5.15.0 geeky200:/opt
使用命令配置cm使用的元数据库
# /opt/cm-5.15.0/share/cmf/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -pGeeky.mysql.@admin1 --scm-host geeky202 scm scm MasterScm01#
注:见到类似上面截图的提示则为数据库设置成功,否则请检查数据库配置。
启动服务:
# 在master上,启动主服务:
# /opt/cm-5.15.0/etc/init.d/cloudera-scm-server start
# 在每台服务器上,启动代理服务:
# /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent start
等候2~3分钟,系统会完成启动。启动后,就可以在master的7180端口访问scm服务,并进行cdh安装。如果超过10分钟仍无法启动,请检查/var/log/cloudera-scm-server/下的日志文件,并根据日志文件进行错误排查。
访问CM界面:
输入:http://192.168.0.202:7180/ 就可以访问到CM的管理界面用户名密码都是:admin
主节点上停止cm服务
# /opt/cm-5.15.0/etc/init.d/cloudera-scm-server stop
所有节点上停止代理服务
# /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent stop
# umount /opt/cm-5.15.0/run/cloudera-scm-agent/process
所有节点上执行以下命令,清除/var/lib 下cdh的安装组件
# rm -rf /var/lib/hadoop* /var/lib/hue /var/lib/hbase /var/lib/solr /var/lib/oozie /var/lib/hive /var/lib/cloudera-scm-server /var/lib/spark /var/lib/zookeeper /var/lib/kafka /var/lib/impala /var/lib/sqoop*
# rm -rf /etc/hadoop* /etc/hbase* /etc/hive* /etc/hue /etc/impala /etc/solr /etc/sqoop* /etc/spark /etc/pig
所有节点上执行以下命令,杀掉相关进程
# for u in hdfs mapred cloudera-scm hbase hue zookeeper oozie hive impala flume; do sudo kill $(ps -u $u -o pid=); done
所有节点执行以下命令,删除相关的CDH安装包和CM目录
# rm -rf /opt/cloudera/parcel-cache /opt/cloudera/parcels/opt/cloudera-manager/*
所有节点删除dfs目录中的内容
# rm -rf /dfs/*
查看日志:/opt/cm-5.15.0/log/cloudera-scm-agent/cloudera-scm-agent.out
[05/Nov/2016 06:57:48 +0000] 5975 MainThread agent INFO SCM Agent Version: 5.15.0
Unable to create the pidfile.
解决:
每个节点上创建目录
mkdir /opt/cm-5.15.0/run/cloudera-scm-agent
# 再次启动成功
[root@master init.d]# /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent start
Starting cloudera-scm-agent: [ OK ]
$ tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
# 查看到报错信息,9000端口已经被占用
ChannelFailures: IOError("Port 9000 not free on 'vm3'",)
$ netstat -tunlp|grep 9000
tcp 0 0 10.171.133.79:9000 0.0.0.0:* LISTEN 4411/python2.6
# 删除pid,杀死端口占用的进程,然后重启
$ rm -rf cloudera-scm-agent.pid
$ kill -9 4411
$ service cloudera-scm-agent start
Starting cloudera-scm-agent: [ OK ]
$ netstat -tunlp|grep 9000
tcp 0 0 10.171.133.79:9000 0.0.0.0:* LISTEN 6562/python2.6
$ service cloudera-scm-agent status
cloudera-scm-agent (pid 6562) is running...
这是由于安装mysql的配置问题,找到mysql配置修改如下
##################Replication#####################
gtid_mode = off
enforce_gtid_consistency = off
ps -ef |grep supervisor
然后kill掉对应服务
版权声明:本文为博主原创文章,转载请注明出处!
https://me.csdn.net/qq_39657909