2016-12-30 92 views
0

我想我的HDFS导出到Crate.io DB和我使用Sqoop做到这一点。 我已经导入了所需的.jar文件和我的sqoop文件看起来像:Sqoop出口从HDFS到Crate.io DB没有错误/输出

export 
--connect 
jdbc:crate://<SERVER-IP>:4200/ 

--driver 
io.crate.client.jdbc.CrateDriver 

--table 
test 

--export-dir 
/to/file/in/hdfs 

--input-fields-terminated-by 
',' 

--columns 
name, age 

我sqoop操作没有任何错误运行,但有一个从我的HDFS没有得到插进箱子分贝。 我试过在IP中提到“doc”,但仍然没有成功。

--connect 
jdbc:crate://<SERVER-IP>:4200/doc 

还或者使用

--table 
doc.test 

我已经能够通过Python库到内容插入箱子,但不是通过Sqoop。 任何想法我可能在这里做错了吗?

+0

Python使用HTTP,这就是为什么它通过4200工程,CrateDB的JDBC驱动程序(1.x版)使用4300,CrateDB的JDBC驱动程序版本2.x使用端口5432 这样: JDBC :箱子:// :4300/DOC或JDBC:箱子:// :5432/DOC – claus

回答

1

您正在使用作为HTTP端口公开的端口4200。自从Crate 0.57开始,你可以通过postges协议(5432)进行访问。 0.57之前,你需要使用TCP 4300 JDBC

+0

嗨@迈克尔我试图改变我的端口是5432,并打开了它的实例。仍然无法插入。我甚至用一个正常的csv进行测试,只用一列逗号分隔以查看它是否上升。没有。 –

+0

@jacob可以试试看sqoops查询是否有CrateDB? https://crate.io/docs/reference/en/latest/best_practice/systables.html#step-2-activity-in-the-cluster 此外,该表是否已经创建或您是否依靠sqoop ? – claus

+0

@claus似乎没有从sqoop到达CrateDB,这就是为什么我通过更改端口将是一个适当的修复。该表已在Sqoop中创建,我只是试图向其中插入值。 –