基于Docker部署Spark和MinIO Server
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Docker部署Spark和MinIO Server相关的知识,希望对你有一定的参考价值。
参考技术A 使用Docker搭建Spark集群和MinIO云存储服务,并通过Spark访问MinIO,实现读写功能。MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 mysql。
详细资料参考 这里
本项目使用的docker-compose文件如下,根据docker-compose的内容,大致分为三个部分。
分布式MinIO可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式MinIO避免了单点故障。
详细参考 这里
Docker-compose中的 minio1-4 z组成MinIO分布式存储,对应存储服务的4个节点,每个节点使用相同的 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY 。部署成功后访问 http://127.0.0.1:9001/ ,输入 minio , minio123 即可看到如下界面(点击右下角可以创建bucket):
详细参考 这里
Docker-compose中的 spark-master , spark-worker 组成Spark集群。 spark-master 与 minio1 建立容器链接,后续需要Spark读写MinIO存储。部署成功后访问 http://127.0.0.1:8080/ 即可看到如下界面:
Saprk集群相关知识参考 这里
Docker-compose中的 minio-mc 对应MinIO Client。MinIO Client提供了一些命令如 ls, cat, cp, mirror, diff, find 等,实现与MinIO云存储服务的交互。 minio-mc 与 minio1 建立容器链接,后续需要使用 minio-mc 创建bucket。
MinIO Client的相关知识参考 链接1 , 链接2
Spark访问MinIO存储需要一些依赖包,具体参考 这里 。其中必须添加的两个jar包是: hadoop-aws-2.7.3 , aws-java-sdk-1.7.4 。
配置Spark集群参考 链接1 , 链接2 , 链接3 , 链接4 , 链接5
Centos7 部署 Minio
我尝试过直接使用docker 部署minio。
也运行成功了。
但是由于我的centos系统是在虚拟机中,docker运行在centos里。
出现了一些ip问题,我没搞定。
希望有会的朋友可以通知我一下。
一,先说一下docker部署吧
参考:https://www.jianshu.com/p/52dbc679094a
(说不定你没遇到我这个问题呢)
1,拉取镜像
docker pull minio/minio
2,启动
注意admin是账号,12345678是密码
docker run -p 9000:9000 --name minio
-d --restart=always
-e "MINIO_ACCESS_KEY=admin"
-e "MINIO_SECRET_KEY=12345678"
-v /home/data:/data
-v /home/config:/root/.minio
minio/minio server /data
会输出:
上面的2个地址,你直接访问就可以了。
(而我是因为运行在虚拟机,所以在虚拟机可以访问,但是外网机器无法访问到。。。。映射搞不定。)
二,Centos7 部署
参考:https://blog.csdn.net/llwy1428/article/details/99618252
1,创建目录
[root@localhost ~]# mkdir /opt/minio
[root@localhost ~]# mkdir /opt/minio/data
2,进入目录
[root@localhost ~]# cd /opt/minio
3,下载
[root@localhost ~]# wget https://dl.min.io/server/minio/release/linux-amd64/minio
4,赋权
[root@localhost ~]# chmod +x minio
6,关闭防火墙
#关闭防火墙
systemctl stop firewalld.service
#永久关闭防火墙
systemctl disable firewalld.service
6,设置账户/密码
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=12345678
7,启动minio(ctrl+c会退出!)
[root@localhost ~]# /opt/minio/minio server /opt/minio/data/
8,后台启动
但是ctrl+c后,就退出了。
因此我需要后台运行!
nohup /opt/minio/minio server /opt/minio/data/ > /opt/minio/data/minio.log 2>&1 &
9,检验
不知道为什么,centos中我装完,是这个界面。。。。好丑
和我windows安装的完全不一样。
10,关闭服务
#关闭minio
# 查看端口
netstat -lnpt |grep 端口
# 关闭PID
kill -9 PID
以上是关于基于Docker部署Spark和MinIO Server的主要内容,如果未能解决你的问题,请参考以下文章