介绍
不水文,不过多赘述:
部署
docker部署就先不提了,官方有提供一键安装脚本,具体没有尝试,这里只谈本地开发环境的部署,dataease版本v1.11。
部署前的环境准备
- Java 1.8 +
- Mysql 5.7 (官方推荐
- Maven
- NodeJS 12 +
- Docker
后端服务
git clone <https://github.com/dataease/dataease>
git checkout v1.11
修改配置文件 [dataease.properties](<http://dataease.properties>)
, 需保证当前用户有 /opt/dataease
目录所有权限:
mkdir -p /opt/dataease/conf
vim /opt/dataease/conf/dataease.properties
把这些copy进去,192.168.1.8换成自己本机ip,切记不要用127.0.0.1!mysql配置改成自己本地的,carte和doris配置先忽略:
spring.datasource.url=jdbc:mysql://192.168.1.8:3306/dataease?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
carte.host=192.168.1.8
carte.port=18080
carte.user=cluster
carte.passwd=cluster
doris.db=dataease
doris.user=root
doris.password=Password123@doris
doris.host=192.168.1.8
doris.port=9030
doris.httpPort=8030
#新建用户初始密码
dataease.init_password=DataEase123456
#登录超时时间单位min 如果不设置 默认8小时也就是480
dataease.login_timeout=480
logger.level=INFO
maven的setting.xml也建议不要用镜像,直接从maven中央仓拉取,防止有些镜像not found。什么?嫌中央仓库慢?不会吧不会吧,不会还有人没有翻墙工具吧!
在安装主项目依赖之前,先安装dataease官方依赖模块:
git clone <https://github.com/dataease/dataease-extension-sdk.git>
cd dataease-extension-sdk && mvn install
值得一提,在模块 frontend
和 mobile
的pom会自动安装node相关环境, backend
的pom会寻找客户端打包后的静态资源文件。本人建议这些配置统统注释掉,前后分离干干净净的多好。万事具备,只欠东风,开始拉依赖:
cd dataease
mvn install
前面操作都成功以后,进入 backend
模块中,运行 src/main/java/io/dataease
下的 Application
主函数即可,或者运行:
java -jar backend/target/backend-1.11.1.jar
前端服务
相对简单,保证node环境没问题,另外安装好 yarn
工具:
npm install yarn -g
进入 frontend
文件夹中,运行:
yarn serve
看到如下日志就代表成功了,可以试试能不能访问:
App running at:
- Local: <http://localhost:9528/>
- Network: <http://192.168.1.8:9528/>
默认账号密码:admin/dataease
Kettle和Doris
完成前两步操作,就表示你已经可以使用直连数据集进行你的BI分析了,如果你不愿意止步于此,那就开启Kettle和Doris的大门。
对应的目录也需要提前创建起来:
mkdir -p /opt/dataease/conf
mkdir -p /opt/dataease/data/kettle
mkdir -p /opt/dataease/data/fe
mkdir -p /opt/dataease/data/be
mkdir -p /opt/dataease/logs
下载官方installer仓库:
git clone <https://github.com/dataease/installer.git>
将默认配置复制过去:
d installer/dataease/templates && cp -rp fe.conf be.conf .kettle /opt/dataease/conf && cd -
找个你喜欢的目录创建 docker-compose.yaml
:
version: '2.1'
services:
doris-fe:
image: registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15
container_name: doris-fe
ports:
- 8030:8030
- 9030:9030
environment:
- DORIS_ROLE=fe-leader
volumes:
- /opt/dataease/data/fe:/opt/doris/fe/doris-meta
- /opt/dataease/logs/fe:/opt/doris/fe/log
- /opt/dataease/conf/fe.conf:/opt/doris/fe/conf/fe.conf
networks:
dataease-network:
ipv4_address: 172.88.0.198
restart: always
doris-be:
image: registry.cn-qingdao.aliyuncs.com/dataease/doris:0.15
container_name: doris-be
environment:
- DORIS_ROLE=be
volumes:
- /opt/dataease/data/be:/opt/doris/be/storage
- /opt/dataease/logs/be:/opt/doris/be/log
- /opt/dataease/conf/be.conf:/opt/doris/be/conf/be.conf
networks:
dataease-network:
ipv4_address: 172.88.0.199
restart: always
kettle:
image: registry.cn-qingdao.aliyuncs.com/dataease/kettle:8.3-v1.2
container_name: kettle
ports:
- 18080:18080
volumes:
- /opt/dataease/conf/:/opt/dataease/conf
- /opt/dataease/data/kettle:/opt/dataease/data/kettle
networks:
- dataease-network
restart: always
networks:
dataease-network:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.88.0.0/16
gateway: 172.88.0.1
一般情况下,fe.conf和be.conf都不需要改什么东西,启动:
docker-compose up -d
至此,改启动的服务都启动了,当然,这是最理想的情况。但往往事与愿违,人生就是如此,不经历一些沧桑就很难得到真正想要的东西。
常见问题
当我们一步一步走到这里,我们已经有了扎实的根基,于是我们准备开开心心的使用dataease,就在此时,啪的一下!
创建 Excel 数据集或定时同步类型的数据集时,提示 "Access denied for user 'root'(using password:YES)
Failed to find enough host with storage medium and tag(HDD/{"location" : "default"}) in all backends. need: 1
Error connecting to database: (using class org.gjt.mm.mysql.Driver) The statement (1) has no open cursor
数据源不要用localhost或者127.0.0.1,因为kattle是以docker镜像的形式部署,它访问不到的
数据源API post 报错 HttpClient查询失败: Unsupported Media Type
可以先看下官方有没有修复:github.com/dataease/da…
急性子可以自己改源码解决,参考:github.com/ainilili/da…
API定时同步失败
api定时同步是backend服务curl调用doris-fe,会收到重定向location到doris-be,它在docker镜像中,所以访问不到。
解决方案:backend和doris放在同一网络环境中运行,例如都放docker中运行。
To Be Continue…