CDH6离线安装
CentOS7下完全离线安装CDH6集群
本文是在CentOS7.5下进行CDH6集群的完全离线部署。CDH5集群与CDH6集群的部署区别比较大,关于CDH5集群的部署请移步:CDH5高可用集群离线部署。
环境准备部分在上一篇文章:安装CDH6集群之前的环境准备。
说明:本文内容所有操作都是在root用户下进行的。
文件下载
首先一些安装CDH6集群的必须文件要先在外网环境先下载好。
Cloudera Manager 6.0.1
CM6 RPM:https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/
需要下载该链接下的所有RPM文件,由于jdk1.8我在环境准备部分已经手动安装了,所以可以不用下载RPMS/x86_64/
目录下的jdk包oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
,但是其他4个rpm包一定要下载,保存到cloudera-repos
目录下。
ASC文件:https://archive.cloudera.com/cm6/6.0.1/allkeys.asc
同时还需要下载一个asc文件,同样保存到cloudera-repos
目录下:
/upload/cloudera-repos/
├── allkeys.asc
├── cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
├── cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
├── cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
└── cloudera-manager-server-db-2-6.0.1-610811.el7.x86_64.rpm
0 directories, 4 files
MySQL JDBC驱动
要求使用5.1.26以上版本的jdbc驱动,可点击这里直接下载mysql-connector-java-5.1.47.tar.gz
CDH 6.0.1
CDH6 Parcels:https://archive.cloudera.com/cdh6/6.0.1/parcels/
需要下载CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel
和manifest.json
这两个文件
配置Cloudera Manager yum库
注意:不要尝试使用FTP搭建CM的YUM库!
首先安装httpd
和createrepo
:yum -y install httpd createrepo
启动httpd
服务并设置开机自启动:systemctl start httpd
systemctl enable httpd
然后进入到前面准备好的存放Cloudera Manager RPM包的目录cloudera-repos
下:cd /upload/cloudera-repos/
生成RPM元数据:createrepo .
[root@cdh601 cloudera-repos]# createrepo .
Spawning worker 0 with 2 pkgs
Spawning worker 1 with 2 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
然后将cloudera-repos
目录移动到httpd的html目录下:mv cloudera-repos /var/www/html/
确保可以通过浏览器查看到这些RPM包:
接着在Cloudera Manager Server主机上创建cm6的repo文件(要把哪个节点作为Cloudera Manager Server节点,就在这个节点上创建repo文件):cd /etc/yum.repos.d
vim cloudera-manager.repo
添加如下内容:
[cloudera-manager]
name=Cloudera Manager 6.0.1
baseurl=http://cdh601/cloudera-repos/
gpgcheck=0
enabled=1
保存,退出,然后执行yum clean all && yum makecache
命令:
安装Cloudera Manager Server
这一步只需要在CM Server节点上操作。
执行下面的命令:yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
将会需要很多依赖包,所以说还是有必要搭一个局域网内yum源的:
配置本地Parcel存储库
Cloudera Manager Server安装完成后,进入到本地Parcel存储库目录:cd /opt/cloudera/parcel-repo
将第一部分下载的CDH Parcel文件(CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel
和manifest.json
)上传至该目录下,然后执行命令生成sha文件:sha1sum CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel | awk '{ print $1 }' > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha
然后执行下面的命令修改文件所有者:chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
最终/opt/cloudera/parcel-repo
目录内容如下:
安装数据库
MySQL的安装在环境准备部分中已经有说明,这里就跳过MySQL安装了。
数据库配置
CDH官方给的有一份推荐的MySQL的配置内容:
[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 jdbc驱动
从前面下载好的mysql-connector-java-5.1.47.tar.gz
包中解压出mysql-connector-java-5.1.47-bin.jar
文件,将mysql-connector-java-5.1.47-bin.jar
文件上传至CM Server节点上的/usr/share/java/
目录下并重命名为mysql-connector-java.jar
(如果/usr/share/java/
目录不存在,需要手动创建):tar zxvf mysql-connector-java-5.1.47.tar.gz
mkdir -p /usr/share/java/
cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar
创建CDH所需要的数据库
根据所需要安装的服务参照下表创建对应的数据库以及数据库用户,数据库必须使用utf8编码,创建数据库时要记录好用户名及对应密码:
服务名 | 数据库名 | 用户名 |
---|---|---|
Cloudera Manager Server | scm | scm |
Activity Monitor | amon | amon |
Reports Manager | rman | rman |
Hue | hue | hue |
Hive Metastore Server | metastore | hive |
Sentry Server | sentry | sentry |
Cloudera Navigator Audit Server | nav | nav |
Cloudera Navigator Metadata Server | navms | navms |
Oozie | oozie | oozie |
我这里就先创建4个数据库及对应用户:
mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.11 sec)
mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';
Query OK, 0 rows affected, 1 warning (0.16 sec)
mysql> GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'hive';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
查看授权是否正确:
mysql> SHOW GRANTS FOR 'scm'@'%';
+----------------------------------------------+
| Grants for scm@% |
+----------------------------------------------+
| GRANT USAGE ON *.* TO 'scm'@'%' |
| GRANT ALL PRIVILEGES ON `scm`.* TO 'scm'@'%' |
+----------------------------------------------+
2 rows in set (0.00 sec)
mysql> SHOW GRANTS FOR 'amon'@'%';
+------------------------------------------------+
| Grants for amon@% |
+------------------------------------------------+
| GRANT USAGE ON *.* TO 'amon'@'%' |
| GRANT ALL PRIVILEGES ON `amon`.* TO 'amon'@'%' |
+------------------------------------------------+
2 rows in set (0.00 sec)
mysql> SHOW GRANTS FOR 'rman'@'%';
+------------------------------------------------+
| Grants for rman@% |
+------------------------------------------------+
| GRANT USAGE ON *.* TO 'rman'@'%' |
| GRANT ALL PRIVILEGES ON `rman`.* TO 'rman'@'%' |
+------------------------------------------------+
2 rows in set (0.00 sec)
mysql> SHOW GRANTS FOR 'hive'@'%';
+----------------------------------------------------------+
| Grants for metastore@% |
+----------------------------------------------------------+
| GRANT USAGE ON *.* TO 'hive'@'%' |
| GRANT ALL PRIVILEGES ON `metastore`.* TO 'hive'@'%' |
+----------------------------------------------------------+
2 rows in set (0.00 sec)
设置Cloudera Manager 数据库
Cloudera Manager Server包含一个配置数据库的脚本。
- mysql数据库与CM Server是同一台主机
执行命令:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
- mysql数据库与CM Server不在同一台主机上
执行命令:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h <mysql-host-ip> --scm-host <cm-server-ip> scm scm
安装CDH节点
启动Cloudera Manager Server服务
systemctl start cloudera-scm-server
然后等待Cloudera Manager Server启动,可能需要稍等一会儿,可以通过命令tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
去监控服务启动状态。
当看到INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
日志打印出来后,说明服务启动成功,可以通过浏览器访问Cloudera Manager WEB界面了。
访问Cloudera Manager WEB界面
打开浏览器,访问地址:http://<server_host>:7180
,默认账号和密码都为admin:
欢迎页面
首先是Cloudera Manager的欢迎页面,点击页面右下角的【继续】按钮进行下一步:
接受条款
勾选接受条款,点击【继续】进行下一步:
版本选择
这里我就选择免费版了:
第二个欢迎界面
选择版本以后会出现第二个欢迎界面,不过这个是安装集群的欢迎页:
选择主机
这一步是要搜索并选择用于安装CDH集群的主机,在主机名称后面的输入框中输入各个节点的hostname,中间使用英文逗号分隔开,然后点击搜索,在结果列表中勾选要安装CDH的节点即可:
指定存储库
Cloudera Manager Agent
这里选择自定义,填写上面使用httpd搭建好的Cloudera Manager YUM 库URL:
CDH and other software
如果我们之前的【配置本地Parcel存储库】步骤操作无误的话,这里会自动选择【使用Parcel】,并加载出CDH版本,确认无误后点击【继续】:
JDK安装选项
这一步骤我就不再勾选安装JDK了,因为我在环境准备部分已经安装过了。取消勾选,然后继续:
SSH登录配置
用于配置集群主机之间的SSH登录,填写root用户的密码,根据集群配置填写合适的【同时安装数量】值即可:
安装Agent
到这一步会自动进行节点Agent的安装,稍等一会儿,即可安装完成:
安装Parcels
这一步同样是自动安装,分配步骤的速度主要取决于网络环境,耐心等待即可(我的3台虚拟机性能实在是太差了,这一步等了好久):
主机检查
等待检查完成即可:
安装CDH集群
选择服务类型
这里我选择自定义服务,HDFS,Hive,Yarn:
角色分配
CDH会自动给出一个角色分配,如果觉得不合理,我们可以手动调整一下,注意角色分配均衡:
数据库设置
因为我选择的服务中只有Hive需要数据库,故这里只需要配置Hive的metastore数据库。注意要将mysql的jdbc驱动放到hive metastore主机的/usr/share/java/
目录下:
到这里CDH集群的安装基本上就已经完成了,我的虚拟机实在是承受不住了,后续内容等我换个环境再补充~。
CDH6离线安装的更多相关文章
- CDH6.1.0离线安装——笔记
一. 概述 该文档主要记录大数据平台的搭建CDH版的部署过程,以供后续部署环境提供技术参考. 1.1 主流大数据部署方法 目前主流的hadoop平台部署方法主要有以下三种: Apache hadoop ...
- CDH6.2.0离线安装(详细)
目录 01 准备工作 02 环境配置 03 CDH安装 报错 01 准备工作 官网地址下载页面:https://www.cloudera.com/downloads/cdh.html,现在下载好像需要 ...
- SharePoint 2016 必备组件离线安装介绍
前言 SharePoint 必备组件安装,一直以来都是SharePoint安装过程中的最大的坑,尤其是不能联网的服务器.博主在这里简单介绍一下离线安装过程,并附组件包下载以及安装命令,并且在windo ...
- MYSQL离线安装
由于MySQL的广泛应用,MySQL的安装也就成了大家经常会碰到的问题.并且由于不是所有机器都可连接外网,所以MySQL的离线安装显得比较重要.而本文旨在介绍CentOS6.6下离线安装MySQL. ...
- VS2010+Qt5.4.0 环境搭建(离线安装)
原创作者:http://blog.csdn.net/solomon1558/article/details/44084969 前言 因项目需要Qt开发GUI,我根据网上资料及自己的经验整理了搭建vs2 ...
- 离线安装 Python 2.7, paramiko 和 tornado
无非就是离线安装, 步骤比较繁琐, 记录一下. 需求很简单, 一个离线安装的 Python, 能跑 tornado 和 paramiko 1. 离线安装 Python 2.7 .tgz cd Pyth ...
- npm包与gem包--在线&离线安装
目录 NPM 在线 离线 GEM 在线 离线 NPM NPM,即为Node的包管理工具,官网为 https://www.npmjs.com/,我们可以在站内搜索所需要的NPM包,了解相关的使用规则 安 ...
- Windows 8 下离线安装。net Framework 3.5
Windows 8 下安装.net Framework 3.5 1)可以将直接双击ISO (或放入光盘/U盘)(安装文件在F盘) 2)使用管理员权限运行命令行程序 3)dism.exe /online ...
- Xamarin Mono For Android 4.6.07004 完整离线安装破解版(C#开发Android、IOS工具)
Xamarin是由Miguel de Icaza成立的一家新的独立公司,目的是给Mono一个继续奋斗的机会.Mono for Android (原名:MonoDroid)可以让开发人员使用 Mic ...
随机推荐
- RabbitMQ install (Ubuntu)
1. key 1) Online way apt-key adv --keyserver "hkps.pool.sks-keyservers.net" --recv-keys &q ...
- Elasticsearch增删改查
面向文档 document数据格式 应用系统的数据结构都是面向对象的,复杂的 对象数据存储到数据库中,只能拆解开来,变为扁平的多张表,每次查询的时候还得还原回对象格式,相当麻烦 ES是面向文档的,文档 ...
- 让MySql支持表情符号(MySQL中4字节utf8字符保存方法)
UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去. 解决方案:将编码从utf8转换成utf8mb4. 1. 修改my.in ...
- WPF 操作XML 读写
来自:http://blog.sina.com.cn/s/blog_633d0e170100xyc6.html XML(可扩展标记语言) 定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数 ...
- vue2.0过滤器
最近一阶段,项目上比较清闲,有了更多的时间可以研究一下vue了. 这里记录一下关于vue2.0过滤器的学习. vue2.0删除了所有的框架自带的过滤器,也就是说,如果你在vue2.0当中想用过滤器,那 ...
- 《机器学习实战》KNN算法实现
本系列都是参考<机器学习实战>这本书,只对学习过程一个记录,不做详细的描述! 注释:看了一段时间Ng的机器学习视频,感觉不能光看不练,现在一边练习再一边去学习理论! KNN很早就之前就看过 ...
- 《算法》第一章部分程序 part 2
▶ 书中第一章部分程序,加上自己补充的代码,包括简单的计时器,链表背包迭代器,表达式计算相关 ● 简单的计时器,分别记录墙上时间和 CPU 时间. package package01; import ...
- python中的get
get()根据键获取字典中的值,如果键不存在则返回一个默认值,默认值不填写则返回None 1 a = { 2 "name":"dlrb", 3 "ag ...
- gulp 添加版本号 解决浏览器缓存问题
分别安装gulp-rev.gulp-rev-collerctor.gulp-asset-rev,安装了的略过 npm install gulp-rev --save-dev npm install g ...
- python 阿狸的进阶之路(5)
一.模块 1.什么是模块: 包含了一组功能的python文件,文件名是xxx.py,模块名是module. 可以使用 import module,四个通用的类别: (1)用python编写的py文件 ...