【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程

前言
在现代的企业运营中,除了是和竞争对手比拼产品的功能、市场的推广能力外,还需要和竞争对手比拼业务数据的挖掘能力,所以现在越来越多的企业对业务数据的重视程度越来越高,并且在数据分析和数据挖掘方面投入更多的资源,希望能够在此领域领先于竞争对手,从而占据商业竞争中更加有利的地位。

而在数据分析、数据挖掘领域,数据量的积累往往是最基础的条件,要想从数据分析中得出更加符合实际的业务价值,或者是更加准确的市场预测,都需要从海量的数据中分析得出。

同时,为了能够让更多的业务人员参与到数据分析、数据挖掘中来,那么过去高门槛的分析工作必定要大大降低准入门槛,从而能够让懂业务但是不精通编程开发的一线人员参与进来,以更加符合企业业务特点的方式分析数据。

SequoiaDB是国内唯一款具有完全自主知识产权的分布式数据库,已经被成功应用在多家世界500强企业的生产环境上。SequoiaDB利用自身的技术优势,能够为超过PB级别的数据提供毫秒级响应的数据操作。

而在数据展现图形化领域里,国产的SmartBI是一款出色的BI报表工具,它能够为用户提供简单、方便、直观的数据分析操作体验,能够很好地降低了数据分析、数据展现的开发门槛,让更多的业务人员参与到数据分析的工作上来,为企业得出更加有价值的分析结果和预测数据贡献自己的一分力量。

Smart BI安装部署
环境介绍
Linux环境
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
Smart BI安装包分为两大类,一种是企业版本,另外一种是社区版本,本次演示教程采用的是社区版本。

Smart BI的社区版本在基本功能上没有太多的限制,但是限制了服务的并发数以及一些高级功能,但是并不影响作者介绍如何通过Spark SQL将SequoiaDB 和 Smart BI进行技术对接。

Smart BI官网下载的链接为

http://download.smartbi.com.cn/insight/【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
用户可以选择exe格式和war格式的文件进行下载,本次教程将采用war包部署方式进行介绍。
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
授权文件下载

由于Smart BI软件的限制,即使用户是使用社区版本,也需要向Smart BI官方基于机器的MAC地址申请License文件。

Smart BI申请License 文件的方式也比较简单,首先用户需要在Smart BI上注册一个账号,注意填写好个人邮箱地址。
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
然后查看个人机器的mac地址,如果是windows机器,查看的命令如下:

ipconfig /all

屏幕输出的物理地址信息即为当前机器的mac地址

如果是linux环境,查看的命令如下:

ifconfig -a

屏幕输出的HWaddr信息即为当前机器的mac地址信息。

Smart BI官网申请License 文件地址

http://www.smartbi.com.cn/myaccount.php
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
用户正确填写个人机器的mac地址信息后,点击“提交”,一般在5-10分钟内Smart BI官网会将对应的License 文件发送到用户注册的邮箱上。用户只需要提前下载好该License 文件即可。

启动Smart BI服务

本教程使用Tomcat作为部署Smart BI的中间件,如果用户使用其他的中间件进行部署,可以根据实际情况对启动Smart BI步骤进行修改。

假设Tomcat 的HOME目录为/root/software/tomcat-7.0.78。

用户首先将提前下载好的smartbi.war 文件拷贝到/root/software/tomcat-7.0.78/webapps目录下。

用户可以根据Smart BI官网上的介绍,对Tomcat的catalina.sh配置文件进行修改

vi /root/software/tomcat-7.0.78/bin/catalina.sh

Smart BI官网建议用户对JAVA_OPTS的jvm参数进行调整

作者根据自身的机器配置,修改后保存退出。

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=GBK -Duser.region=CN -Duser.language=zh -Djava.awt.headless=true -Xms2048m -Xmx2048m -XX:MaxPermSize=512m"

【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
用户可以通过/root/software/tomcat-7.0.78/logs/catalina.out日志文件确认Smart BI服务已经启动。

如果日志文件中显示以下内容,则代表启动成功

七月 26, 2017 1:02:26 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Deploying web application directory /root/software/tomcat-7.0.78/webapps/manager

七月 26, 2017 1:02:26 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Deployment of web application directory /root/software/tomcat-7.0.78/webapps/manager has finished in 48 ms

七月 26, 2017 1:02:26 下午 org.apache.coyote.AbstractProtocol start

信息: Starting ProtocolHandler [“http-bio-8080”]

七月 26, 2017 1:02:26 下午 org.apache.coyote.AbstractProtocol start

信息: Starting ProtocolHandler [“ajp-bio-8009”]

七月 26, 2017 1:02:26 下午 org.apache.catalina.startup.Catalina start

信息: Server startup in 30502 ms

配置Smart BI Server

Tomcat服务启动后,用户可以通过浏览器登录Smart BI的知识库配置页面进行License认证。

假设用户启动Tomcat的机器IP地址为10.211.55.3,则Smart BI的知识库配置网址为

http://10.211.55.3:8080/smartbi/vision/config

用户第一次登录,需要输入初始化的管理员密码,作者为了简单起见设置初始密码为configadmin。【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
配置MySQL作为Smart BI知识库

首先检查MySQL是否支持GBK字符集,因为作者在测试过程中发现,Smart BI在知识库字符集设置上,只能够支持GBK,如果不注意设置为UTF8则后面的很多配置操作会失败。

MySQL检查字符集的命令

show character set;

如果支持gbk字符集,则会显示

| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |

创建一个gbk字符集的database

create database if not exists smartbi DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

查看一下smartbi的database字符集是否为gbk

show create database smartbi;

显示如下信息

【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
设置Smart BI知识库
用户继续在http://10.211.55.3:8080/smartbi/vision/config页面上设置以MySQL作为知识库。

用户应该正确填写“服务器地址”,该拦填写部署MySQL服务的IP地址和MySQL的端口号;“数据库名”应该填写上一步骤在MySQL中创建的database名字;“用户名”和“密码”则为MySQL服务的登录方式。【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
如果配置正确,点击“保存”退出,并且关闭Tomcat服务器。

关闭Tomcat命令

/root/software/tomcat-7.0.78/bin/shutdown.sh ;

Smart BI对接SequoiaDB + Spark SQL
SequoiaDB 对接 Spark SQL

SequoiaDB和Spark SQL的对接方式只要用户将sequoiadb.jar和spark-sequoiadb.jar两个驱动程序分别拷贝到Spark SQL运行的Worker机器上,并且为每台机器的Spark 配置文件spark-env.sh 添加SPARK_CLASSPATH参数,例如:

SPARK_CLASSPATH="/media/psf/mnt/spark-sequoiadb_2.11-2.9.0-SNAPSHOT.jar:/media/psf/mnt/sequoiadb-driver-2.9.0-SNAPSHOT.jar"

详细对接步骤可以参考:

http://doc.sequoiadb.com/cn/SequoiaDB-cat_id-1432190712-edition_id-0

启动Spark 的thriftserver服务
用户在为每台Spark 服务器设置好后,应该选择一台Spark 机器启动一个thriftserver 服务,假设Spark HOME 目录为/root/software/spark-2.1.0-bin-hadoop2.7

启动方式如下:

/root/software/spark-2.1.0-bin-hadoop2.7/sbin/start-thriftserver.sh --master spark://10.211.55.3:7077

Spark SQL创建SequoiaDB映射表
假设SequoiaDB已经存在一个foo.bar的集合,并且里面包含两条记录。
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
用户可以通过beeline客户端为Spark SQL创建SequoiaDB的映射表。

启动beeline的命令如下

/root/software/spark-2.1.0-bin-hadoop2.7bin/beeline -u “jdbc:hive2://10.211.55.3:10000”

用户在beeline客户端上创建SequoiaDB映射表的命令如下:

CREATE TABLE test_sdb(name string, id int) USING com.sequoiadb.spark OPTIONS ( host ‘chen:11810’, collectionspace ‘foo’, collection ‘bar’);

通过beeline检查SequoiaDB的真实数据。【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
配置Smart BI驱动

由于Smart BI在默认情况下,并不能直接和Spark SQL进行通信,但是它支持Hadoop Hive2的JDBC访问接口,所以用户只需要将Spark SQL的开发驱动拷贝一份到Smart BI的libs目录中即可。

cp -rf /root/software/spark-2.1.0-bin-hadoop2.7/jars/* /root/software/tomcat-7.0.78/webapps/smartbi/WEB-INF/lib/

重启Smart BI

用户为Smart BI配置Spark SQL的驱动程序后,就可以对Tomcat进行重启,由于之前的步骤中,只对Tomcat服务进行了停止,所以用户只要重新启动Tomcat即可。

/root/software/tomcat-7.0.78/bin/startup.sh ;

Smart BI Demo
初始化管理员登录密码

用户在按照以上步骤设置好Smart BI和SequoiaDB对接之后,就可以浏览器上登录http://10.211.55.3:8080/smartbi/vision/index.jsp地址,开始配置Smart BI的连接资源。

用户需要先登录Smart BI的管理页面。用户名默认为“admin”,密码默认为“manager”。【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程用户第一次登录后,需要设置新的管理员密码,作者为了简单起见,将密码设置为“admin”。
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
【巨杉数据库SequoiaDB】SequoiaDB+SparkSQL 与 SmartBI 整合教程
总结
用户通过本篇SmartBI和SequoiaDB+SparkSQL的对接教程,能够快速掌握如何安装部署社区版的SmartBI,以及如何配置SmartBI的知识库。还有用户通过对接教程的说明,也可以了解SmartBI和SequoiaDB的对接原理。SequoiaDB和SparkSQL的整合,使得SequoiaDB的海量数据能够直接被SparkSQL所使用,并且得益于SparkSQL的分布式计算优势,未来复杂的SQL计算和数据分析的计算时间能够比以前使用关系性数据库大大降低,为企业的数据分析提供了良好的技术保障。

上一篇:sparkSql和hive的整合之mysql报错


下一篇:Spark学习之路 (十八)SparkSQL简单使用