Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与在Amazon EMR上运行Hive/Sqoop相关的查询? 我的用例:_Java_Amazon S3_Hive_Amazon Emr_Sqoop - Fatal编程技术网

Java 与在Amazon EMR上运行Hive/Sqoop相关的查询? 我的用例:

Java 与在Amazon EMR上运行Hive/Sqoop相关的查询? 我的用例:,java,amazon-s3,hive,amazon-emr,sqoop,Java,Amazon S3,Hive,Amazon Emr,Sqoop,我想通过SQOOP将大型数据从EC2导入到配置单元中。在配置单元中导入的数据将通过应用某些算法在配置单元中进行处理,并将生成一些结果(以表格形式,仅在配置单元中)。生成的结果将仅通过SQOOP再次导出回Ec2 我是AmazonWeb服务新手,希望在AWSEMR的帮助下实现这个用例。我已经在本地机器上实现了它 我已经阅读了一些与AWS EMR有关的链接,以启动该实例,并了解了什么是EMR,它是如何工作的等等 我对EMR有一些疑问,比如: 1) EMR使用S3存储桶,它保存Hadoop处理的输入和输

我想通过SQOOP将大型数据从EC2导入到配置单元中。在配置单元中导入的数据将通过应用某些算法在配置单元中进行处理,并将生成一些结果(以表格形式,仅在配置单元中)。生成的结果将仅通过SQOOP再次导出回Ec2

我是AmazonWeb服务新手,希望在AWSEMR的帮助下实现这个用例。我已经在本地机器上实现了它

我已经阅读了一些与AWS EMR有关的链接,以启动该实例,并了解了什么是EMR,它是如何工作的等等

我对EMR有一些疑问,比如: 1) EMR使用S3存储桶,它保存Hadoop处理的输入和输出数据(以对象的形式)。-->我不知道如何在S3上以对象的形式存储数据(我的数据将是文件)

2) 如前所述,我已经用Java为我的用例实现了一个任务。因此,如果我创建程序的JAR并使用自定义JAR创建作业流。是否有可能像这样实现,或者确实需要为此做一些额外的事情

3) 正如我在用例中所说的,我希望在SQOOP的帮助下将结果导出回Ec2。EMR是否支持SQOOP

--编辑部分 4) 此外,当我在SQL Server中的数据每天/每周更新时,我将每天/每周从SQL Server导入数据。如果我想在S3上导入这些数据并将其提供给Hive,那么我该怎么做呢?(因为配置单元将其数据存储在HDFS的/user/Hive/warehouse目录下)。 如何在HDFS中链接到S3和/user/hive/warehouse目录

请尽快给我答复。我想尽早这样做


非常感谢。

可以在AWS EMR上安装Sqoop。您不需要使用S3来存储文件,而是可以使用本地(临时)HDF。安装Sqoop后,可以将数据导入HDFS,在HDFS中运行计算,然后再次使用Sqoop导出数据

下面是我写的一篇关于如何在AWS EMR上安装Sqoop的文章:
可以在AWS EMR上安装Sqoop。您不需要使用S3来存储文件,而是可以使用本地(临时)HDF。安装Sqoop后,可以将数据导入HDFS,在HDFS中运行计算,然后再次使用Sqoop导出数据

下面是我写的一篇关于如何在AWS EMR上安装Sqoop的文章:

与我在Hive邮件列表中的回复相同:

回答您的问题:

1) S3术语使用“对象”这个词,我相信他们有很好的理由解释为什么,但对于我们这些蜂巢人来说,S3对象与存储在S3上的文件是一样的。文件的完整路径将是Amazon所称的S3“键”,相应的值将是文件的内容,例如S3://my_bucket/tables/log.txt将是键,文件的实际内容将是S3对象。您可以使用AWS web控制台创建一个bucket,并使用S3cmd等工具(http://s3tools.org/s3cmd)将数据放入S3

但是,您不一定需要使用S3。S3通常仅在您想要持久存储数据时使用。大多数人会将他们的输入日志/文件存储在S3上以供配置单元处理,还将最终的聚合和结果存储在S3上以供将来检索。如果您只是临时将一些数据加载到配置单元中,对其进行处理并将其导出,则不必担心S3。构成集群的节点具有形成HDF的临时存储。你可以用这个。唯一的副作用是,一旦终止集群,您将丢失HDFS中的所有数据。如果可以的话,不用担心S3

EMR实例基本上是EC2实例,并在其上进行了一些附加设置。我认为在EC2和EMR实例之间传输数据应该很简单。如果您的数据存在于EBS卷中,您可以考虑添加一个EMR引导操作,将相同的EBS卷装载到您的EMR实例上。不过,如果你不必做那些花哨的装裱生意,这可能会更容易些

另外,请记住,跨Amazon数据中心的数据传输可能会有成本,如果可能的话,您希望将S3存储桶、EMR集群和EC2实例保持在同一个区域。在同一地区,不应该有任何额外的转移成本

2) 是的,EMR支持定制罐子。您可以在创建集群时指定它们。这应该需要对jar本身进行最小的移植更改,因为它在Hadoop和Hive上运行,与您在本地集群上安装的内容和在EMR上安装的内容相同(很接近)

3) 带EMR的Sqoop应该可以

参考资料:

与我在Hive邮件列表中的回复相同:

回答您的问题:

1) S3术语使用“对象”这个词,我相信他们有很好的理由解释为什么,但对于我们这些蜂巢人来说,S3对象与存储在S3上的文件是一样的。文件的完整路径将是Amazon所称的S3“键”,相应的值将是文件的内容,例如S3://my_bucket/tables/log.txt将是键,文件的实际内容将是S3对象。您可以使用AWS web控制台创建一个bucket,并使用S3cmd等工具(http://s3tools.org/s3cmd)将数据放入S3

但是,您不一定需要使用S3。S3通常仅在您想要持久存储数据时使用。大多数人会将他们的输入日志/文件存储在S3上以供配置单元处理,还将最终的聚合和结果存储在S3上以供将来检索。如果您只是临时将一些数据加载到配置单元中,对其进行处理并将其导出,则不必担心S3。构成集群的节点具有形成HDF的临时存储。你可以用这个。唯一的副作用是,一旦终止集群,您将丢失HDFS中的所有数据。如果可以的话,不要这样做