CentOS7下完全离线安装CDH6集群

shareSHARE

 
  • 245 浏览量
  • 分享到微博
  • 分享到 Twitter
  • 分享到 QQ

本文是在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目录下:

  1. /upload/cloudera-repos/
  2. ├── allkeys.asc
  3. ├── cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
  4. ├── cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
  5. ├── cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
  6. └── cloudera-manager-server-db-2-6.0.1-610811.el7.x86_64.rpm
  7. 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.parcelmanifest.json这两个文件

配置Cloudera Manager yum库

注意:不要尝试使用FTP搭建CM的YUM库!

首先安装httpdcreaterepo
yum -y install httpd createrepo
启动httpd服务并设置开机自启动:
systemctl start httpd
systemctl enable httpd
然后进入到前面准备好的存放Cloudera Manager RPM包的目录cloudera-repos下:
cd /upload/cloudera-repos/
生成RPM元数据:
createrepo .

  1. [root@cdh601 cloudera-repos]# createrepo .
  2. Spawning worker 0 with 2 pkgs
  3. Spawning worker 1 with 2 pkgs
  4. Workers Finished
  5. Saving Primary metadata
  6. Saving file lists metadata
  7. Saving other metadata
  8. Generating sqlite DBs
  9. 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
添加如下内容:

  1. [cloudera-manager]
  2. name=Cloudera Manager 6.0.1
  3. baseurl=http://cdh601/cloudera-repos/
  4. gpgcheck=0
  5. 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.parcelmanifest.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的配置内容:

  1. [mysqld]
  2. datadir=/var/lib/mysql
  3. socket=/var/lib/mysql/mysql.sock
  4. transaction-isolation = READ-COMMITTED
  5. # Disabling symbolic-links is recommended to prevent assorted security risks;
  6. # to do so, uncomment this line:
  7. symbolic-links = 0
  8. key_buffer_size = 32M
  9. max_allowed_packet = 32M
  10. thread_stack = 256K
  11. thread_cache_size = 64
  12. query_cache_limit = 8M
  13. query_cache_size = 64M
  14. query_cache_type = 1
  15. max_connections = 550
  16. #expire_logs_days = 10
  17. #max_binlog_size = 100M
  18. #log_bin should be on a disk with enough free space.
  19. #Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
  20. #system and chown the specified folder to the mysql user.
  21. log_bin=/var/lib/mysql/mysql_binary_log
  22. #In later versions of MySQL, if you enable the binary log and do not set
  23. #a server_id, MySQL will not start. The server_id must be unique within
  24. #the replicating group.
  25. server_id=1
  26. binlog_format = mixed
  27. read_buffer_size = 2M
  28. read_rnd_buffer_size = 16M
  29. sort_buffer_size = 8M
  30. join_buffer_size = 8M
  31. # InnoDB settings
  32. innodb_file_per_table = 1
  33. innodb_flush_log_at_trx_commit = 2
  34. innodb_log_buffer_size = 64M
  35. innodb_buffer_pool_size = 4G
  36. innodb_thread_concurrency = 8
  37. innodb_flush_method = O_DIRECT
  38. innodb_log_file_size = 512M
  39. [mysqld_safe]
  40. log-error=/var/log/mysqld.log
  41. pid-file=/var/run/mysqld/mysqld.pid
  42. 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个数据库及对应用户:

  1. mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  2. Query OK, 1 row affected (0.11 sec)
  3. mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  4. Query OK, 1 row affected (0.00 sec)
  5. mysql> CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  6. Query OK, 1 row affected (0.00 sec)
  7. mysql> CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  8. Query OK, 1 row affected (0.00 sec)
  9. mysql> GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';
  10. Query OK, 0 rows affected, 1 warning (0.16 sec)
  11. mysql> GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
  12. Query OK, 0 rows affected, 1 warning (0.00 sec)
  13. mysql> GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman';
  14. Query OK, 0 rows affected, 1 warning (0.00 sec)
  15. mysql> GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'hive';
  16. Query OK, 0 rows affected, 1 warning (0.00 sec)
  17. mysql> FLUSH PRIVILEGES;
  18. Query OK, 0 rows affected (0.00 sec)

查看授权是否正确:

  1. mysql> SHOW GRANTS FOR 'scm'@'%';
  2. +----------------------------------------------+
  3. | Grants for scm@% |
  4. +----------------------------------------------+
  5. | GRANT USAGE ON *.* TO 'scm'@'%' |
  6. | GRANT ALL PRIVILEGES ON `scm`.* TO 'scm'@'%' |
  7. +----------------------------------------------+
  8. 2 rows in set (0.00 sec)
  9. mysql> SHOW GRANTS FOR 'amon'@'%';
  10. +------------------------------------------------+
  11. | Grants for amon@% |
  12. +------------------------------------------------+
  13. | GRANT USAGE ON *.* TO 'amon'@'%' |
  14. | GRANT ALL PRIVILEGES ON `amon`.* TO 'amon'@'%' |
  15. +------------------------------------------------+
  16. 2 rows in set (0.00 sec)
  17. mysql> SHOW GRANTS FOR 'rman'@'%';
  18. +------------------------------------------------+
  19. | Grants for rman@% |
  20. +------------------------------------------------+
  21. | GRANT USAGE ON *.* TO 'rman'@'%' |
  22. | GRANT ALL PRIVILEGES ON `rman`.* TO 'rman'@'%' |
  23. +------------------------------------------------+
  24. 2 rows in set (0.00 sec)
  25. mysql> SHOW GRANTS FOR 'hive'@'%';
  26. +----------------------------------------------------------+
  27. | Grants for metastore@% |
  28. +----------------------------------------------------------+
  29. | GRANT USAGE ON *.* TO 'hive'@'%' |
  30. | GRANT ALL PRIVILEGES ON `metastore`.* TO 'hive'@'%' |
  31. +----------------------------------------------------------+
  32. 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离线安装的更多相关文章

  1. CDH6.1.0离线安装——笔记

    一. 概述 该文档主要记录大数据平台的搭建CDH版的部署过程,以供后续部署环境提供技术参考. 1.1 主流大数据部署方法 目前主流的hadoop平台部署方法主要有以下三种: Apache hadoop ...

  2. CDH6.2.0离线安装(详细)

    目录 01 准备工作 02 环境配置 03 CDH安装 报错 01 准备工作 官网地址下载页面:https://www.cloudera.com/downloads/cdh.html,现在下载好像需要 ...

  3. SharePoint 2016 必备组件离线安装介绍

    前言 SharePoint 必备组件安装,一直以来都是SharePoint安装过程中的最大的坑,尤其是不能联网的服务器.博主在这里简单介绍一下离线安装过程,并附组件包下载以及安装命令,并且在windo ...

  4. MYSQL离线安装

    由于MySQL的广泛应用,MySQL的安装也就成了大家经常会碰到的问题.并且由于不是所有机器都可连接外网,所以MySQL的离线安装显得比较重要.而本文旨在介绍CentOS6.6下离线安装MySQL. ...

  5. VS2010+Qt5.4.0 环境搭建(离线安装)

    原创作者:http://blog.csdn.net/solomon1558/article/details/44084969 前言 因项目需要Qt开发GUI,我根据网上资料及自己的经验整理了搭建vs2 ...

  6. 离线安装 Python 2.7, paramiko 和 tornado

    无非就是离线安装, 步骤比较繁琐, 记录一下. 需求很简单, 一个离线安装的 Python, 能跑 tornado 和 paramiko 1. 离线安装 Python 2.7 .tgz cd Pyth ...

  7. npm包与gem包--在线&离线安装

    目录 NPM 在线 离线 GEM 在线 离线 NPM NPM,即为Node的包管理工具,官网为 https://www.npmjs.com/,我们可以在站内搜索所需要的NPM包,了解相关的使用规则 安 ...

  8. Windows 8 下离线安装。net Framework 3.5

    Windows 8 下安装.net Framework 3.5 1)可以将直接双击ISO (或放入光盘/U盘)(安装文件在F盘) 2)使用管理员权限运行命令行程序 3)dism.exe /online ...

  9. Xamarin Mono For Android 4.6.07004 完整离线安装破解版(C#开发Android、IOS工具)

      Xamarin是由Miguel de Icaza成立的一家新的独立公司,目的是给Mono一个继续奋斗的机会.Mono for Android (原名:MonoDroid)可以让开发人员使用 Mic ...

随机推荐

  1. Linux最大线程数限制及当前线程数查询

    常用配置 echo > /proc/sys/kernel/pid_max a) 当前环境生效 ulimit -d unlimited ulimit -m unlimited ulimit -s ...

  2. linux学习思维导图(转)

    转自:https://blog.csdn.net/m1585761297/article/details/80017111 先附上一张学习路径的导图 导图一 导图二(一套) 1.Linux目录结构 2 ...

  3. python 插入html到数据库 re.escape() PyMysql

    python 把html 网页源码插入到mysql 成功,部分汉字乱码是 mysql编码问题

  4. 如何在github上创建仓库,并将本地的文件上传到对应的远程仓库

    1.安装git,可从 http://www.bootcss.com/p/git-guide/下载git 2.在github上创建仓库,注意不勾选Initialize this repository w ...

  5. Mybatis六(SSM框架)

    SSM三大框架整合详细教程(SPRING+SPRINGMVC+MYBATIS) 使用 SSM ( Spring . SpringMVC 和 Mybatis )已经有三个多月了,项目在技术上已经没有什么 ...

  6. hive 函数

    collect_set(x)   列转行函数---没有重复, 组装多列的数据的结构体collect_list(x) 列转行函数---可以有重复,组装多列的数据的结构体concat_ws 拼接函数, 用 ...

  7. 5. MYSQL问题:Access denied for user 'root'@'localhost' (using password:YES)

    开发Web项目时,连接MYSQL数据库,出现问题:Access denied for user 'root'@'localhost' (using password:YES).       解决方案: ...

  8. Node.js之process模块

    注意⚠️:process为nodejs内置对象,不需要实例化,改模块用来与当前进程进行互动,可以通过全局变量process访问,它是一个EventEmitter对象的实例. process对象提供一系 ...

  9. c# word操作

    合并单元格  http://www.360doc.com/content/11/0729/21/2097544_136620405.shtml

  10. 转载:Bootstrap 源码解析

    Bootstrap 源码解析 前言 Bootstrap 是个CSS库,简单,高效.很多都可以忘记了再去网站查.但是有一些核心的东西需要弄懂.个人认为弄懂了这些应该就算是会了.源码看一波. 栅格系统 所 ...