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

2019-09-20  本文已影响0人  虫儿飞ZLEI

官方说明

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 其他命令

bin/moonbox-cluster apps

2. 系统初始化

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

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

mount database mysql_test_test options(
    type 'mysql',
    url 'jdbc:mysql://ip:3306/database',
    user 'username',
    password 'password'
);
image.png
mount database oracle_test_orcl options(
    type 'oracle',
    url 'jdbc:oracle:thin:@ip:1521:database',
    user 'username',
    password 'password'
);
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,其他版本都可能出现问题

mount database kudu_test_default options(
    type 'kudu',
    kudu.master 'ip:7051'
);
image.png
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

上一篇下一篇

猜你喜欢

热点阅读