DataEase 在 Deepin 系统 hadoop 用户完整部署教程
环境信息
-
操作系统: Deepin(基于 Debian)
-
用户: hadoop
-
安装方式: 离线安装包 + 用户空间部署
-
安装目录: /home/hadoop/dataease
-
访问端口: 8081
第一部分:准备工作
1. 配置 hadoop 用户的 Docker 权限
1.1 检查 Docker 是否已安装
docker --version
1.2 将 hadoop 用户添加到 docker 组
# 使用有 sudo 权限的用户执行 sudo usermod -aG docker hadoop
1.3 验证用户组
groups hadoop # 输出应包含: hadoop ... docker
1.4 使权限生效
# 方式1:使用 newgrp(当前会话立即生效) newgrp docker # 方式2:重新登录 hadoop 用户(推荐) exit su - hadoop
1.5 验证 Docker 权限
docker ps # 应该能正常执行,不报权限错误
第二部分:配置 Docker 镜像加速
2.1 创建 Docker 配置目录
sudo mkdir -p /etc/docker
2.2 配置国内镜像源
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
EOF
2.3 重启 Docker 服务
sudo systemctl daemon-reload sudo systemctl restart docker
2.4 验证配置
docker info | grep -A 10 "Registry Mirrors" # 应该显示配置的镜像源
第三部分:安装 Docker Compose V2
3.1 检查是否已安装旧版本
docker-compose --version # 如果显示 1.29.2,说明是旧版本,需要安装新版本
3.2 下载 Docker Compose V2
# 创建 CLI 插件目录 mkdir -p ~/.docker/cli-plugins/ # 下载 Docker Compose V2(约 58MB) sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose # 添加执行权限 sudo chmod +x /usr/local/bin/docker-compose
3.3 验证安装
/usr/local/bin/docker-compose version # 应该显示: Docker Compose version v2.24.0
第四部分:准备离线安装包
4.1 检查离线安装包
cd ~ ls -la | grep dataease # 应该看到: # dataease-offline-installer-v2.10.16-ce.tar.gz(压缩包) # dataease-offline-installer-v2.10.16-ce(解压后的目录)
4.2 进入离线安装包目录
cd ~/dataease-offline-installer-v2.10.16-ce ls -la # 应该看到:install.sh、install.conf、images/ 等文件
第五部分:配置安装参数
5.1 修改安装配置文件
cat > install.conf <<'EOF' # 基础配置 ## 安装目录(重要:指定到 /home/hadoop/dataease) DE_BASE=/home/hadoop/dataease ## Service 端口 DE_PORT=8081 ## 登录超时时间,单位min DE_LOGIN_TIMEOUT=960 ## 安装模式 DE_INSTALL_MODE=community ## 动态路径 DE_CONTEXT_PATH= # 数据库配置 ## 是否使用外部数据库 DE_EXTERNAL_MYSQL=false ## 数据库地址 DE_MYSQL_HOST=mysql-de ## 数据库端口 DE_MYSQL_PORT=3306 ## DataEase 数据库库名 DE_MYSQL_DB=dataease ## 数据库用户名 DE_MYSQL_USER=root ## 数据库密码 DE_MYSQL_PASSWORD=DataEase@123 ## 数据库参数 DE_MYSQL_PARAMS="autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true" # 定时报告镜像配置 ## 是否使用外部 Selenium DE_EXTERNAL_SELENIUM=false ## Selenium 服务地址 DE_SELENIUM_SERVER=http://de-selenium:4444/wd/hub ## selenium 镜像 CPU 限制 DE_SELENIUM_CPU_LIMIT='1' ## selenium 镜像 内存 限制 DE_SELENIUM_MEM_LIMIT=2g # APISIX配置 ## 是否使用外部 APISIX DE_EXTERNAL_APISIX=false ## APISIX dashboard 端口(改为 9100 避免与 HDFS 的 9000 冲突) DE_APISIX_DASHBOARD_PORT=9100 ## APISIX 端口 DE_APISIX_PORT=9080 # 同步模块配置 ## 是否使用外部同步模块 DE_EXTERNAL_SYNC_TASK=false # 其他配置 DE_EXPORT_VIEWS_LIMIT=100000 DE_EXPORT_DATASET_LIMIT=100000 DE_ORIGIN_LIST="http://localhost:8081" ## DataEase 节点列表 DE_SERVERS=dataease EOF
5.2 验证配置
cat install.conf | grep DE_BASE # 应该显示: DE_BASE=/home/hadoop/dataease
第六部分:运行安装脚本
6.1 执行安装
bash install.sh
过程说明:
-
安装过程会要求输入 sudo 密码(用于启动 Docker 和创建 systemd 服务)
-
安装脚本会自动:
-
创建运行目录
-
加载离线镜像
-
配置 systemd 服务
-
启动容器
-
6.2 可能遇到的问题:服务启动失败
如果看到:
Job for dataease.service failed because the control process exited with error code.
检查错误:
sudo systemctl status dataease.service
第七部分:修复路径配置问题(关键步骤)
7.1 问题原因
安装脚本在 /usr/local/bin/dectl 中硬编码了 DE_BASE=/home/hadoop,但实际应该是 /home/hadoop/dataease。
7.2 修复 dectl 脚本
# 修改 dectl 脚本中的 DE_BASE 变量 sudo sed -i '5s|DE_BASE=/home/hadoop$|DE_BASE=/home/hadoop/dataease|' /usr/local/bin/dectl
7.3 修复 systemd 服务配置
# 修改 systemd 服务文件中的路径 sudo sed -i 's|/home/hadoop/dataease2.0|/home/hadoop/dataease/dataease2.0|g' /etc/systemd/system/dataease.service
7.4 验证修改
# 检查 dectl 脚本 head -10 /usr/local/bin/dectl # 第 5 行应该显示: DE_BASE=/home/hadoop/dataease # 检查目录结构 ls -la /home/hadoop/dataease/ # 应该看到 dataease2.0 目录
7.5 重新启动服务
# 重新加载 systemd 配置 sudo systemctl daemon-reload # 启动服务 sudo systemctl start dataease.service # 查看状态 sudo systemctl status dataease.service # 应该显示: Active: active (exited)
第八部分:验证安装
8.1 检查容器状态
docker ps
预期输出:
CONTAINER ID IMAGE STATUS PORTS a830ccc7001d registry.cn-qingdao.aliyuncs.com/dataease/dataease:v2.10.16 Up 2 minutes (healthy) 0.0.0.0:8081->8100/tcp c915753fba38 registry.cn-qingdao.aliyuncs.com/dataease/mysql:8.4.5 Up 2 minutes (healthy) 3306/tcp
关键点:
-
两个容器都应该是
Up状态 -
状态应该显示
(healthy) -
dataease 容器映射
0.0.0.0:8081->8100/tcp
8.2 查看启动日志
docker logs dataease --tail 50
成功标志:
INFO --- Tomcat started on port 8100 (http) with context path '/' INFO --- Started CoreApplication in 19.49 seconds
8.3 检查端口监听
netstat -tlnp | grep 8081
预期输出:
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN tcp6 0 0 :::8081 :::* LISTEN
第九部分:配置开机自启动
9.1 启用 systemd 服务
sudo systemctl enable dataease.service
9.2 验证自启动状态
systemctl is-enabled dataease.service # 应该输出: enabled
9.3 验证 systemd 服务配置
systemctl status dataease.service # 应该显示: Loaded: loaded (/etc/systemd/system/dataease.service; enabled; ...)
第十部分:访问 DataEase
10.1 浏览器访问
本地访问:
http://localhost:8081
远程访问:
http://服务器IP:8081
10.2 登录信息
-
用户名:
admin -
初始密码:
DataEase@123456
10.3 首次登录
-
打开浏览器访问地址
-
输入用户名和密码
-
立即修改默认密码(安全要求)
-
开始使用 DataEase
第十一部分:服务管理命令
11.1 使用 systemd 管理
# 启动服务 sudo systemctl start dataease # 停止服务 sudo systemctl stop dataease # 重启服务 sudo systemctl restart dataease # 查看状态 sudo systemctl status dataease # 查看详细日志 journalctl -u dataease -f
11.2 使用 dectl 管理(推荐)
# 启动 dectl start # 停止 dectl stop # 重启 dectl restart # 查看状态 dectl status # 查看版本 dectl version
11.3 使用 Docker 命令
# 查看容器状态 docker ps # 查看所有容器(包括停止的) docker ps -a # 查看 DataEase 日志 docker logs -f dataease # 查看 MySQL 日志 docker logs -f mysql-de # 进入 DataEase 容器 docker exec -it dataease bash # 进入 MySQL 容器 docker exec -it mysql-de bash # 查看容器资源占用 docker stats dataease mysql-de
11.4 使用 Docker Compose 管理
# 进入安装目录 cd /home/hadoop/dataease/dataease2.0 # 查看服务状态 /usr/local/bin/docker-compose ps # 查看日志 /usr/local/bin/docker-compose logs -f # 重启单个服务 /usr/local/bin/docker-compose restart dataease /usr/local/bin/docker-compose restart mysql-de # 停止所有服务 /usr/local/bin/docker-compose down # 启动所有服务 /usr/local/bin/docker-compose up -d
第十二部分:目录结构说明
12.1 主要目录
/home/hadoop/dataease/ # 主目录 ├── dataease2.0/ # 运行目录 │ ├── conf/ # 配置文件 │ │ └── application.yml # 主配置文件 │ ├── data/ # 数据目录 │ │ ├── feature/ # 功能数据 │ │ ├── static-resource/ # 静态资源 │ │ └── custom-driver/ # 自定义驱动 │ ├── logs/ # 日志目录 │ │ ├── dataease.log # 应用日志 │ │ └── error.log # 错误日志 │ ├── mysql/ # MySQL 数据目录 │ │ ├── data/ # 数据库文件 │ │ └── conf/ # MySQL 配置 │ ├── apisix/ # APISIX 配置 │ ├── docker-compose.yml # Docker Compose 配置 │ └── .env # 环境变量 └── [初始创建的空目录可以删除] ├── data/ ├── logs/ ├── conf/ └── mysql/
12.2 系统配置文件
/etc/systemd/system/dataease.service # systemd 服务配置 /usr/local/bin/dectl # DataEase 管理脚本 /etc/docker/daemon.json # Docker 镜像加速配置
第十三部分:备份与恢复
13.1 完整备份
# 停止服务 sudo systemctl stop dataease # 备份整个目录 tar -czf ~/dataease-backup-$(date +%Y%m%d-%H%M%S).tar.gz /home/hadoop/dataease/ # 启动服务 sudo systemctl start dataease
13.2 备份数据库
# 导出数据库 docker exec mysql-de mysqldump -uroot -pDataEase@123 dataease > ~/dataease-db-$(date +%Y%m%d).sql # 或导出并压缩 docker exec mysql-de mysqldump -uroot -pDataEase@123 dataease | gzip > ~/dataease-db-$(date +%Y%m%d).sql.gz
13.3 恢复数据库
# 从备份恢复 docker exec -i mysql-de mysql -uroot -pDataEase@123 dataease < ~/dataease-db-backup.sql # 或从压缩文件恢复 gunzip < ~/dataease-db-backup.sql.gz | docker exec -i mysql-de mysql -uroot -pDataEase@123 dataease
13.4 定期备份脚本
# 创建备份脚本 cat > ~/backup-dataease.sh <<'EOF' #!/bin/bash BACKUP_DIR="/home/hadoop/dataease-backups" DATE=$(date +%Y%m%d-%H%M%S) # 创建备份目录 mkdir -p $BACKUP_DIR # 备份数据库 docker exec mysql-de mysqldump -uroot -pDataEase@123 dataease | gzip > $BACKUP_DIR/dataease-db-$DATE.sql.gz # 备份配置和数据 tar -czf $BACKUP_DIR/dataease-data-$DATE.tar.gz \ /home/hadoop/dataease/dataease2.0/conf \ /home/hadoop/dataease/dataease2.0/data # 删除 7 天前的备份 find $BACKUP_DIR -name "*.gz" -mtime +7 -delete find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete echo "Backup completed: $DATE" EOF # 添加执行权限 chmod +x ~/backup-dataease.sh # 测试备份 ~/backup-dataease.sh
13.5 配置定时备份
# 编辑 crontab crontab -e # 添加以下行(每天凌晨 2 点备份) 0 2 * * * /home/hadoop/backup-dataease.sh >> /home/hadoop/backup-dataease.log 2>&1
第十四部分:常见问题排查
14.1 容器无法启动
问题:docker ps 看不到容器
排查步骤:
# 1. 查看所有容器(包括停止的) docker ps -a # 2. 查看容器日志 docker logs dataease docker logs mysql-de # 3. 检查 systemd 服务状态 sudo systemctl status dataease # 4. 查看 systemd 日志 journalctl -u dataease -n 100
14.2 端口被占用
问题:8081 端口已被占用
解决方案:
# 1. 查看谁占用了 8081 sudo netstat -tlnp | grep 8081 # 2. 修改配置文件 cd ~/dataease-offline-installer-v2.10.16-ce vim install.conf # 修改 DE_PORT=8081 为其他端口,如 DE_PORT=8082 # 3. 重新安装 bash install.sh
14.3 MySQL 连接失败
问题:DataEase 无法连接 MySQL
排查步骤:
# 1. 检查 MySQL 容器状态 docker ps | grep mysql-de # 2. 进入 MySQL 容器测试 docker exec -it mysql-de mysql -uroot -pDataEase@123 # 3. 查看 MySQL 日志 docker logs mysql-de # 4. 检查网络连接 docker network ls docker network inspect dataease_dataease-network
14.4 访问 404 或 502
问题:浏览器访问出现错误
排查步骤:
# 1. 确认容器状态是 healthy docker ps # 2. 等待服务完全启动(通常需要 1-2 分钟) docker logs -f dataease # 看到 "Started CoreApplication" 表示启动完成 # 3. 检查端口映射 docker port dataease # 4. 测试本地访问 curl http://localhost:8081
14.5 权限问题
问题:Permission denied 错误
解决方案:
# 1. 确认当前用户 whoami # 应该是 hadoop # 2. 检查目录权限 ls -la /home/hadoop/dataease/ # 3. 修复权限 sudo chown -R hadoop:hadoop /home/hadoop/dataease/ chmod -R 755 /home/hadoop/dataease/ # 4. 确认 Docker 权限 groups # 应该包含 docker 组
14.6 磁盘空间不足
问题:No space left on device
排查步骤:
# 1. 查看磁盘使用情况 df -h # 2. 查看 Docker 占用空间 docker system df # 3. 清理无用的 Docker 资源 docker system prune -a # 4. 清理旧的日志 sudo journalctl --vacuum-time=7d
第十五部分:性能优化建议
15.1 MySQL 性能优化
创建 MySQL 配置文件:
cat > /home/hadoop/dataease/dataease2.0/mysql/conf/my.cnf <<'EOF' [mysqld] # 连接数 max_connections=500 # InnoDB 缓冲池大小(根据服务器内存调整,建议为物理内存的 50-70%) innodb_buffer_pool_size=2G # 日志文件大小 innodb_log_file_size=256M # 字符集 character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci # 最大数据包大小 max_allowed_packet=256M # 查询缓存(MySQL 8.0+ 已移除) # query_cache_size=128M # query_cache_type=1 # 二进制日志(如果不需要主从复制可以关闭) skip-log-bin # 慢查询日志 slow_query_log=1 slow_query_log_file=/var/lib/mysql/slow.log long_query_time=2 EOF
重启 MySQL 容器:
docker restart mysql-de
15.2 DataEase 应用优化
修改 JVM 参数:
# 编辑配置文件 vim /home/hadoop/dataease/dataease2.0/conf/application.yml # 或者通过环境变量设置(推荐) # 编辑 docker-compose.yml,在 dataease 服务中添加: environment: - JAVA_OPTS=-Xms2g -Xmx4g -XX:+UseG1GC
15.3 Docker 资源限制
修改 docker-compose.yml:
vim /home/hadoop/dataease/dataease2.0/docker-compose.yml # 在 dataease 服务中添加: deploy: resources: limits: cpus: '4' memory: 4G reservations: cpus: '2' memory: 2G
重启服务使配置生效:
dectl restart
第十六部分:安全加固建议
16.1 修改默认密码
DataEase 管理员密码:
-
首次登录后立即修改
-
进入:设置 → 用户管理 → 修改密码
MySQL 密码:
# 进入 MySQL 容器 docker exec -it mysql-de mysql -uroot -pDataEase@123 # 修改密码 ALTER USER 'root'@'%' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES; exit # 同步修改配置文件 vim /home/hadoop/dataease/dataease2.0/.env # 修改 DE_MYSQL_PASSWORD=新密码 # 重启服务 dectl restart
16.2 配置防火墙
# 如果使用 ufw sudo ufw allow 8081/tcp sudo ufw enable # 如果使用 iptables sudo iptables -A INPUT -p tcp --dport 8081 -j ACCEPT sudo iptables-save > /etc/iptables/rules.v4
16.3 限制访问 IP
修改 docker-compose.yml 端口绑定:
ports: - "127.0.0.1:8081:8100" # 只允许本地访问 # 或 - "192.168.1.100:8081:8100" # 只绑定特定 IP
16.4 启用 HTTPS(可选)
使用 Nginx 反向代理:
# 安装 Nginx
sudo apt install nginx
# 配置反向代理
sudo vim /etc/nginx/sites-available/dataease
# 添加配置:
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# 启用配置
sudo ln -s /etc/nginx/sites-available/dataease /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
第十七部分:卸载 DataEase
如果需要完全卸载 DataEase:
# 1. 停止服务 sudo systemctl stop dataease # 2. 禁用自启动 sudo systemctl disable dataease # 3. 停止并删除容器 cd /home/hadoop/dataease/dataease2.0 /usr/local/bin/docker-compose down -v # 4. 删除 systemd 服务 sudo rm /etc/systemd/system/dataease.service sudo systemctl daemon-reload # 5. 删除 dectl 命令 sudo rm /usr/local/bin/dectl sudo rm /usr/bin/dectl # 6. 删除安装目录(谨慎!数据会丢失) rm -rf /home/hadoop/dataease # 7. 删除 Docker 镜像(可选) docker rmi registry.cn-qingdao.aliyuncs.com/dataease/dataease:v2.10.16 docker rmi registry.cn-qingdao.aliyuncs.com/dataease/mysql:8.4.5 # 8. 清理 Docker 资源 docker system prune -a
第十八部分:升级 DataEase
18.1 备份当前版本
# 完整备份 sudo systemctl stop dataease tar -czf ~/dataease-backup-before-upgrade-$(date +%Y%m%d).tar.gz /home/hadoop/dataease/ sudo systemctl start dataease
18.2 下载新版本离线包
cd ~ # 下载新版本的离线安装包 # 解压新版本
18.3 执行升级
cd ~/dataease-offline-installer-v新版本/ # 升级时会自动检测已有安装 bash install.sh
总结
关键成功要素
-
Docker 权限配置正确
-
hadoop 用户必须在 docker 组
-
使用
newgrp docker或重新登录使权限生效
-
-
Docker 镜像加速配置
-
国内网络必须配置镜像加速器
-
推荐使用多个镜像源
-
-
Docker Compose V2
-
旧版本 1.29.2 有兼容性问题
-
必须安装 V2.24.0 或更高版本
-
-
路径配置修复
-
安装后必须修复
/usr/local/bin/dectl中的DE_BASE变量 -
将
DE_BASE=/home/hadoop改为DE_BASE=/home/hadoop/dataease
-
-
端口冲突避免
-
确认 8081、9080、9100 端口未被占用
-
如有冲突,修改
install.conf中的端口配置
-
最终部署结果
-
安装目录:
/home/hadoop/dataease/dataease2.0 -
访问地址:
http://localhost:8081 -
登录账号:
admin / DataEase@123456 -
开机自启: 已启用(systemd 服务)
-
无需 root 权限: 所有数据在 hadoop 用户目录下
重要提醒
-
首次登录后立即修改默认密码
-
定期备份数据库和配置文件
-
监控磁盘空间和日志大小
-
根据实际负载调整性能参数
快速命令参考
# 服务管理 dectl start # 启动 dectl stop # 停止 dectl restart # 重启 dectl status # 状态 # 日志查看 docker logs -f dataease # DataEase 日志 docker logs -f mysql-de # MySQL 日志 # 容器管理 docker ps # 查看运行的容器 docker stats # 查看资源占用 # 备份 ~/backup-dataease.sh # 执行备份脚本
部署完成!DataEase 已成功安装在 hadoop 用户空间,完全不依赖 /usr/bin 的写权限。
附录:故障排查流程图
启动失败? ├─ 检查 Docker 权限: groups | grep docker ├─ 检查容器状态: docker ps -a ├─ 查看服务日志: journalctl -u dataease -n 50 ├─ 查看容器日志: docker logs dataease └─ 检查端口占用: netstat -tlnp | grep 8081 访问失败? ├─ 容器是否健康: docker ps (查看 healthy 状态) ├─ 端口是否监听: netstat -tlnp | grep 8081 ├─ 防火墙设置: sudo ufw status └─ 等待启动完成: docker logs -f dataease (等待 "Started CoreApplication") 性能问题? ├─ 查看资源占用: docker stats ├─ 检查磁盘空间: df -h ├─ 优化 MySQL: 修改 my.cnf └─ 调整 JVM 参数: 修改 docker-compose.yml
更新日期: 2025-11-10 适用版本: DataEase v2.10.16 作者: heihu
2862

被折叠的 条评论
为什么被折叠?



