我想将 hortonworks hive 与 SpagoBI studio 连接,我正在使用 jdbc 驱动程序进行连接,但它无法正常工作,请任何人解决这个问题。
谢谢
首先,您应该为 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
如果您使用 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
当然,这会奏效。
谢谢阿曼
编辑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
:
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>