【问题标题】:Ambari- Import multiple files to HiveAmbari- 将多个文件导入 Hive
【发布时间】:2016-11-21 12:08:13
【问题描述】:

我有一个 python 脚本,它为我想要导入 Hive 的目录中的文件生成模式、删除表和加载表命令。然后我可以在 Ambari 中运行这些来导入文件。可以执行多个“创建表”命令,但是在上传文件以导入各自的 Hive 表时,我一次只能上传一个文件。

有没有办法将这些命令放在一个文件中并一次全部执行,以便创建所有表并将相关文件随后上传到各自的表中?

我还尝试将文件导入 HDFS,然后使用“hdfs dfs -copyFromLocal /home/ixroot/Documents/ImportToHDFS /hadoop/hdfs”命令通过 Linux 将它们发送到 Hive,但出现诸如“no such”之类的错误关于 'hadoop/hdfs' 的目录'突然出现。我曾尝试使用 chmod 更改权限,但这些似乎也没有效果。

如果有人能告诉我在将多个文件有效地导入 Hive 中各自的表中时,我将非常感激。

【问题讨论】:

    标签: hadoop hive hdfs ambari


    【解决方案1】:

    1) 有没有办法将这些命令放在一个文件中并一次全部执行,以便创建所有表并将相关文件随后上传到各自的表中?

    您可以在 .hql 文件中提供所有查询,例如 test.hql 并运行 hive -f test.hql 以一次性执行所有命令

    2) 'no such directory'等错误

    输入hadoop fs -mkdir -p /hadoop/hdfs,然后输入hadoop fs -copyFromLocal /home/ixroot/Documents/ImportToHDFS /hadoop/hdfs

    编辑:获得许可

    hadoop fs -chmod -R 777 /user/ixroot

    【讨论】:

    • 感谢 Nirmal,我已经尝试过了,但与其他 hive 相关命令一样,我收到以下错误:'线程“main”中的异常 java.lang.RuntimeException: org.apache.hadoop.security.AccessControlException : 权限被拒绝:user=ixroot, access=WRITE, inode="/user/ixroot":hdfs:hdfs:drwxr-xr-x'
    • 我尝试过 chmod 命令,它们在执行 'ls -al' 时似乎确实改变了读/写属性,但似乎对导入文件没有任何影响。
    • 我试过 'sudo chmod 771 hdfs' 广告问题是有一个 '/home/hdfs' 目录,但每当我尝试访问它或执行 chmod 时,它都会显示 'chmod: cannot访问“hdfs”:没有这样的文件或目录。
    • 我可以在不先发送到 HDFS 的情况下构建 Hive 表,在我的第一种方法中,我转到用户 -> 管理员 -> 数据,使用 Ambari 将文件放在那里。也许不需要 HDFS 步骤。
    • 谢谢 Nirmal,我没有 user/ixroot 目录,但我有 user/hdfs 目录,我尝试了 'hadoop fs -chmod -R 777 /user/hdfs',但它说'chmod:更改'/user/hdfs'的权限:权限被拒绝。 user=ixroot 不是 inode=hdfs' 的所有者
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 2011-06-04
    相关资源
    最近更新 更多