前言
在现代的企业运营中,除了是和竞争对手比拼产品的功能、市场的推广能力外,还需要和竞争对手比拼业务数据的挖掘能力,所以现在越来越多的企业对业务数据的重视程度越来越高,并且在数据分析和数据挖掘方面投入更多的资源,希望能够在此领域领先于竞争对手,从而占据商业竞争中更加有利的地位。
而在数据分析、数据挖掘领域,数据量的积累往往是最基础的条件,要想从数据分析中得出更加符合实际的业务价值,或者是更加准确的市场预测,都需要从海量的数据中分析得出。
同时,为了能够让更多的业务人员参与到数据分析、数据挖掘中来,那么过去高门槛的分析工作必定要大大降低准入门槛,从而能够让懂业务但是不精通编程开发的一线人员参与进来,以更加符合企业业务特点的方式分析数据。
SequoiaDB是国内唯一款具有完全自主知识产权的分布式数据库,已经被成功应用在多家世界500强企业的生产环境上。SequoiaDB利用自身的技术优势,能够为超过PB级别的数据提供毫秒级响应的数据操作。
而在数据展现图形化领域里,国产的SmartBI是一款出色的BI报表工具,它能够为用户提供简单、方便、直观的数据分析操作体验,能够很好地降低了数据分析、数据展现的开发门槛,让更多的业务人员参与到数据分析的工作上来,为企业得出更加有价值的分析结果和预测数据贡献自己的一分力量。
Smart BI安装部署
环境介绍
Linux环境
Smart BI安装包分为两大类,一种是企业版本,另外一种是社区版本,本次演示教程采用的是社区版本。
Smart BI的社区版本在基本功能上没有太多的限制,但是限制了服务的并发数以及一些高级功能,但是并不影响作者介绍如何通过Spark SQL将SequoiaDB 和 Smart BI进行技术对接。
Smart BI官网下载的链接为
http://download.smartbi.com.cn/insight/
用户可以选择exe格式和war格式的文件进行下载,本次教程将采用war包部署方式进行介绍。
授权文件下载
由于Smart BI软件的限制,即使用户是使用社区版本,也需要向Smart BI官方基于机器的MAC地址申请License文件。
Smart BI申请License 文件的方式也比较简单,首先用户需要在Smart BI上注册一个账号,注意填写好个人邮箱地址。
然后查看个人机器的mac地址,如果是windows机器,查看的命令如下:
ipconfig /all
屏幕输出的物理地址信息即为当前机器的mac地址
如果是linux环境,查看的命令如下:
ifconfig -a
屏幕输出的HWaddr信息即为当前机器的mac地址信息。
Smart BI官网申请License 文件地址
http://www.smartbi.com.cn/myaccount.php
用户正确填写个人机器的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"
用户可以通过/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。
配置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;
显示如下信息
设置Smart BI知识库
用户继续在http://10.211.55.3:8080/smartbi/vision/config页面上设置以MySQL作为知识库。
用户应该正确填写“服务器地址”,该拦填写部署MySQL服务的IP地址和MySQL的端口号;“数据库名”应该填写上一步骤在MySQL中创建的database名字;“用户名”和“密码”则为MySQL服务的登录方式。
如果配置正确,点击“保存”退出,并且关闭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的集合,并且里面包含两条记录。
用户可以通过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的真实数据。
配置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”。用户第一次登录后,需要设置新的管理员密码,作者为了简单起见,将密码设置为“admin”。
总结
用户通过本篇SmartBI和SequoiaDB+SparkSQL的对接教程,能够快速掌握如何安装部署社区版的SmartBI,以及如何配置SmartBI的知识库。还有用户通过对接教程的说明,也可以了解SmartBI和SequoiaDB的对接原理。SequoiaDB和SparkSQL的整合,使得SequoiaDB的海量数据能够直接被SparkSQL所使用,并且得益于SparkSQL的分布式计算优势,未来复杂的SQL计算和数据分析的计算时间能够比以前使用关系性数据库大大降低,为企业的数据分析提供了良好的技术保障。
自由浮动时间:在不影响后续工作的最早开始时间的情况下,活动可以拖延的时间,比如A活动计划9天,但是只需要5天,所以在9天内完成,就不会影响后续活动的开始时间,4天就是自由浮动时间。资源数量:增加资源数量,使其达到最初的两倍,不一定能缩短一半的时间,很有可能因为各种风险,知识传递,学习曲线,额外合作造成持续时间增加。外部依赖关系:是项目活动和非项目活动之间的关系,不在项目的控制范围内。关键路径法的特点:决定了项目的总工期,关键路径所需要的时间最长,浮动时间最少,活动延误可能会导致关键路径变化。
使用Python 2的除法运算符语义对x / y元素进行除法。(弃用)tf.div(x, y,name=None)警告:不推荐使用此函数。它将在未来的版本中被删除。更新说明:不支持操作符或tf.math.divide。注意:最好使用遵循Python 3除法运算符语义的张量除法运算符或tf.divide。这个函数除x和y,强制使用Python 2语义。也就是说,如果x和y都是整数,那么结果就是整数。这与Python 3形成了对比,Python 3中使用/的除法总是浮点数,而使用//的除法总是整数。.
1.作图时汉字显示为方块的问题在用matplotlib进行作图时,如果含有中文标签,会发现不能正常显示,这是因为matplotlib的默认字体是英文字体,解决它的办法是,在作图前手动指定默认字体为中文字体,如黑体(SimHei)。import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #...
概述MyBatisMyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。以开发sql语句的工作量为代价换取高灵活性##Hello MyBatis1、添加依赖<dependency>
定时器的框图中有一个TRGO信号输出,此信号可以用来触发ADC、DAC、其他定时器等。此信号怎么产生呢? 要使用TIM_SelectOutputTrigger(TIM1, TIM_TRGOSource_Update); 函数来选择TRGO信号的事件源,这个函数给TIMx_CR2寄存器的位6到位4赋值,位6到位4是MMS[2:0],描述如下: ...
把刚才的那个方法封装到一个dll中,更方便:RegDll.dpr:library RegDLL;{ Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select
第8章 函数编写PostgreSQL 同大多数数据库一样,可以把若干 SQL 语句组合在一起,然后将其作为一个单元来处理,并且每次运行时可以输入不同的参数。这种机制在不同数据库中的名称不一样,有的叫存储过程,有的叫用户自定义函数,而 PostgreSQL 统一称之为函数。8.1 PostgreSQL函数功能剖析PostgreSQL 的函数可分为基本函数、聚合函数、窗口函数和触发器函数四大类。8.1.1 函数功能基础知识介绍函数的基本结构CREATE OR REPLACE FUNCTION fun
存储器映射的I/O基于ARM内核的芯片具有许多的外设,这些外设访问的标准方法是使用存储器映射的I/O,为外设的每个寄存器都分配一个地址。通常,从这些地址装载数据用于读入,向这些地址保存数据用于输出。有些地址的装载和保存用于外设的控制功能,而不是输入或输出功能。注意:存储器映射的I/O位置的操作不同于正常的存储器位置的操作。通常,存储器映射的I/O位置没有高速缓存和无缓冲区。执行ARM 系统I/O 功能的标准方法是使用存储器映射的I/O。装载或保存I/O 值时,使用提供给I/O 功能的特殊存储器地址。通常,从
1、时间戳的定义时间戳(timestamp),通常是一个数字序列,唯一地标识某一刻的时间,指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的毫秒数。数字时间戳技术是数字签名技术一种变种的应用。在电子商务交易文件中,时间是十分重要的信息。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内...
这个镜像既没有仓库名,也没有标签,均为 <none><none> <none> 00285df0df87 5 days ago 342 MB这个镜像原本是有镜像名和标签的,原来为 mongo:3.2,随着官方镜像维护,发布了新版本后,重新 docker pull mongo:3.2 时,mongo:3.2 这个镜像名被转移到了新下载的镜像身上,而旧的镜像上的这个名称则被取消,从而成
tips: Samba可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。由于电视盒子送的影视会员到期了,那上面很多电影又需要承担“巨额”的会员费用才能观看,所以想通过设备互联观看从互联网下载到电脑里的影视资源。
目录1.简述2.代码1.简述Qt 中支持了枚举与字符串互转的用法,通过moc编译器实现,所以使用的时候需要添加Q_OBJECT宏,并且声明为public属性,以便外部使用。2.代码头文件里这么写class Dialog : public QDialog{ Q_OBJECTpublic: enum EnmState{ ENM_STATE_A = 0, ENM_STATE_B = 2, ENM_STATE_C, };