apachesqoop和hive有什么区别?我知道sqoop用于将数据从rdbms导入/导出到hdfs,而hive是hadoop之上的sql层抽象。我可以使用sqoop将数据导入hdfs,然后使用hive进行查询吗?
6yoyoihd1#
是的,你可以。事实上,这正是它的用意。
vwoqyblh2#
是的,你可以。事实上,很多人使用sqoop和hive来实现你所说的。在我的项目中,我要做的是从我的rdbms(即oracle)加载历史数据,将其移动到hdfs。我为此路径定义了配置单元外部表。这允许我运行配置单元查询来进行转换。此外,我们还常常在这些数据的基础上编写mapreduce程序,以进行各种分析。
5q4ezhmt3#
sqoop在hdfs和关系数据库之间传输数据。您可以使用sqoop将数据从关系数据库管理系统(rdbms)如mysql或oracle传输到hdfs中,并对传输的数据使用mapreduce。sqoop还可以将转换后的数据导出回rdbms。更多信息http://sqoop.apache.org/docs/1.4.3/index.htmlhive是一个数据仓库软件,它可以方便地查询和管理hdfs中的大型数据集。hive提供了对数据的读模式(与rdbms的写模式相反)以及使用类似sql的语言hiveql查询数据的能力。更多信息https://hive.apache.org/
5f0d552i4#
i) 斯库普:1。我们可以使用hdfs与任何外部数据源(即sql、nosql和数据仓库)集成,同时也可以使用这个工具导出它,因为这可以作为双向方式使用。2sqoop将数据从关系数据库移动到hbase。hive:1.据我所知,我们可以将数据从sql数据库导入hive,而不是nosql数据库。2我们无法将数据从hdfs导出到sql数据库。ii)我们可以同时使用以下两个选项1。 sqoop create-hive-table --connect jdbc:mysql://<hostname>/<dbname> --table <table name> --fields-terminated-by ',' 上面的命令将生成配置单元表,该表名将与外部表和模式2中的表名相同。加载数据 hive> LOAD DATA INPATH <filename> INTO TABLE <filename> 如果您知道要将stright从数据库直接导入到配置单元中,则可以将配置单元缩短为一个步骤 sqoop import --connect jdbc:mysql://<hostname>/<dbname> --table <table name> -m 1 --hive-import
sqoop create-hive-table --connect jdbc:mysql://<hostname>/<dbname> --table <table name> --fields-terminated-by ','
hive> LOAD DATA INPATH <filename> INTO TABLE <filename>
sqoop import --connect jdbc:mysql://<hostname>/<dbname> --table <table name> -m 1 --hive-import
4条答案
按热度按时间6yoyoihd1#
是的,你可以。事实上,这正是它的用意。
vwoqyblh2#
是的,你可以。事实上,很多人使用sqoop和hive来实现你所说的。
在我的项目中,我要做的是从我的rdbms(即oracle)加载历史数据,将其移动到hdfs。我为此路径定义了配置单元外部表。这允许我运行配置单元查询来进行转换。此外,我们还常常在这些数据的基础上编写mapreduce程序,以进行各种分析。
5q4ezhmt3#
sqoop在hdfs和关系数据库之间传输数据。您可以使用sqoop将数据从关系数据库管理系统(rdbms)如mysql或oracle传输到hdfs中,并对传输的数据使用mapreduce。sqoop还可以将转换后的数据导出回rdbms。更多信息http://sqoop.apache.org/docs/1.4.3/index.html
hive是一个数据仓库软件,它可以方便地查询和管理hdfs中的大型数据集。hive提供了对数据的读模式(与rdbms的写模式相反)以及使用类似sql的语言hiveql查询数据的能力。更多信息https://hive.apache.org/
5f0d552i4#
i) 斯库普:1。我们可以使用hdfs与任何外部数据源(即sql、nosql和数据仓库)集成,同时也可以使用这个工具导出它,因为这可以作为双向方式使用。2sqoop将数据从关系数据库移动到hbase。hive:1.据我所知,我们可以将数据从sql数据库导入hive,而不是nosql数据库。2我们无法将数据从hdfs导出到sql数据库。
ii)我们可以同时使用以下两个选项1。
sqoop create-hive-table --connect jdbc:mysql://<hostname>/<dbname> --table <table name> --fields-terminated-by ','
上面的命令将生成配置单元表,该表名将与外部表和模式2中的表名相同。加载数据hive> LOAD DATA INPATH <filename> INTO TABLE <filename>
如果您知道要将stright从数据库直接导入到配置单元中,则可以将配置单元缩短为一个步骤sqoop import --connect jdbc:mysql://<hostname>/<dbname> --table <table name> -m 1 --hive-import