centos7.4下离线安装CDH5.7
(一)安装前的规划
(1)操作系统版本:centos7.4(64bit)
[root@hadoop22 etc]# more /etc/centos-release
CentOS Linux release 7.4. (Core) [root@hadoop22 installPackage]# cat /proc/version
Linux version 3.10.-.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8. (Red Hat 4.8.-) (GCC) ) # SMP Tue Aug :: UTC
[root@hadoop22 installPackage]# getconf LONG_BIT #确认OS是32bit还是64bit
(2)软件安装包
类型 | 安装包 | 下载地址 |
CM | cloudera-manager-centos7-cm5.7.6_x86_64.tar.gz | http://archive.cloudera.com/cm5/cm/5/ |
CDH |
3个安装包: CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel.sha1 CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel manifest.json |
http://archive.cloudera.com/cdh5/parcels/ |
JDK | jdk-8u161-linux-x64.tar.gz | http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html |
mysql数据库 | mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar | http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar |
jdbc | mysql-connector-java-5.1.46.tar.gz | https://dev.mysql.com/downloads/connector/j/3.0.html |
(3)主机规划
本次采用vmware虚拟机安装,主机规划如下:
IP地址 | 主机名 | CPU | 内存 | 备注 |
10.141.71.22 | hadoop22 | 2颗 x 1核 | 16GB | 主节点 |
10.141.71.23 | hadoop23 | 2颗 x 1核 | 8GB | |
10.141.71.24 | hadoop24 | 2颗 x 1核 | 8GB | |
10.141.71.25 | hadoop25 | 2颗 x 1核 | 8GB |
(二)配置服务器
(1)修改主机名
因为虚拟机是通过vmware的克隆功能拷贝的,4台虚拟机名称相同,我们需要将其修改为规划的名称。使用"hostnamectl set-hostname 主机名"即可修改,例如将hadoop22修改为hadoop23:
hostnamectl set-hostname hadoop23
(2)配置网卡信息
这里我们采用固定IP,执行修改配置文件即可,网卡的配置文件在"/etc/sysconfig/network-script/"下面,以hadoop22这台主机为例,这里使用的网卡为:ifcfg-ens33,将其配置信息修改为如下:
[root@hadoop22 network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 修改为下面
TYPE=Ethernet
NAME=ens33
UUID=a043a2bb-babb--8e2a-c2c98dbdd8b5
DEVICE=ens33
ONBOOT=yes
IPADDR=10.141.71.22
NETMASK=255.255.255.0
GATEWAY=10.141.71.254
其它节点一次如上修改。
(3)添加主机节点映射
修改4台主机的"/etc/hosts"文件即可:
[root@hadoop22 ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
10.141.71.22 hadoop22
10.141.71.23 hadoop23
10.141.71.24 hadoop24
10.141.71.25 hadoop25
注意,127.0.0.1和::1不能删除。
(4)关闭防火墙
[root@hadoop22 ~]# systemctl stop firewalld.service #停止firewall
[root@hadoop22 ~]# systemctl disable firewalld.service #禁止firewall开机启动,如果不执行,服务器重启之后firewall会启动
[root@hadoop22 ~]# firewall-cmd --state #查看防火墙状态
not running
(5)关闭selinux
修改"/etc/selinux/config"文件,将SELINUX值改为disabled。
[root@hadoop22 ~]# vi /etc/selinux/config
SELINUX=disabled
(6)配置ssh无密码访问
要达到的效果:主节点到其它节点不需要密码就能访问。
(6.1)执行以下命令:
[root@hadoop22 ~]# ssh-keygen -t rsa
此时会生成.ssh文件
[root@hadoop22 ~]# pwd
/root [root@hadoop22 ~]# ll -a
...
drwx------. root root Apr : .ssh
...
里面有2个文件
[root@hadoop22 .ssh]# ll
total
-rw-------. root root Apr : id_rsa
-rw-r--r--. root root Apr : id_rsa.pub
(6.2)添加公钥到认证文件中
[root@hadoop22 .ssh]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(6.3)然后把authorized_keys文件scp到其它节点,在这之前,需要在其它节点先创建.ssh文件夹
[root@hadoopxx ~]# mkdir .ssh # 在23、、25节点执行 [root@hadoop22 ~]# scp ~/.ssh/authorized_keys root@10.141.71.23:~/.ssh/
[root@hadoop22 ~]# scp ~/.ssh/authorized_keys root@10.141.71.24:~/.ssh/
[root@hadoop22 ~]# scp ~/.ssh/authorized_keys root@10.141.71.25:~/.ssh/
注意,确保.ssh文件夹的权限为700,id_rsa.pub和authorized_keys权限为644,其他权限都会导致SSH出问题。
(7)时间同步配置
CDH集群的时间必须同步,,否则安装完成会报错:不良 : 无法找到主机的 NTP 服务,或该服务未响应时钟偏差请求。如下图:
(7.1)NTP规划
由于我是在局域网内安装,不能访问互联网,故采用hadoop22的本地时间来做同步。规划如下:
NTP属性 | 主机 | IP地址 |
NTP server | hadoop22 | 10.141.71.22 |
NTP client |
hadoop23 hadoop24 hadoop25 |
10.141.71.23 10.141.71.24 10.141.71.25 |
(7.2)查看是否安装了NTP软件包
[root@hadoop22 ~]# rpm -qa ntp
ntp-4.2.6p5-.el7.centos..x86_64
centos7.4自带了ntp软件包,无需再安装。
(7.3)修改NTP server
修改"/etc/ntp.conf"配置文件,如下:
driftfile /var/lib/ntp/drift # Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default ignore #新增行1
restrict 10.141.71.0 mask 255.255.255.0 notrap nomodify #新增行2:运行71网段的所有IP同步 /var/lib/ntp/drift #新增行3
fudge 127.127.1.0 stratum #新增行4
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict :: # Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 127.127.1.0 #新增行5:ntp server服务器地址,127.127.1.0是本服务器的IP
server 10.141.71.22 #新增行6:ntp server服务器地址
#broadcast 192.168.1.255 autokey # broadcast server
#broadcastclient # broadcast client
(7.4)NTP client
去除原来的ntp server,添加新的ntp server
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 10.141.71.22 #新增行1:添加ntp服务器
(7.5)启动ntp服务
在所有节点上执行如下命令启动ntp服务
# /bin/systemctl restart ntpd.service #启动ntp服务
# /bin/systemctl enable ntpd.service #设置开机启动
查看NTP状态:
(7.6)查看ntp服务时间同步信息
ntpdc用于查询ntpd守护进程对其当前状态和要求的变化。程序可以运行在交互模式下使用命令行参数或控制。ntpdc -np可以看到所使用的时间服务器。
我的ntp服务器信息如下:
我的ntp客户端信息如下:
(7.7)进行时间同步
在ntp client节点执行ntpdate hadoop22命令,将所有客户端的时间与服务器同步
说明:NTP服务启动需要大约五分钟时间,服务启动之前,若客户端同步时间,则会出现错误“no server suitable for synchronization found”
(7.8)配置每天进行一次时间同步
在3台ntp client上配置crontab,执行:
[root@hadoop23 ~]# crontab -e # 添加1行 * * * /usr/sbin/ntpdate 10.141.71.22 >> /tmp/ntdp.log
该行信息表示,每天12:30执行一次时间同步,并将执行结果输出到"/tmp/ntpd.log"文件中。
(8)jdk安装
在所有节点安装jdk,这里现在主节点安装,然后scp到其它节点。
(8.1)查找已安装的openjdk
[root@hadoop22 ~]# rpm -qa |grep java
javapackages-tools-3.4.-.el7.noarch
java-1.8.-openjdk-headless-1.8.0.131-.b12.el7.x86_64
tzdata-java-2017b-.el7.noarch
python-javapackages-3.4.-.el7.noarch
java-1.8.-openjdk-1.8.0.131-.b12.el7.x86_64 #open jdk
java-1.7.-openjdk-1.7.0.141-2.6.10.5.el7.x86_64 #open jdk
java-1.7.-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64 #open jdk
(8.2)卸载已安装的openjdk
# rpm -e --nodeps java-1.7.-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64
# rpm -e --nodeps java-1.8.-openjdk-1.8.0.131-.b12.el7.x86_64
# rpm -e --nodeps java-1.7.-openjdk-1.7.0.141-2.6.10.5.el7.x86_64
(8.3)安装新的jdk
解压下载好的jdk,并重新命名(重新命名只是方便简化路径)
[root@hadoop22 opt]# tar -xzvf /root/Desktop/installPackage/jdk-8u161-linux-x64.tar.gz
[root@hadoop22 opt]# mv jdk1.8.0_161 jdk1.8
[root@hadoop22 opt]# ls
jdk1. rh
(8.4)配置环境变量
root@hadoop22 opt]# vim /etc/profile
#添加以下:
export JAVA_HOME=/opt/jdk1.
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
(8.5)使生效
[root@hadoop22 opt]# source /etc/profile
(8.6)测试
[root@hadoop22 opt]# echo $JAVA_HOME
/opt/jdk1.
(8.7)复制到其它节点:
scp -r /opt/jdk1. root@10.141.71.23:/opt
scp -r /opt/jdk1. root@10.141.71.24:/opt
scp -r /opt/jdk1. root@10.141.71.25:/opt
(8.8)修改环境变量,见8.4
(9)安装mysql数据库
mysql数据库只需要在主节点(hadoop22)安装即可
(9.1)卸载mariadb
[root@hadoop22 installPackage]# rpm -qa |grep mariadb
mariadb-libs-5.5.-.el7.x86_64
[root@hadoop22 installPackage]# rpm -e --nodeps mariadb-libs-5.5.-.el7.x86_64
(9.2)解压mysql
[root@hadoop22 opt]# tar -xvf /root/Desktop/installPackage/mysql-5.7.-.el7.x86_64.rpm-bundle.tar
[root@hadoop22 opt]# ls
jdk1. mysql-community-libs-5.7.-.el7.x86_64.rpm
mysql-community-client-5.7.-.el7.x86_64.rpm mysql-community-libs-compat-5.7.-
.el7.x86_64.rpm
mysql-community-common-5.7.-.el7.x86_64.rpm mysql-community-minimal-debuginfo-5.7.-
.el7.x86_64.rpm
mysql-community-devel-5.7.-.el7.x86_64.rpm mysql-community-server-5.7.-
.el7.x86_64.rpm
mysql-community-embedded-5.7.-.el7.x86_64.rpm mysql-community-server-minimal-5.7.-
.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.-.el7.x86_64.rpm mysql-community-test-5.7.-.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.-.el7.x86_64.rpm rh
(9.3)只需要按顺序安装4个包即可
[root@hadoop22 opt]# rpm -ivh mysql-community-common-5.7.-.el7.x86_64.rpm
[root@hadoop22 opt]# rpm -ivh mysql-community-libs-5.7.-.el7.x86_64.rpm
[root@hadoop22 opt]# rpm -ivh mysql-community-client-5.7.-.el7.x86_64.rpm
[root@hadoop22 opt]# rpm -ivh mysql-community-server-5.7.-.el7.x86_64.rpm
(10.4)mysql起停
# 查看mysql是否启动
service mysqld status # 启动mysql
service mysqld start # 停止mysql
service mysqld stop # 重启mysql
service mysqld restart
(10.5)设定开机自启动
[root@hadoop22 opt]# vim /etc/rc.local
添加 service mysqld start
(9.6)确认mysql初始密码
[root@hadoop22 log]# more /var/log/mysqld.log |grep password
--03T11::.636798Z [Note] A temporary password is generated for root@localhost:
xMsoLF;oa7h=
(9.7)登录mysql
[root@hadoop22 log]# mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7.
(9.8)修改密码(大写+小写+特殊字符)
mysql> set password = password("Mysql_123456");
Query OK, rows affected, warning (0.00 sec)
(9.9)使用新密码重新登陆就好了
[root@hadoop22 log]# mysql -uroot -pMysql_123456
(9.10)创建3个数据库,并授权
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci; grant all privileges on *.* to 'root'@'hadoop22' identified by 'Mysql_123456' with grant option;
flush privileges;
(三)安装CM
(1)在主节点解压cloudera manager
cloudera manager默认安装在"/opt"目录下,进入"/opt"目录,解压安装包,生成2个文件夹cloudera和cm-5.7.6
[root@hadoop22 ~]# cd /opt
[root@hadoop22 opt]# tar -xzvf /root/Desktop/installPackage/cloudera-manager-centos7-cm5..6_x86_64.tar.gz
(2) 在主节点为cloudera manager建立数据库
首先解压jdbc包:
# tar -xzvf mysql-connector-java-5.1.
解压后的文件如下:
其中"mysql-connector-java-5.1.46-bin.jar"是我们需要的,将其拷贝到"/opt/cm-5.7.6/share/cmf/lib"路径下。
在主节点初始化CM的数据库:
/opt/cm-5.7./share/cmf/schema/scm_prepare_database.sh mysql -hhadoop22 -uroot -pMysql_123456 --scm-host hadoop22 scm scm Scm_123456
说明:这个脚本就是用来创建和配置CMS需要的数据库的脚本。各参数是指:
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。
-hhadoop22:数据库建立在hadoop22主机上面。也就是主节点上面。注意主机前面有个“h”
-uroot:root身份运行mysql。-Mysql_123456:mysql的root密码是Mysql_123456。
--scm-host hadoop22:CMS的主机,一般是和mysql安装的主机是在同一个主机上。
最后三个参数是:数据库名,数据库用户名,数据库密码。
(3)agent配置
修改主节点的agent配置文件,仅需修改server_host参数即可:
[root@hadoop22 ~]# vim /opt/cm-5.7./etc/cloudera-scm-agent/config.ini server_host=hadoop22
(4)将CM拷贝到其它节点
scp -r /opt/cm-5.7./ root@hadoop23:/opt/
scp -r /opt/cm-5.7./ root@hadoop24:/opt/
scp -r /opt/cm-5.7./ root@hadoop25:/opt/
(5)再所有节点创建cloudera-scm用户
useradd --system --home=/opt/cm-5.7./run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
(6)准备parcels,用于安装CDH5
将CDH5相关的包放到主节点的"/opt/cloudera/parcel-repo"路径下,parcels相关文件有以下3个
[root@hadoop22 parcel-repo]# cd /opt/cloudera/parcel-repo/
[root@hadoop22 parcel-repo]# ll
-rw-r--r--. root root Apr : CDH-5.7.-.cdh5.7.6.p0.-el7.parcel
-rw-r--r--. root root 41 Apr : CDH-5.7.-.cdh5.7.6.p0.-el7.parcel.sha1
-rw-r--r--. root root Apr : manifest.json
重命名"CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel.sha1"为"CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel.sha",如果不修改,系统会重新下载"CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel"文件。
(7)启动cm server
启动脚本使用方法如下:
[root@hadoop22 ~]# /opt/cm-5.7./etc/init.d/cloudera-scm-server
Usage: cloudera-scm-server {start|force_next_start|stop|restart|status|condrestart}
(7.1)在主节点启动cm server
[root@hadoop22 ~]# /opt/cm-5.7./etc/init.d/cloudera-scm-server start
(7.2)在所有节点(包括主节点)启动cm agent
[root@hadoop23 ~]# /opt/cm-5.7./etc/init.d/cloudera-scm-agent start
(7.3)查看server和agent的状态
在主节点,server和agent都在运行:
其它节点,server不运行,只有agent运行:
(8)开始安装CM
(8.1)登陆http://10.141.71.22:7180
选择免费版本,继续
选择主机,全部选上,继续
选择安装方式,我们使用Parcesl,继续
漫长的等待
自定义安装,仅安装zookeeoer即可,其他的服务待需要的时候在进行安装。
最终安装结果如图所示:
centos7.4下离线安装CDH5.7的更多相关文章
- Ubuntu14.04用apt在线/离线安装CDH5.1.2[Apache Hadoop 2.3.0]
目录 [TOC] 1.CDH介绍 1.1.什么是CDH和CM? CDH一个对Apache Hadoop的集成环境的封装,可以使用Cloudera Manager进行自动化安装. Cloudera-Ma ...
- centos7.2下编译安装&&使用-git代码库
centos7.2下编译安装git Git简介 Git是一个分布式版本控制系统 Git vs SVN SVN是典型的集中式版本控制起,版本库集中存放在服务器,当我们用自己的电脑干活儿的时候,需要先从中 ...
- Linux下离线安装Docker
Linux下离线安装Docker 一.基础环境 1.操作系统:CentOS 7.3 2.Docker版本:18.06.1 官方下载地址(打不开可能需要***) 3.百度云Docker 18.06.1地 ...
- centos7系统下nginx安装并配置开机自启动操作
准备工作 我的centos7系统是最小化安装的, 缺很多库, 首先安装必须的运行库 ? 1 2 3 4 5 6 7 8 9 10 11 yum install wget gcc gcc-c++ pcr ...
- Hyperledger fablic 1.0 在centos7环境下的安装与部署和动态增加节点
Hyperledger fablic 1.0 在centos7环境下的安装与部署和动态增加节点 一.安装docker 执行代码如下: curl -sSL https://get.daocloud.io ...
- Linux下离线安装docker与fastDFS
一.Linux下离线安装Docker 基础环境 1.操作系统:CentOS 7 2.Docker版本:docker-19.03.9.tgz 官方下载地址(打不开可能需要科学-上网) 3.官方参考文档: ...
- Centos7中在线/离线安装DockerCE最新版
Docker在Centos7在线/离线安装 一.在线安装 1.检查系统是否支持,因为Docker 要求 CentOS 系统的内核版本高于 3.10 uname -r 2.确保 yum 包更新到最新 y ...
- Windows 8 下离线安装。net Framework 3.5
Windows 8 下安装.net Framework 3.5 1)可以将直接双击ISO (或放入光盘/U盘)(安装文件在F盘) 2)使用管理员权限运行命令行程序 3)dism.exe /online ...
- docker学习------记录centos7.5下docker安装更换国内源的处理过程
一.centos7.5下更换阿里源 1.装好centos7.5镜像,将yum源更换为阿里源 第一步:刚出的centos7.5是解析不到阿里的东西的,所以找了台centos7.4,下载一些包 (1) 下 ...
随机推荐
- C++通过COM接口操作PPT
一. 背景 在VS环境下,开发C++代码操作PPT,支持对PPT模板的修改.包括修改文本标签.图表.表格.满足大多数软件生成PPT报告的要求,先手工创建好PPT模板,在程序中修改模板数据. 二. 开发 ...
- spring整合mybatis(hibernate)配置
一.Spring整合配置Mybatis spring整合mybatis可以不需要mybatis-config.xml配置文件,直接通过spring配置文件一步到位.一般需要具备如下几个基本配置. 1. ...
- WebFTP安装说明
下载地址:https://files.cnblogs.com/files/lilunjia/BEAT.WebFTP.zip WebFTP采用Asp.Net 2.0 开发 应用池设置 在应用池的高级设置 ...
- 三方面搞定http协议之“报文模型”
关于http协议,这一块的知识其实相当大,但是作为一个前端开发者来说,我觉得只要知道三方面的内容就足矣把http协议是个什么东西解释清楚了.而这三方面,就是http的报文模型,请求方式以及状态码. 这 ...
- 炫丽的倒计时效果Canvas绘图与动画基础
前言 想要在自己做的网页中,加入canvas动画效果,但是发现模板各种调整不好,觉得还是要对canvas有所了解,才可以让自己的网页变得狂拽炫酷吊炸天! 一.绘制基础 1 <!DOCTYPE h ...
- cesium 显示北京时间
cesium用的JulianDate:代表天文朱利安时间,用的是世界协调时,比北京时间晚8个小时,所以在源代码中给默认的时间格式加上8小时. 应该会有更好的办法,希望有大神可以告诉我!!!!!!!!! ...
- Android Studio报错:the selected directory is not a valid home for unknow sdk
今天在使用Android Studio的时候不知道怎么了,没有import module,视图里面也没有android视图,查看project设置.提示我的SDK路径无效:the selected d ...
- PHP中文关键词匹配
关键词匹配是比较常见的需求,如留言.弹幕及游戏聊天中的敏感词过滤,都需要对一段文字进行关键词匹配.提取到关键词后,再做进一步处理. 本类借助PHP高效的数组和mbstring扩展,来实现对中文关键词的 ...
- java大数(BigInteger)
JAVA之BigInteger 用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂.用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的 ...
- gulp和webpack之间的区别
webpack 是一个打包工具 webpack 是用来把你的源文件打包成一个文件的,你做了一系列配置以后,可以用一句 webpack 实现打包的功能. webpack的作用是从若干个文件开始顺藤摸瓜, ...