Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将saiku与apache hive结合使用_Hive_Business Intelligence_Saiku - Fatal编程技术网

将saiku与apache hive结合使用

将saiku与apache hive结合使用,hive,business-intelligence,saiku,Hive,Business Intelligence,Saiku,您是否曾使用Saiku在BigData平台(Hadoop)上进行数据分析?我最近的工作需要将一些遗留BI工具与Hadoop集成,以支持HDFS/HBase上的常见OLAP查询 我发现了一个用Phoenix&Hbase实现的解决方案,它将saiku和Hbase与Phoenix中的SQL方言连接起来,并且工作正常。但是,此方法只能通过HBase API处理HBase内的数据。在构建数据立方体时,它无法推进任何Map Reduce样式的作业。我更喜欢一些更大数据兼容的替代方案,比如通过ApacheHi

您是否曾使用Saiku在BigData平台(Hadoop)上进行数据分析?我最近的工作需要将一些遗留BI工具与Hadoop集成,以支持HDFS/HBase上的常见OLAP查询

我发现了一个用Phoenix&Hbase实现的解决方案,它将saiku和Hbase与Phoenix中的SQL方言连接起来,并且工作正常。但是,此方法只能通过HBase API处理HBase内的数据。在构建数据立方体时,它无法推进任何Map Reduce样式的作业。我更喜欢一些更大数据兼容的替代方案,比如通过ApacheHive

塞库语是以蒙德里安语为基础的。我的Saiku版本使用了Mondrian-4.0.0.0-SNAPSHOT.jar,我发现它已经可以很好地与Hive配合使用了。我发现在Saiku的lib目录中有很多Hive-0.13 jar。所以我认为hive2数据源的简单配置可以工作。我在HDFS集群的namenode中启动了一个hiveserver2,并将以下数据源添加到saiku中

Name: hive2
Connection Type: Mondrian
URL: jdbc:hive2://localhost:10000/default
Schema: /datasources/movie.xml
Jdbc Driver: org.apache.hive.jdbc.HiveDriver
Username: ubuntu
Password: XXXX
saiku确实成功连接到hiveserver2,但未能加载数据源。我在赛库日志中发现以下错误:

name:hive2
driver:mondrian.olap4j.MondrianOlap4jDriver
url:jdbc:mondrian:Jdbc=jdbc:hive2://localhost:10000/default;Catalog=mondrian:///datasources/movie.xml;JdbcDrivers=org.apache.hive.jdbc.HiveDriver
12:41:48,110 WARN  [RolapSchema] Model is in legacy format
12:41:50,464 ERROR [SecurityAwareConnectionManager] Error connecting: hive2
mondrian.olap.MondrianException: Mondrian Error:Internal error: while quoting identifier
    at mondrian.resource.MondrianResource$_Def0.ex(MondrianResource.java:992)
    at mondrian.olap.Util.newInternal(Util.java:2543)
    at mondrian.spi.impl.JdbcDialectImpl.deduceIdentifierQuoteString(JdbcDialectImpl.java:245)
    at mondrian.spi.impl.JdbcDialectImpl.<init>(JdbcDialectImpl.java:146)
    at mondrian.spi.DialectManager$DialectManagerImpl$1.createDialect(DialectManager.java:210)
...
Caused by: java.sql.SQLException: Method not supported
    at org.apache.hive.jdbc.HiveDatabaseMetaData.getIdentifierQuoteString(HiveDatabaseMetaData.java:342)
    at org.apache.commons.dbcp.DelegatingDatabaseMetaData.getIdentifierQuoteString(DelegatingDatabaseMetaData.java:306)
    at mondrian.spi.impl.JdbcDialectImpl.deduceIdentifierQuoteString(JdbcDialectImpl.java:238)
    ... 99 more
到现在为止,我都很困惑。将赛库与蜂箱一起使用是否可行?它的lib dir中有配置单元0.13 jar,但无法加载简单的配置单元数据源?我应该简单地修改蜂巢的来源吗。我在新发布的Hive1.0中找到了。此函数通过简单地返回空字符串来实现


有人有好主意吗?谢谢

我绕过了Hive-JDBC-0.13.1中一些未实现的函数,但仍然无法处理Hive表。我将继续研究这个问题>“在构建数据立方体时使用Map Reduce样式的作业”-如果可以在hadoop中的相同数据上更快地运行Phoenix/Hbase中的SELECT,为什么需要mapreduce作业?您是否看到性能比较:?@alex主要原因是我无法调用所有必须托管在HBase中的数据。大多数数据都上传到HDFS目录或配置单元中。如果使用phoenix/HBase解决方案,我必须反复处理ETL到HDFS。
   public String getIdentifierQuoteString() throws SQLException {                                                                                                             
     throw new SQLException("Method not supported");
   }