MoonBox安装部署及接入多数据源示例

官方说明

Moonbox是一个DVtaaS(Data Virtualization as a Service)平台解决方案。
moonbox基于数据虚拟化设计思想,致力于提供批量计算服务解决方案。Moonbox负责屏蔽底层数据源的物理和使用细节,为用户带来虚拟数据库般使用体验,用户只需通过统一SQL语言,即可透明实现跨异构数据系统混算和写出。此外Moonbox还提供数据服务、数据管理、数据工具、数据开发等基础支持,可支撑更加敏捷和灵活的数据应用架构和逻辑数仓实践。

分布式部署并接入多种数据源(mysql、oracle、elasticsearch、hive、kudu、Presto、mongodb等),可直接查询多种数据源,有点类似XSQL

1. 安装部署

1.1 环境依赖

Apache Spark 2.2.0

关于spark版本的说明:
目前为止,仅支持Spark 2.2.0,本人也尝试在2.3中使用,确实无法使用。

1.2 下载并解压相关文件

下载地址:
https://github.com/edp963/moonbox/releases/tag/0.3.0-beta

解压:
tar -zxvf moonbox-assembly_2.11-0.3.0-beta-dist.tar.gz

解压后的文件目录

由于是多节点部署,需要将此拷贝到每一个需要安装的节点中去。

1.3 修改相关配置文件

1.3.1 修改slaves

此文件用来配置每个部署节点的host

mv conf/slaves.example conf/slaves
vim conf/slaves

centos1
centos2
centos3

1.3.2 修改moonbox-env.sh

mv moonbox-env.sh.example moonbox-env.sh
chmod u+x moonbox-env.sh
vim moonbox-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_201
export SPARK_HOME=/opt/spark
export YARN_CONF_DIR=/etc/hadoop

export MOONBOX_SSH_OPTS="-p 22"

export MOONBOX_HOME=/opt/moonbox
# export MOONBOX_LOCAL_HOSTNAME=localhost
export MOONBOX_MASTER_HOST=centos1

export MOONBOX_MASTER_PORT=2551

MOONBOX_MASTER_HOST声明主节点

1.3.3 修改moonbox-defaults.conf

mv moonbox-defaults.conf.example moonbox-defaults.conf
vim moonbox-defaults.conf

moonbox {
    deploy {
        catalog {
            implementation = "mysql"
            url = "jdbc:mysql://ip:port/moonbox?createDatabaseIfNotExist=true"
            user = "username"
            password = "password"
            driver = "com.mysql.jdbc.Driver"
        }
        rest {
            enable = true
            port = 9090
            request.timeout = "600s"
            idle.timeout= "600s"
        }
        tcp {
            enable = true
            port = 10010
        }
    }
    mixcal {
        pushdown.enable = true
        column.permission.enable = false
        spark.sql.cbo.enabled = true
        spark.sql.constraintPropagation.enabled = false

        local = [{}]
        cluster = [{
          spark.hadoop.yarn.resourcemanager.hostname = "centos1"
          spark.hadoop.yarn.resourcemanager.address = "centos1:8032"
          spark.yarn.stagingDir = "hdfs://centos1:8020/tmp"
          spark.yarn.access.namenodes = "hdfs://centos1:8020"
          spark.loglevel = "ERROR"
          spark.cores.max = 2
          spark.yarn.am.memory = "512m"
          spark.yarn.am.cores = 1
          spark.executor.instances = 2
          spark.executor.cores = 1
          spark.executor.memory = "2g"
          #### HDFS HA ####
        }]
    }

1.4 启动集群

在master节点执行
sbin/start-all.sh

image.png

1.5 其他命令

  • 停止集群
    在master节点执行
    sbin/stop-all.sh

  • 检查集群是否成功启动
    jps | grep Moonbox

  • 在worker节点执行如下命令, 将会看到与配置文件对应个数的 SparkSubmit 进程
    jps -m | grep Spark

  • 使用moonbox-cluster命令查看集群信息
    bin/moonbox-cluster workers

    image.png

bin/moonbox-cluster apps

2. 系统初始化

  • 使用ROOT账号登录
    bin/moonbox-shell -u ROOT -p 123456 -r local

  • 创建organization
    create org org_test;

  • 在organization中创建管理员
    create sa sally in org org_test identified by 123456

  • 退出ROOT账号
    exit

3. 接入多个数据源并测试

首先登入
bin/moonbox-shell -u sally -p 123456

  • 挂载mysql数据库
mount database mysql_test_test options(
    type 'mysql',
    url 'jdbc:mysql://ip:3306/database',
    user 'username',
    password 'password'
);
image.png
  • 挂载oracle数据库
mount database oracle_test_orcl options(
    type 'oracle',
    url 'jdbc:oracle:thin:@ip:1521:database',
    user 'username',
    password 'password'
);
  • 挂载elasticsearch数据库
mount database es5_test_default options(
    type 'es',
    es.nodes 'ip1:9300,ip2:9300,ip3:9300',
    es.port '9200',
    es.resource 'indexname'
);

es版本有问题,除了5.3,其他版本都可能出现问题

  • 挂载kudu数据库
mount database kudu_test_default options(
    type 'kudu',
    kudu.master 'ip:7051'
);
image.png
  • 挂载hive数据库
mount database hive_test_default options(
    type 'hive',
    metastore.url 'jdbc:mysql://ip:3306/hive',
    metastore.driver 'com.mysql.jdbc.Driver',
    hivedb 'hive',
    metastore.user 'username',
    metastore.password 'password'
);
image.png
  • 查询数据


后话

更多内容可参考官方文档:https://edp963.github.io/moonbox/

关于moonbox,可以看到局限性比较大,对环境要求比较严格,比如spark版本只支持2.3,挂载数据源的时候es版本也只支持5.3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 版权声明:原创作品,谢绝转载!否则将追究法律责任。 楔子 我是在2013年底第一次听说Spark,当时我对Scal...
    李伟铭MIng阅读 4,898评论 0 4
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 4,406评论 0 5
  • 个人主页:http://www.linbingdong.com 简介 本文主要记录如何安装配置Hive on Sp...
    Jeffbond阅读 23,950评论 22 30
  • 我听见海岛的芭蕉树在欢唱, 听见大草原的风在咆哮, 听见高空的太阳在畅想, 听不见自己的心跳。 我遇见波澜的海在滚...
    逢二进一Glassman阅读 304评论 1 8
  • 现在是二零一九年2月1日下午14:43,今天的阳光正好,太阳晒得人暖暖的,老妈坐在跑步机上翻着书,老弟在自己房间写...
    阿茵呐阅读 166评论 0 0

友情链接更多精彩内容