如何使用sqoop将SQL表作为实木复合地板文件导入GCS存储桶中

问题描述 投票:-2回答:1

[将SQL表作为实木复合地板文件导入Google云存储桶时遇到问题...下面是我面临的代码和错误。

sqoop import --connect=jdbc:mysql://IP/DBName --username=abc --password=abc --target-dir=gs://gcs_bucket --table sales--split-by personid -m 2 --as-parquetfile

错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/kitesdk/data/mapreduce/DatasetKeyOutputFormat
        at org.apache.sqoop.mapreduce.DataDrivenImportJob.getOutputFormatClass(DataDrivenImportJob.java:190)
        at org.apache.sqoop.mapreduce.ImportJobBase.configureOutputFormat(ImportJobBase.java:94)
        at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:259)
        at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:673)
        at org.apache.sqoop.manager.MySQLManager.importTable(MySQLManager.java:118)
        at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:497)
        at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
        at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
        at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
Caused by: java.lang.ClassNotFoundException: org.kitesdk.data.mapreduce.DatasetKeyOutputFormat
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.lo`enter code here`adClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
sql google-cloud-platform hdfs sqoop bucket
1个回答
0
投票

如何使用sqoop将Cloud SQL表作为木地板文件导入GCS存储桶?

因为sqoop(代表Hadoop的SQL)使用Hadoop,所以我认为最好的选择是使用Cloud Dataproc

Dataproc是一种快速,易于使用的,完全托管的云服务,用于以更简单,更具成本效益的方式运行Apache SparkApache Hadoop集群。过去耗时数小时或数天的操作现在只需数秒或数分钟即可完成,您只需为使用的资源付费(按秒计费)。

我附加了tutorial,以便将您的数据从Cloud SQL移至Google Cloud Storage Buckets。在本教程中,他们使用--as-avrodatafile,但您可以将其更改为使用--as-parquetfile

我强烈建议您使用Cloud Datapoc的方法,因为在很长一段时间内,如果您需要一天多次运行此命令,则可以使用Cloud Dataproc来完成将Cloud SQL数据导入GCS(Google Cloud Storage)的工作。

此外,如果您想使用Python,则可以使用Apache Spark从Cloud SQL收集数据并将其写入镶木地板文件中,如此post所示。

© www.soinside.com 2019 - 2024. All rights reserved.