利用Docker快速部署hadoop、hive和spark

这篇具有很好参考价值的文章主要介绍了利用Docker快速部署hadoop、hive和spark。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、配置文件yml

1.docker-compose.yml

version: '3.4' 
services:
  namenode:
    image: test/hadoop-namenode:1.1.0-hadoop2.8-java8
    container_name: namenode
    volumes:
      - ./data/namenode:/hadoop/dfs/name
    environment:
      - CLUSTER_NAME=test
    env_file:
      - ./hadoop-hive.env
    ports:
      - 50070:50070
      - 8020:8020
      - 5005:5005

  resourcemanager:
    image: test/hadoop-resourcemanager:1.1.0-hadoop2.8-java8
    container_name: resourcemanager
    environment:
      - CLUSTER_NAME=test
    env_file:
      - ./hadoop-hive.env
    ports:
      - 8088:8088
    depends_on: 
      - datanode

  historyserver:
    image: test/hadoop-historyserver:1.1.0-hadoop2.8-java8
    container_name: historyserver
    environment:
      - CLUSTER_NAME=test
    env_file:
      - ./hadoop-hive.env
    ports:
      - 8188:8188

  datanode:
    image: test/hadoop-datanode:1.1.0-hadoop2.8-java8
    container_name: datanode
    depends_on: 
      - namenode
    volumes:
      - ./data/datanode:/hadoop/dfs/data
    env_file:
      - ./hadoop-hive.env
    ports:
      - 50075:50075
      - 50010:50010

  nodemanager:
    image: test/hadoop-nodemanager:1.1.0-hadoop2.8-java8
    container_name: nodemanager
    hostname: nodemanager
    environment:
      - CLUSTER_NAME=test
    env_file:
      - ./hadoop-hive.env
    ports:
      - 8042:8042

  hive-server:
    image: test/hive:2.1.0-postgresql-metastore
    container_name: hive-server
    env_file:
      - ./hadoop-hive.env
    environment:
      - "HIVE_CORE_CONF_javax_jdo_option_ConnectionURL=jdbc:postgresql://hive-metastore/metastore"
    ports:
      - "10000:10000"

  hive-metastore:
    image: test/hive:2.1.0-postgresql-metastore
    container_name: hive-metastore
    env_file:
      - ./hadoop-hive.env
    command: /opt/hive/bin/hive --service metastore
    ports:
      - 9083:9083

  #hive的元数据存储到postgresql
  hive-metastore-postgresql:
    image: test/hive-metastore-postgresql:2.1.0
    container_name: hive-metastore-postgresql
    ports:
      - 5432:5432
    #win10直接挂载存在权限问题,只能使用name volume
    volumes:
      - hive-metastore-postgresql:/var/lib/postgresql/data

  spark-master:
    image: test/spark-master:2.1.0-hadoop2.8-hive-java8
    container_name: spark-master
    hostname: spark-master
    volumes:
      - ./copy-jar.sh:/copy-jar.sh
    ports:
      - 8888:8080
      - 7077:7077
    env_file:
      - ./hadoop-hive.env
    volumes:
      - ./hive-site.xml:/spark/conf/hive-site.xml   #spark连接hive的配置文件

  spark-worker:
    image: test/spark-worker:2.1.0-hadoop2.8-hive-java8
    container_name: spark-worker
    depends_on:
      - spark-master
    environment:
      - SPARK_MASTER=spark://spark-master:7077
    ports:
      - "8181:8081"
    env_file:
      - ./hadoop-hive.env
      
  mysql-server:
    image: mysql:5.7
    container_name: mysql-server
    ports:
      - "3606:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    volumes:
      - ./data/mysql:/var/lib/mysql   #数据挂载到当前目录下的data/mysql文件夹

  elasticsearch:
    image: elasticsearch:7.5.2
    container_name: elasticsearch
    environment:
#      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ports:
      - "9200:9200"
      - "9300:9300"
    volumes:
      - es1:/usr/share/elasticsearch/data
      - ./conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      
  kibana:
    image: kibana:7.5.2
    container_name: kibana
    ports:
      - "5601:5601"

  redis:
    image: redis
    container_name: redis
    ports:
      - "6379:6379"
  
  server:
    image: openjdk:8-jre-slim
    command: java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar /app.jar
    ports:
      - "8000:8080"
      - "5555:5005"
    volumes:
      - ./application.yml:/application.yml:ro
      - ./spark-itags-1.0-SNAPSHOT.jar:/app.jar:ro
    environment:
      - TZ=Asia/Shanghai     #配置容器时区,默认UTC
      - spring.profiles.active=development
    restart: "no"
    depends_on:
      - redis

volumes:
  hive-metastore-postgresql:
    driver: local
  es1:
    driver: local

二、执行脚本

1.启动脚本run.sh

#!/bin/bash

docker-compose -f docker-compose.yml up -d namenode hive-metastore-postgresql
docker-compose -f docker-compose.yml up -d datanode hive-metastore
docker-compose -f docker-compose.yml up -d resourcemanager
docker-compose -f docker-compose.yml up -d nodemanager
docker-compose -f docker-compose.yml up -d historyserver
sleep 5
docker-compose -f docker-compose.yml up -d hive-server
docker-compose -f docker-compose.yml up -d spark-master spark-worker
docker-compose -f docker-compose.yml up -d mysql-server
docker-compose -f docker-compose.yml up -d elasticsearch
docker-compose -f docker-compose.yml up -d kibana
#选取并输出本机ip
my_ip=`ip route get 1|awk '{print $NF;exit}'`      #$NF 表示的最后一个Field(列),即输出最后一个字段的内容
echo "Namenode: http://${my_ip}:50070"
echo "Datanode: http://${my_ip}:50075"
echo "Spark-master: http://${my_ip}:8080"
docker-compose exec spark-master bash -c "./copy-jar.sh && exit"

2.关闭脚本stop.sh

#!/bin/bash
docker-compose stop

文章来源地址https://www.toymoban.com/news/detail-545065.html

到了这里,关于利用Docker快速部署hadoop、hive和spark的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Hadoop高可用集群]数仓工具之Hive的安装部署(超级详细,适用于初学者)

    📕作者:喜欢水星记 🏆系列:Hadoop高可用集群 🔋收藏:本文记录我搭建过程供大家学习和自己之后复习,如果对您有用,希望能点赞收藏加关注 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转

    2024年02月05日
    浏览(57)
  • docker容器中快速部署ES集群的详细操作步骤(6个节点)

    ElasticSearch集群 1.集群原理 ElasticSearch是天生支持集群的,他不需要依赖其他的服务发现和注册的组件,如zookeeper这些,因为他内置了一个名字叫ZenDiscovery的模块,是ElasticSearch自己实现的一套用于节点发现和选主等功能的组件,所以ElasticSearch做起集群来非常简单,不需要太多

    2024年02月09日
    浏览(51)
  • Docker 基础知识解析:容器与传统虚拟化对比:资源利用、启动时间、隔离性和部署效率

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月16日
    浏览(54)
  • 群晖NAS教程(十七)、利用Docker安装网心云容器魔方

    为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客 群晖NAS教程(十七)、利用Docker安装网心云容器魔方 个人博客 一、群晖docker套件中安装onething1/wxedge镜像。 二、wxedge容器启动项配置 容器名称随便起,并启用高级执行权限,然后配置高级设置。 启用自动重启 在群晖

    2024年02月04日
    浏览(89)
  • 简单易懂的Docker下载安装教程:快速上手容器化应用

    Docker 是一种用于容器化应用程序的开源平台,可以简化应用程序的开发、测试和部署过程。以下是 Docker 在常见操作系统上的下载安装教程。 步骤 1:下载 Docker Desktop 在 Windows 系统上,Docker 提供了一个名为 Docker Desktop 的图形界面工具,可以方便地进行 Docker 安装和管理。在

    2024年02月01日
    浏览(50)
  • ubuntu安装教程及docker安装容器,前后端部署

    1.0、Linux的常用命令 1.1、虚拟机安装Ubuntu20.0.4 1、 2、 3、 4、 5、 6、 7、 8、待补充 9、默认选择 10、 11、 12、 13、 14、 15、修改完成后,点击上面的完成。 16、 17、语言建议英文 防止中文出现问题-----问题可能会有 18、 19、 20、 21、 22、 23、 24、不能使用root用户创建,改回别

    2024年02月04日
    浏览(46)
  • Zabbix最简易安装部署:基于docker容器

    zabbix 读音: 正确读法: [`zæbiks] ,中文发音:擦日阿(ra)贝克斯 zabbix 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在

    2024年02月12日
    浏览(51)
  • 【Docker】contos7安装 Nacos容器部署单个&&部署集群

                                      🎉🎉欢迎来到我的CSDN主页!🎉🎉                     🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚     🌟推荐给大家我的博客专栏《Docker】contos7安装 Nacos容器部署单个部署集群》。🎯🎯                  

    2024年01月23日
    浏览(45)
  • 【Docker安装】快速部署Docker环境

    2023年07月07日
    浏览(42)
  • Docker安装Nginx并部署&MySQL容器构建

    将配置文件上传到conf文件夹(数据库配置文件已放到置顶资源中) /soft/mysql/conf/my.cnf:/etc/my.cnf目录为我们配置绑定的目录 /soft/mysql/data:/var/lib/mysql 是将data目录与MySQL目录进行绑定 进入到我们的MySQL容器中(m1为容器名)  进入容器后登录到MySQL 输入密码后进入到MySQL赋予权限 

    2024年01月19日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包