我在使用sqoop将表导入Hive时遇到问题。
在我的java代码中,我通过SSH连接到hive的服务器,并执行sqoop import命令,该命令将表从postgresql导入到hive。
在我的hive-site.xml中,我指定了:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/hlservices/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
如果:Hive的thrift服务器没有运行:
导入的表将为/hlservices/hive/warehouse/mytable
,如hive-site.xml所述。
我还可以使用“show tables”或“describe mytable”
否则如果:Hive的thrift服务器正在运行:
导入的表格将是/user/hlservices/mytable
(也是dfs中的路径),我无法在Hive的shell中看到它。
Thrift服务器是否正在运行会导致不同的结果!
由于不熟悉,找到要更改配置的文件对我来说很痛苦。
在我的项目中,需要启动thrift服务器并且永不停止。当hive的thrift正在运行时,如何告诉sqoop或hive选择正确的导入路径?
所有hive-site.xml文件
./sqoop-1.4.4.bin__hadoop-1.0.0/testdata/hcatalog/conf/hive-site.xml
./hive-0.10.0/src/data/conf/hive-site.xml
./hive-0.10.0/src/common/src/test/resources/hive-site.xml
./hive-0.10.0/src/pdk/scripts/conf/hive-site.xml
./hive-0.10.0/src/conf/hive-site.xml
./hive-0.10.0/scripts/pdk/conf/hive-site.xml
./hive-0.10.0/conf/hive-site.xml
其中,sqoop文件夹中的第一个hive-site.xml具有:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>${test.build.data}/sqoop/warehouse</value>
</property>
我尝试修改它并使其与hive的conf文件夹下的hive-site.xml相同,但它不起作用