广告
返回顶部
首页 > 资讯 > 服务器 >docker搭建Hadoop CDH高可用集群实现
  • 491
分享到

docker搭建Hadoop CDH高可用集群实现

2024-04-02 19:04:59 491人浏览 猪猪侠
摘要

目录0. Docker安装1. 构建Centos-cdh镜像2. 容器安装ClouderaManager2.1 初始化环境2.2 配置中文环境变量2.3 设置NTP时间同步服务2.4 安装Mysql2.5 准备Cloudera-Manage

目录
  • 0. Docker安装

  • 1. 构建Centos-cdh镜像

  • 2. 容器安装ClouderaManager

    • 2.1 初始化环境

    • 2.2 配置中文环境变量

    • 2.3 设置NTP时间同步服务

    • 2.4 安装Mysql

    • 2.5 准备Cloudera-Manager安装包

    • 2.6 安装jdk

    • 2.7 启动前准备

  • 3. 配置CDH的worker节点

    • 3.1 创建多个worker容器

    • 3.2 环境配置

  • 4. CM管理平台创建CDH集群

    • 4.1 登陆CM管理平台

首先我们为了之后继续搭建软件,这里没有使用docker-compose,而是通过构建四台centos,再在里面搭建我们所需要的组件

宿主机最好提供10 GB的RAM,硬盘占用大概会在40G以上

本次采用的在线安装方式,cdh为6.3.2版本,系统为centos7.4, docker节点可以为任意多个,下文将以3个docker容器为示例进行展示。此方法也可用在docker swarm上,docker容器能够互连,网络互通即可

离线安装包地址:

链接: https://pan.baidu.com/s/1vMm0yMYya2vhbEabeJMPHQ 提取码: xbrx


0. docker安装

卸载(可选)

如果之前安装过旧版本的Docker,可以使用下面命令卸载:

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \	
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

安装docker

首先需要大家虚拟机联网,安装yum工具

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

然后更新本地镜像源:

# 设置docker镜像源
yum-config-manager \
    --add-repo \
    Https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 第二步     
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
# 第三步
yum makecache fast

然后输入命令:

yum install -y docker-ce

docker-ce为社区免费版本。稍等片刻,docker即可安装成功。


1. 构建Centos-cdh镜像

宿主机初始化

yum install -y wget   \
&& mkdir -p /etc/yum.repos.d/repo_bak   \
&& mv /etc/yum.repos.d2 * * * /usr/sbin/ntpdate ntp1.aliyun.com

启动ntp服务

systemctl start ntpd && \
systemctl enable ntpd &&  \
date


2.4 安装mysql

使用wget安装(也可以单独部署,单独部署这里不再赘述):

mkdir -p /root/hadoop__CHD/mysql \
&& wget -O /root/hadoop_CHD/mysql/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar \
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar \
&& ls /root/hadoop_CHD/mysql

使用wget会非常的慢,我们可以上传给宿主机,然后通过docker命令拷贝给centos-chd

# 前提是容器的/root/hadoop_CHD/mysql目录必须事先创建。
docker cp mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar {容器ID}:/root/hadoop_CHD/mysql

准备MySQL JDBC驱动

mkdir -p /root/hadoop_CHD/mysql-jdbc \
&& wget -O /root/hadoop_CHD/mysql-jdbc/mysql-connector-java-5.1.48.tar.gz \
https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz  \
&& ls /root/hadoop_CHD/mysql-jdbc


2.5 准备Cloudera-Manager安装包

这样下载很慢,建议用finalshell等工具直接从自己的电脑上上传到虚拟机中,直接连接宿主机的10022端口即可

mkdir -p /root/hadoop_CHD/cloudera-repos \
&& wget -O /root/hadoop_CHD/cloudera-repos/allkeys.asc \
https://arcHive.cloudera.com/cm6/6.3.0/allkeys.asc \
&& wget -O /root/hadoop_CHD/cloudera-repos/cloudera-manager-agent-6.3.0-1281944.el7.x86_64.rpm \
https://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/cloudera-manager-agent-6.3.0-1281944.el7.x86_64.rpm \
&& wget -O /root/hadoop_CHD/cloudera-repos/cloudera-manager-daemons-6.3.0-1281944.el7.x86_64.rpm \
https://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/cloudera-manager-daemons-6.3.0-1281944.el7.x86_64.rpm \
&& wget -O /root/hadoop_CHD/cloudera-repos/cloudera-manager-server-6.3.0-1281944.el7.x86_64.rpm \
https://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/cloudera-manager-server-6.3.0-1281944.el7.x86_64.rpm \
&& wget -O /root/hadoop_CHD/cloudera-repos/cloudera-manager-server-db-2-6.3.0-1281944.el7.x86_64.rpm \
https://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/cloudera-manager-server-db-2-6.3.0-1281944.el7.x86_64.rpm \
&& wget -O /root/hadoop_CHD/cloudera-repos/enterprise-debuginfo-6.3.0-1281944.el7.x86_64.rpm \
https://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/enterprise-debuginfo-6.3.0-1281944.el7.x86_64.rpm \
&& wget -O /root/hadoop_CHD/cloudera-repos/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm \
https://archive.cloudera.com/cm6/6.3.0/redhat7/yum/RPMS/x86_64/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm \
&& ll /root/hadoop_CHD/cloudera-repos

准备Parcel包

mkdir -p /root/hadoop_CHD/parcel \
&& wget -O /root/hadoop_CHD/parcel/ CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel \
https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel \
&& wget -O /root/hadoop_CHD/parcel/manifest.JSON \
https://archive.cloudera.com/cdh6/6.3.2/parcels/manifest.json \
&& ll /root/hadoop_CHD/parcel

搭建本地yum源

 yum -y install httpd createrepo  \
&& systemctl start httpd \
&& systemctl enable httpd \
&& cd /root/hadoop_CHD/cloudera-repos/ && createrepo . \
&& mv /root/hadoop_CHD/cloudera-repos /var/www/html/ \
&& yum clean all \
&& ll /var/www/html/cloudera-repos


2.6 安装jdk

yum install -y java-1.8.0-openjdk-devel.x86_64

查看一下:

java -version

jdk会默认安装在/usr/lib/JVM目录下:

这样安装没有配置JAVA_HOME,我们需要进一步配置,不然后面安装会报错

(
cat <> /etc/profile && source /etc/profile && java -version


2.7 启动前准备

安装配置MySQL数据库(采用docker独立安装跳过此步)

cd /root/hadoop_CHD/mysql/ \
&& tar -xvf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar \
&& yum install -y libaio nuMactl \
&& rpm -ivh mysql-commUnity-common-5.7.27-1.el7.x86_64.rpm \
&& rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm   \
&& rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm \
&& rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm \
&& rpm -ivh mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm \
&& echo character-set-server=utf8 >> /etc/my.cnf \
&& rm -rf /root/hadoop_CHD/mysql/ \
&& yum clean all \
&& rpm -qa |grep mysql

建数据库表

(
cat <> /root/c.sql

保存为:/root/c.sql

获取MySQL初始密码

systemctl start mysqld && grep passWord /var/log/mysqld.log | sed 's/.*(............)$/1/'

执行SQL脚本

mysql -u root -p

输入查询出的默认密码,然后执行:

source /root/c.sql

配置mysql jdbc驱动

$ mkdir -p /usr/share/java/
$ cd /root/hadoop_CHD/mysql-jdbc/   
$ tar -zxvf mysql-connector-java-5.1.48.tar.gz 
$ cp  /root/hadoop_CHD/mysql-jdbc/mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-bin.jar /usr/share/java/mysql-connector-java.jar 
$ rm -rf /root/hadoop_CHD/mysql-jdbc/ 
$ ls /usr/share/java/

这里有坑,就是这个驱动版本不能太高,刚开始我的是5.1.47的驱动,然后就会报错,换了5.1.6的就好了(手动上传),还有就是驱动不能带版本号

名字要为mysql-connector-java.jar

安装Cloudera Manager

(
cat <> /etc/yum.repos.d/cloudera-manager.repo \
&& yum clean all \
&& yum makecache \
&& yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server \
&& yum clean all \
&& rpm -qa | grep cloudera-manager

配置parcel库

cd /opt/cloudera/parcel-repo/;mv /root/hadoop_CHD/parcel2 * * * /usr/sbin/ntpdate ntp1.aliyun.com

启动ntp服务

systemctl start ntpd && \
systemctl enable ntpd &&  \
date

配置MySQL JDBC

这里为了防止出错,建议配置和master结点一样的驱动,且不要带版本号

mkdir -p /usr/share/java/

上传驱动即可

修改CM主机的host文件

这样我们可以很方便的使用后面的名字访问这些主机

echo "172.10.0.3      cdh01.hadoop cdh01" >> /etc/hosts
echo "172.10.0.4      cdh02.hadoop cdh02" >> /etc/hosts

这里我们还可以配置一下免密码登录


4. CM管理平台创建CDH集群


4.1 登陆CM管理平台

http://IP:7180/cmf/login 账号密码:admin/admin

欢迎界面

此面一直点击继续,需要同意条款的同意条款

然后就可以来到集群安装的欢迎界面

我们来安装集群

选择继续,并给集群起一个名字

设置主机地址: 172.10.0.[2-4]

选择存储

自定义存储库:http://172.10.0.2/cloudera-repos

Jdk安装

ssh凭据,密码为容器root用户的登录密码,此处为root

安装代理

安装大数据组件

集群状态检查

集群设置

选择你要安装的组件

选择好你要安装的大数据组件,然后点继续

这里如果选择了hive之类的组件,需要在cm结点上创建一个数据库,可以用组件名命名

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
grant all privileges on scm.* to scm@'localhost' identified by '密码';
grant all privileges on scm.* to scm@'%' identified by '密码';
grant all privileges on hive.* to hive@'localhost' identified by '密码';
grant all privileges on hive.* to hive@'%' identified by '密码';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
grant all privileges on hue.* to hue@'%' identified by '密码';
grant all privileges on hue.* to hue@'localhost' identified by '密码2';
CREATE DATABASE rm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
grant all privileges on rm.* to rm@'localhost' identified by '密码';
grant all privileges on rm.* to rm@'%' identified by '密码';
flush privileges;

红色表示必填的项目

Datanode-> /dfs/datanode

Namenode-> /dfs/namenode

hdfs检查点-> /dfs/checkpoint

NodeManager 本地目录-> /dfs/nodemanager

然后就等待集群构建完成!

到此这篇关于docker搭建Hadoop CDH高可用集群实现的文章就介绍到这了,更多相关docker Hadoop CDH高可用集群内容请搜索编程界以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程界!

--结束END--

本文标题: docker搭建Hadoop CDH高可用集群实现

本文链接: https://www.lsjlt.com/news/34155.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • docker搭建Hadoop CDH高可用集群实现
    目录0. docker安装1. 构建Centos-cdh镜像2. 容器安装ClouderaManager2.1 初始化环境2.2 配置中文环境变量2.3 设置NTP时间同步服务2.4 安装mysql2.5 准备Cloudera-Manage...
    99+
    2022-09-23
  • MySQL集群搭建实现高可用
    MySQL集群搭建实现高可用 MySQL集群概述和安装环境 MySQL Cluster是MySQL适合于分布式计算环境的高实用、高冗余版本。Cluster的汉语是"集群...
    99+
    2022-10-18
  • Docker上实现Redis集群搭建
    目录1、拉取镜像2、创建Redis容器3、启动并组建集群启动容器4、存在的问题环境:Docker + ( Redis:5.0.5 * 3 ) 1、拉取镜像 docker pull...
    99+
    2022-11-12
  • MongoDB高可用集群搭建
    MongoDB高可用集群搭建   MongoDB副本集搭建 准备三台服务器:   10.175.120.131(主节点)   10.175.121.134(副本节点)   10.175...
    99+
    2015-11-17
    MongoDB高可用集群搭建
  • 搭建高可用mongo集群
    简介:    MongoDB是一个可扩展、高性能的分布式文档存储数据库,由C 语言编写,旨在为web应用提供可扩展的高性能数据存储解决方案。它的特点是高性能、易部署、...
    99+
    2022-10-18
  • nginx搭建高可用集群的实现方法
    目录Keepalived+Nginx 高可用集群(主从模式)Keepalived+Nginx 高可用集群(主从模式) 集群架构图 1、准备两台装有Nginx虚拟机 2、都需安装Ke...
    99+
    2023-01-28
    nginx 高可用集群 nginx 高可用
  • docker搭建kafka集群的方法实现
    目录一、原生Docker命令二、镜像选择三、集群规划四、Zookeeper集群安装五、Kafka集群安装一、原生Docker命令 1. 删除所有dangling数据卷(即无用的Vol...
    99+
    2022-11-13
  • 搭建 MySQL 高可用高性能集群
    什么是MySQL集群,什么是MySQL集群,如果你想知道什么是MySQL集群,我现在就带你研究。 MySQL 是一款流行的轻量级数据库,很多应用都是使用它作为数据存储。作为小型应用的数据库,它完全可以胜任,但是如果是大型应用,高性能高...
    99+
    2015-11-09
    搭建 MySQL 高可用高性能集群
  • mysql高可用集群如何搭建
    要搭建MySQL高可用集群,可以按照以下步骤进行操作: 选择合适的集群架构:常用的MySQL集群架构有主从复制、主备切换和主主复...
    99+
    2023-10-24
    mysql
  • 搭建高可用MongoDB集群(分片)
    MongoDB基础请参考:https://blog.51cto.com/kaliarch/2044423MongoDB(replica set)请参考:https://blog.51cto.com/kali...
    99+
    2022-10-18
  • CentOS7怎么搭建高可用集群
    这篇文章主要讲解了“CentOS7怎么搭建高可用集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS7怎么搭建高可用集群”吧!一、安装集群软件必须软件pcs,pacemaker,c...
    99+
    2023-06-28
  • Docker-Compose搭建Spark集群的实现方法
    目录一、前言二、docker-compose.yml三、启动集群四、结合hdfs使用一、前言 在前文中,我们使用Docker-Compose完成了hdfs集群的构建。本文将继续使用D...
    99+
    2022-11-13
  • docker搭建es集群实现过程详解
    目录前言什么是es使用docker搭建es集群前言 该系列默认开启Nacos 服务,还不会搭建的小伙伴可以参考往期文章~ 本节重点是给大家介绍利用docker来搭建Es集群,废话...
    99+
    2023-01-31
    docker搭建es集群 es集群搭建
  • Docker-Compose搭建Redis集群的实现教程
    目录1. 集群配置2.编写Redis.conf3. 在每个redis-*文件夹下创建redis.conf文件,并写入如下内容:4.编写docker-compose.yml文件5.开启集群6.测试6.1 查看节点属性6.2...
    99+
    2023-03-24
    Docker-Compose搭建Redis集群
  • Redis高可用集群的搭建配置
    这篇文章将为大家详细讲解有关Redis高可用集群的搭建配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Redis的集群主从模型是一种高可用的集群架构。本章主要内容有:高...
    99+
    2022-10-18
  • MongoDB搭建高可用集群的案例
    小编给大家分享一下MongoDB搭建高可用集群的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、规划好端口ip ...
    99+
    2022-10-18
  • Redis5之后版本的高可用集群搭建的实现
    一、安装redis 1、安装gcc yum install gcc 2、下载redis-5.0.8.tar.gz 3、把下载好的redis-5.0.8.tar.gz放在/gyu...
    99+
    2022-11-12
  • docker实现redis集群搭建的方法步骤
    目录一、创建redis docker基础镜像 二、制作redis节点镜像 三、运行redis集群  引用:摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都...
    99+
    2022-11-12
  • 基于Docker搭建Redis主从集群的实现
    目录1、拉取 Redis 镜像2、创建 6 个 Redis 容器3、启动 Redis 容器4、组建 Redis 集群5、关于Redis集群搭建最近陆陆续续有不少园友加我好友咨询 re...
    99+
    2022-11-12
  • docker-compose搭建etcd集群的实现(三节点)
    目录1. 环境说明2. 部署etcd1etcd2etcd33. 验证3.1 查看集群状态3.2 读写测试1. 环境说明 节点IPetcd110.10.239.31etcd210.10...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作