1.为什么使用metabase?
Metabase is the easy, open source way for everyone in your company to ask questions and learn from data.
在业务分析中,常常会借助各种分析工具 ,例如Pentaho BI,Saiku等.
但是这不是今天的主角,为什么要使用metabase这款开源分析工具呢?正如Metabase官网介绍,任何人都可以以问问题的方式去探索发现数据
2.为什么使用docker构建?
Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. By doing so, thanks to the container, the developer can rest assured that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code.
对开发和运维DevOps人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。Docker拥有快速启动,配置的一致性和快速批量部署等优势。
3.docker构建metabase
(1)首先创建本地文件夹metabase_docker
mkdir /usr/local/metabase_docker
cd /usr/local/metabase_docker
(2)从官网下载metabase jar包(v0.33.3)以及jdk(jdk-8u144-linux-x64.rpm)放到/usr/local/metabase_docker目录下
(3)创建Dockerfile,文件内容如下:
FROM centos
COPY metabase.jar /metabase.jar
COPY jdk-8u144-linux-x64.rpm /jdk-8u144-linux-x64.rpm
RUN yum install epel-release -y && yum install net-tools -y && ln -sf /usr/share/zoneinfo/UTC /etc/localtime \
&& rpm -ivh jdk-8u144-linux-x64.rpm && rm -rf jdk-8u144-linux-x64.rpm
EXPOSE 3000
##配置mysql服务端口
ENV MB_DB_TYPE mysql
ENV MB_DB_DBNAME metabase
ENV MB_DB_PORT 3306
ENV MB_DB_USER metabase_master
ENV MB_DB_PASS metabase_master123
ENV MB_DB_HOST bms_db
CMD java -jar /metabase.jar >> /tmp/metabase_3.log
(4) 运行 docker build 命令 --no-cache 不适用缓存根据个人需要确定是否使用此参数
sudo docker build -t metabase .
4.docker 构建mysql
(1)下载 mysql 镜像
docker pull mysql:5.6
(2)使用mysql镜像
1.创建文件夹(数据及配置文件挂载到宿主机)
/root/docker-conf/bms_v3/
/root/docker-data/bms_v3_data
2.运行容器
docker run --name bms_v3_db -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /root/docker-conf/bms_v3/conf:/etc/mysql/conf.d -v /root/docker-data/bms_v3_data:/var/lib/mysql mysql:5.6
命令说明:
- -p 3308:3306:将容器的 3306 端口映射到主机的 3308 端口.
- -e MYSQL_ROOT_PASSWORD=123456 初始化 root 用户的密码.
- -v /root/docker-conf/bms_v3/conf:/etc/mysql/conf.d 将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/conf
- -v /root/docker-data/bms_v3_data:/var/lib/mysql 将主机/root/docker-data/bms_v3_data目录下的data目录挂载到容器的 /var/lib/mysql
3.查看容器
docker ps
5.进入mysql容器创建用户及数据库
##进入容器
[root@gz-bms-172-16-10-123 dockerfile-bms-v3]# docker exec -it bms_v3_db bash
##进入mysql
root@e66e2883e898:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
##创建数据库
mysql> create database metabase;
Query OK, 1 row affected (0.00 sec)
##创建用户
mysql> CREATE USER 'metabase_master'@'%' IDENTIFIED BY 'metabase_master123';
Query OK, 0 rows affected (0.00 sec)
##赋予用户数据库权限
mysql> GRANT ALL PRIVILEGES ON metabase.* TO 'metabase_master'@'%';
Query OK, 0 rows affected (0.00 sec)
##刷新权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
6.启动metabase
docker run --name bms_v3 -d -p 3000:3000 -v /root/docker-logs/bms-logs/metabase_3.log:/tmp/metabase_3.log --link bms_v3_db:bms_db bms_v3
安装完成