百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

CentOS 7 安装 CDH6.2.0

bigegpt 2024-08-18 14:03 2 浏览

本教程为离线安装版本,在线安装太费时间了,本教程是本人根据官方文档亲自操作完成,中间踩过坑,趟过雷,现把过程记录一下。

一、准备工作

1、准备四台电脑

192.168.1.101 node1 2CPU 8G内存 50G硬盘
192.168.1.102 node2 2CPU 2G内存 50G硬盘
192.168.1.103 node3 2CPU 2G内存 50G硬盘
192.168.1.104 mysql.node 2CPU 1G内存 50G硬盘
所有电脑禁用防火墙
systemctl stop firewalld
systemctl disable firewalld

2、离线文件下载

  • CM 6.2.0
下载地址:
https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPMS/x86_64/cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPMS/x86_64/cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/RPMS/x86_64/cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm
  • CDH 6.2.0
下载地址:
https://archive.cloudera.com/cdh6/6.2.0/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel
https://archive.cloudera.com/cdh6/6.2.0/parcels/manifest.json
https://archive.cloudera.com/cdh6/6.2.0/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1
  • JDK1.8.0_212
准备 linux JDK: jdk-8u212-linux-x64.tar.gz

二、配置hostname及hosts

1、在node1上执行以下命令

#将主机名改为node1
> hostnamectl set-hostname node1
# 编辑 /etc/hosts文件,增加以下行
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
192.168.1.104 mysql.node

2、在node2上执行以下命令

#将主机名改为node2
> hostnamectl set-hostname node2
# 编辑 /etc/hosts文件,增加以下行
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
192.168.1.104 mysql.node

3、在node3上执行以下命令

#将主机名改为node3
> hostnamectl set-hostname node3
# 编辑 /etc/hosts文件,增加以下行
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
192.168.1.104 mysql.node

4、在mysql.node上执行以下命令

> hostnamectl set-hostname mysql.node
# 编辑 /etc/hosts文件,增加以下行
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
192.168.1.104 mysql.node

三、JDK安装

分别在 node1、node2、node3电脑上安装JDK,JDK 要求

  • 必需是64位
  • 必需1.8及以上
  • 相同版本的JDK安装在所有的集群电脑上
  • 必需安装在 /usr/java/目录下

四、配置免密登录

1、分别在node1、node2、node3 机器上生成密钥对

# 进入用户主目录
> cd ~
# 生成密钥对
> ssh-keygen -t rsa
然后一路回车键

2、在node1上执行

# 进入.ssh
> cd ~/.ssh
# 把本机的公钥追加到自身的~/.ssh/authorized_keys文件里
> ssh-copy-id node1
# 将authorized_keys文件复制到第二台主机
> scp ~/.ssh/authorized_keys node2:~/.ssh/

3、在node2上执行

> cd ~/.ssh
> ssh-copy-id node2
> scp ~/.ssh/authorized_keys node3:~/.ssh/

4、在node3上执行

> cd ~/.ssh
> ssh-copy-id node3
> scp ~/.ssh/authorized_keys mysql.node:~/.ssh/

5、在mysql.node上执行

> cd ~/.ssh
> ssh-copy-id mysql.node
> scp ~/.ssh/authorized_keys node1:~/.ssh/
> scp ~/.ssh/authorized_keys node2:~/.ssh/
> scp ~/.ssh/authorized_keys node3:~/.ssh/

6、免密码ssh配置完成

五、安装Cloudera Manager Server

1、将下载下来的cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm、cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm、cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm上传到 node1电脑/tmp目录下

2、node1上安装cloudera-manager-daemons、cloudera-manager-agent、cloudera-manager-server

> cd /tmp
> yum -y localinstall cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
> yum -y localinstall cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
> yum -y localinstall cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm

3、node2、node3 上只安装cloudera-manager-daemons、cloudera-manager-agent,把这两个安装文件上传到 node2、node3 /tmp目录下

> cd /tmp
> yum -y localinstall cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
> yum -y localinstall cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm

4、将以下文件拷贝到node1 /opt/cloudera/parcel-repo 目录下,安装CDH 本地源

CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel
manifest.json
CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1
CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1 将此文件重命名为
CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha

5、修改node1、node2、node3电脑中 /etc/cloudera-scm-agent/config.ini文件

将文件中 server_host=localhost 改为 server_host=node1

六、安装MySQL数据库

1、在mysql.node电脑上安装Mysql

# 如果电脑中没有 wget工具
> yum -y install wget
> wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
> rpm -ivh mysql-community-release-el7-5.noarch.rpm
> yum install mysql-server

2、按照官方的建议,将/etc/my.cnf文件内容更改为以下配置

[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

3、将mysql设置为开机启动

> systemctl enable mysqld

4、启动Mysql server

> systemctl start mysqld

5、运行/usr/bin/mysql_secure_installation设置MySQL root密码和其他安全相关设置。

> /usr/bin/mysql_secure_installation
[...]
Enter current password for root (enter for none):
OK, successfully used password, moving on...
[...]
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
[...]
Disallow root login remotely? [Y/n] N
[...]
Remove test database and access to it [Y/n] Y
[...]
Reload privilege tables now? [Y/n] Y
All done!

6、Mysql安装完成

7、为Cloudera 软件创建相应的数据库及用户

mysql> CREATE USER '<user>' IDENTIFIED BY '<password>';
mysql> CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> GRANT ALL ON <database>.* TO '<user>'@'%' IDENTIFIED BY '<password>';

注:可能Mysql会无法远程连接,如果无法连接请进行以下步骤

> mysql -uroot -p[password]
mysql> show databases;
mysql> use mysql;
mysql> select host from user where user = 'root';
mysql> update user set host='%' where user='root' and host='localhost';
mysql> exit

七、Cloudera Manager Server 连接数据库

1、在node1上,提供JDBC连接驱动

这里提供的是 mysql-connector-java-5.1.46.jar,
将此文件放到 node1电脑/usr/share/java/(必需这个目录)目录下,
并重命名为mysql-connector-java.jar

2、Cloudera Manager Server 提供了一个脚本来配置数据库

> /opt/cloudera/cm/schema/scm_prepare_database.sh [options] <databaseType> <databaseName> <databaseUser> <password>
  • databaseType: [mysql | oracle | postgresql]
  • databaseName: 数据库名
  • databaseUser: 数据库用户名
  • password: 数据库密码

3、如果Mysql和Cloudera Manager Server 在同一台机器上,则执行以下命令

# 此示例假定您已创建Cloudera Management Server数据库和数据库用户,同时命名为scm:
> /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
Enter SCM password:
...
[main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!

4、如果Mysql和Cloudera Manager Server 不在同一台机器上,则执行以下命令

# 本教程为不同机器安装,所以执行这个命令
> /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h mysql.node --scm-host node1 scm scm
Enter database password:
...
[main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!

八、启动Cloudera Manager Server 和 Agent

1、启动 Cloudera Manager Server

> systemctl start cloudera-scm-server

2、执行以下命令可以查看server日志

> tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

当看到此日志条目时,Cloudera Manager管理控制台已准备就绪:

INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.

3、分别在 node1、node2、node3 上启动agent

> systemctl start cloudera-scm-agent

4、执行以下命令查看agent日志

> tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log

5、在浏览器中打开 http://<server_host>:7180, 默认用户名、密码:admin

6、登录成功,配置集群,结束

相关推荐

悠悠万事,吃饭为大(悠悠万事吃饭为大,什么意思)

新媒体编辑:杜岷赵蕾初审:程秀娟审核:汤小俊审签:周星...

高铁扒门事件升级版!婚宴上‘冲喜’老人团:我们抢的是社会资源

凌晨两点改方案时,突然收到婚庆团队发来的视频——胶东某酒店宴会厅,三个穿大红棉袄的中年妇女跟敢死队似的往前冲,眼瞅着就要扑到新娘的高额钻石项链上。要不是门口小伙及时阻拦,这婚礼造型团队熬了三个月的方案...

微服务架构实战:商家管理后台与sso设计,SSO客户端设计

SSO客户端设计下面通过模块merchant-security对SSO客户端安全认证部分的实现进行封装,以便各个接入SSO的客户端应用进行引用。安全认证的项目管理配置SSO客户端安全认证的项目管理使...

还在为 Spring Boot 配置类加载机制困惑?一文为你彻底解惑

在当今微服务架构盛行、项目复杂度不断攀升的开发环境下,SpringBoot作为Java后端开发的主流框架,无疑是我们手中的得力武器。然而,当我们在享受其自动配置带来的便捷时,是否曾被配置类加载...

Seata源码—6.Seata AT模式的数据源代理二

大纲1.Seata的Resource资源接口源码2.Seata数据源连接池代理的实现源码3.Client向Server发起注册RM的源码4.Client向Server注册RM时的交互源码5.数据源连接...

30分钟了解K8S(30分钟了解微积分)

微服务演进方向o面向分布式设计(Distribution):容器、微服务、API驱动的开发;o面向配置设计(Configuration):一个镜像,多个环境配置;o面向韧性设计(Resista...

SpringBoot条件化配置(@Conditional)全面解析与实战指南

一、条件化配置基础概念1.1什么是条件化配置条件化配置是Spring框架提供的一种基于特定条件来决定是否注册Bean或加载配置的机制。在SpringBoot中,这一机制通过@Conditional...

一招解决所有依赖冲突(克服依赖)

背景介绍最近遇到了这样一个问题,我们有一个jar包common-tool,作为基础工具包,被各个项目在引用。突然某一天发现日志很多报错。一看是NoSuchMethodError,意思是Dis...

你读过Mybatis的源码?说说它用到了几种设计模式

学习设计模式时,很多人都有类似的困扰——明明概念背得滚瓜烂熟,一到写代码就完全想不起来怎么用。就像学了一堆游泳技巧,却从没下过水实践,很难真正掌握。其实理解一个知识点,就像看立体模型,单角度观察总...

golang对接阿里云私有Bucket上传图片、授权访问图片

1、为什么要设置私有bucket公共读写:互联网上任何用户都可以对该Bucket内的文件进行访问,并且向该Bucket写入数据。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可...

spring中的资源的加载(spring加载原理)

最近在网上看到有人问@ContextConfiguration("classpath:/bean.xml")中除了classpath这种还有其他的写法么,看他的意思是想从本地文件...

Android资源使用(android资源文件)

Android资源管理机制在Android的开发中,需要使用到各式各样的资源,这些资源往往是一些静态资源,比如位图,颜色,布局定义,用户界面使用到的字符串,动画等。这些资源统统放在项目的res/独立子...

如何深度理解mybatis?(如何深度理解康乐服务质量管理的5个维度)

深度自定义mybatis回顾mybatis的操作的核心步骤编写核心类SqlSessionFacotryBuild进行解析配置文件深度分析解析SqlSessionFacotryBuild干的核心工作编写...

@Autowired与@Resource原理知识点详解

springIOCAOP的不多做赘述了,说下IOC:SpringIOC解决的是对象管理和对象依赖的问题,IOC容器可以理解为一个对象工厂,我们都把该对象交给工厂,工厂管理这些对象的创建以及依赖关系...

java的redis连接工具篇(java redis client)

在Java里,有不少用于连接Redis的工具,下面为你介绍一些主流的工具及其特点:JedisJedis是Redis官方推荐的Java连接工具,它提供了全面的Redis命令支持,且...