0

我想将 hortonworks hive 与 SpagoBI studio 连接,我正在使用 jdbc 驱动程序进行连接,但它无法正常工作,请任何人解决这个问题。

谢谢

4

3 回答 3

0

首先,您应该为 spagobi 创建一个环境文件。在该文件中,您需要提供 hive lib 和 hadoop-core.jar jar 的路径(对于 hadoop 版本 1)

然后你需要执行运行 env 文件,然后启动 SpagoBI。它会正常运行。

基本上这个 env 文件提供了对 SpagoBi 的 hive lib(包括你的 hive-jdbc-*.jar)jar 的访问

环境文件是

HADOOP_HOME=/usr/lib/hadoop
HIVE_HOME=/usr/lib/hive

echo -e '1\x01foo' > /tmp/spagobi/a.txt
echo -e '2\x01bar' >> /tmp/spagobi/a.txt


CLASSPATH=.:$HADOOP_HOME/hadoop-core.jar:$HIVE_HOME/conf

for i in ${HIVE_HOME}/lib/*.jar ; do
    CLASSPATH=$CLASSPATH:$i
done
`        

只需将代码保存在文件中

spagobi.env

然后通过执行文件. spagobi-env.env

于 2015-10-11T18:57:45.873 回答
0

如果您使用 hive 的更新版本,请下载以下给出的一些 jar 文件:- 1. hadoop-common-2.6.0.2.2.0.0-2041.jar 2. z-hive-jdbc-0.14.0.2.2.0.0- 2041-standalone.jar

然后,在 SpagoBI Studio -> 转到数据源连接 -> 选择 hive 驱动程序 -> 然后添加新的驱动程序文件“z-hive-jdbc-0.14.0.2.2.0.0-2041-standalone.jar”文件 -> 然后确定.

然后,提供凭据以连接下面给出的配置单元:-

网址:jdbc:hive2://localhost:10000/xyz

驱动程序:org.apache.hive.jdbc.HiveDriver

当然,这会奏效。

谢谢阿曼

于 2015-11-27T14:20:44.407 回答
-1

编辑server.xml
路径:All-In-One-SpagoBI-X.X.X\conf\server.xml

添加:

<!-- Hive Configuration-->
<Resource name="jdbc/hive" auth="Container" type="javax.sql.DataSource" driverClassName="org.apache.hive.jdbc.HiveDriver" 
 url="jdbc:hive2://data_node_server.com:10000/wsms" username=" " password=" "
 maxActive="20" maxIdle="10" maxWait="-1"/>

编辑context.xml
路径:All-In-One-SpagoBI-X.X.X\webapp\spagobi\meta-inf\context.xml

添加:

<ResourceLink global="jdbc/hive" name="jdbc/hive" type="javax.sql.DataSource"/>

context.xml对每个引擎执行相同的操作:

All-In-One-SpagoBI-XXX\webapps\XXXEngine\META-INF

添加以下罐子All-In-One-SpagoBI-XXX\lib

  1. httpcore-4.3.jar
  2. httpclient-4.3-beta2.jar
  3. httpclient-4.2.jar
  4. hadoop-common-xxx.jar
  5. hive-exec.jar
  6. hive-jdbc-xxx.jar
  7. hive-metastore-xxx.jar
  8. 蜂巢服务-xxx.jar
  9. slf4j-api-xxx.jar(存在于 webapp/spagobi/web-inf/lib 中)
  10. hadoop-auth-xxx.jar(可选但推荐 - kerberos 或其他身份验证可能需要)

数据源

Label           :   hive2_conn  (hive-jdbc-1.2.1000.2.4.0.0-169)    
Description     :   Connecting to hive
Dialect         :   Hive QL
url             :   jdbc:hive2://server_name.com:10000/wsms (Note use data node server address , name node server wont work)
user            :   hive_user_name  
pwd             :   hvie_user_pwd                       
Driver          :   org.apache.hive.jdbc.HiveDriver

环境变量 - Hive 服务器(数据节点)(为数据源中使用的用户设置变量)

vi ~/.bash_profile
HADOOP_HOME=/usr/hdp/2.4.0.0-169/hadoop
HIVE_HOME=/usr/hdp/2.4.0.0-169/hive    CLASSPATH=.:$HADOOP_HOME/*.jar:$HADOOP_HOME/lib/*.jar:$HIVE_HOME/lib/*.jar

Hadoop 服务器配置(hive-site.xml):

<!-- hive Multi user Support -->
<property>
  <name>hive.support.concurrency</name>
  <description>Enable Hive's Table Lock Manager Service</description>
  <value>true</value>
</property>

<property>
  <name>hive.zookeeper.quorum</name>
  <description>Zookeeper quorum used by Hive's Table Lock Manager</description>
  <value>zk1.myco.com,zk2.myco.com,zk3.myco.com</value>
</property>

<property>
    <name>atlas.hook.hive.maxThreads</name>
    <value>50</value>
</property>

<property>
  <name>atlas.hook.hive.minThreads</name>
  <value>5</value>
</property>

<!-- Configute to Support HTTP protocol default value binary (set it to http)-->
<property>
  <name>hive.server2.transport.mode</name>
  <value>http</value><!--default is binary-->
</property>

<!-- Query Optimization -->
<!-- Enable Cost Based Optimization , To Optimize Query Executio plan default value false  (set it to True) -->
<property>
  <name>hive.cbo.enable</name>enter code here
  <value>true</value>
</property>
于 2016-06-21T13:36:52.523 回答