hadoop - 将大型数据集从 Hive 复制到本地目录

标签 hadoop hive

我正在尝试将数据从配置单元表复制到我的本地目录。 我使用的代码是:

nohup hive -e "set hive.cli.print.header=true; set hive.resultset.use.unique.column.names=false; select * from sample_table;" | sed 's/[\t]/|/g'  > /home/sample.txt &

问题是该文件大约有 400 GB,并且该过程需要很长时间才能完成。

有没有更好的方法,比如在生成文件时压缩文件。

我需要将数据作为 .txt 文件,但我无法快速解决此问题。

任何聪明的想法都会非常有帮助。

最佳答案

您是否尝试过使用 hadoop 命令的 -getmerge 选项来完成它?这通常是我用来合并 Hive 文本表并导出到本地共享驱动器的方法。

hadoop fs -getmerge ${SOURCE_DIR}/table_name ${DEST_DIR}/table_name.txt

我认为 sed 命令也会显着降低速度。如果您在提取数据之前在 Hive 中进行字符替换,这将比在您的边缘节点上运行的单线程 sed 命令更快。

关于hadoop - 将大型数据集从 Hive 复制到本地目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47189358/

相关文章:

hadoop - 为什么对 pig 中的元素计数比 hive 慢得多

java - 分布式缓存

eclipse - java.io.IOException : No FileSystem for scheme: maprfs 异常

sql - Hive 选择行,其中 A 列中的字符串包含 B 列中的字符串

hadoop - 为什么挂起的 map task 没有启动?

sql - 获取 Hive 中某一行的最大值的列

apache-spark - Hive on Spark 无法工作 - 无法创建 Spark 客户端

java - Spark Java API、Kerberos 和 Hive 的问题

hadoop - 直线不加载CSV文件

hadoop - Hive Query Fail with Error 此作业的任务数 31497 超出了配置的限制 30000