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. Solr进阶之Solr综合文本相似度的多因素权重排序实现

    现在有个需求是这样子的:需要计算搜索词的权重设置其为总排序权重的0.6,其他因素的权重为0.4其他因素中还有详细的划分.这里我们用Solr如何来实现?众所周知solr默认的排序方式为按照文本相似度来进 ...

  2. .NET Core和.NET Standard

    作为.NET家族的最新成员,有很多关于.NET Core和.NET Standard的误解,以及它们于.NET Framework之间的区别.在这篇文章,我会准确的解释他们究竟是什么,并看看何时应选择 ...

  3. Django之Models进阶操作(字段属性)

    字段属性详细介绍 一.字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列, ...

  4. mac中svn服务器的搭建以及如何在eclipse中使用

    mac自带了svn客户端和服务端功能. 1.查看svn版本 svnserve --version yintingtingdeMacBook-Pro:~ yintingting$ svnserve -- ...

  5. Java file方法的路径特性

    1.在flle方法里,直接写空白的路径,是会默认获取当前Java编译工作空间的路径. 例子如下: package example_1; import java.io.File; import java ...

  6. Impala SQL 使用小记

    1.  impala端创建的表,DROP. hive会自动同步到. 但是通过hive DROP时,数据还会在,只是表的元数据没有了. 所以完全DROP表,需要impala端的DROP 2. impal ...

  7. kubernets之endpoints

    注:本文整理自网络 endpoint endpoint是k8s集群中的一个资源对象,存储在etcd中,用来记录一个service对应的所有pod的访问地址.service配置selector,endp ...

  8. hadoop的client搭建-即集群外主机访问hadoop

    1增加主机映射(与namenode的映射一样): 增加最后一行  [root@localhost ~]# su - root1 [root@localhost ~]# vi /etc/hosts 12 ...

  9. SQL SERVER 查看mdf ldf文件路径

    SQL SERVER 查看mdf ldf文件路径 select filename from sysfiles

  10. html中控制Tab键的顺序

      在做项目中,需要控制html页面上登陆表单的按Tab键的顺序,代码如下: <tr>                         <td width="19%&quo ...