访问远程服务器获取数据并将其放入hdfs

时间:2014-01-08 16:19:32

标签: hadoop

floks

我有一个客户问题。我想从sql server(RDBMS)到我的hdfs(hadoop集群)获取表。但服务器位于不同的位置。

1)访问服务的最佳方式是哪种,但数据量很大。

2)连接一台服务器是可以的,我们全球有很多服务器,我们必须从这些服务器获取数据。

3)我们可以远程连接sqoop以获取数据到HDFS。

2 个答案:

答案 0 :(得分:1)

您的问题有点不清楚,但是,您可以使用sqoop将服务器中的数据导入HDFS。您需要在导入数据时指定连接参数:

sqoop import --connect <JDBC connection string> --table <tablename> --username <username> --password <password>

如果您需要从多个服务器进行多次导入,我建议您尝试使用Oozie自动执行这些导入。您可以找到实现here的教程。

答案 1 :(得分:0)

在写下sqoop导入之前,您需要为每个远程节点设置一个用户,该用户将由您的本地数据库识别。对于Ex:

create user 'username'@'<ip of remote node>' IDENTIFIED BY 'password';

您还必须根据您的要求确保对这些用户的授予权限。 然后您可以构建sqoop导入框架,如下所示:

$SQOOP_HOME/bin/sqoop  import  --connect jdbc:mysql://<ip address of remote server node> :port_number/<database_name>  --username user  --password password  --table <table to import>

对于这个答案,这个问题已经有5个月了,所以我希望这个问题能够得到解决,但是如果有人想要按照这个要求逐步完成这个问题。

此致 阿迪尔