floks
我有一个客户问题。我想从sql server(RDBMS)到我的hdfs(hadoop集群)获取表。但服务器位于不同的位置。
1)访问服务的最佳方式是哪种,但数据量很大。
2)连接一台服务器是可以的,我们全球有很多服务器,我们必须从这些服务器获取数据。
3)我们可以远程连接sqoop以获取数据到HDFS。
答案 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个月了,所以我希望这个问题能够得到解决,但是如果有人想要按照这个要求逐步完成这个问题。
此致 阿迪尔