【问题标题】:Unable to upload json file on hive using json serde无法使用 json serde 在 hive 上上传 json 文件
【发布时间】:2019-04-11 06:11:38
【问题描述】:

我正在尝试使用 json serde 加载 json 文件。我已经成功添加了 serde jar 文件。

1) 我的 json jar 文件放在路径 /apps/hive/warehouse/lib/ 我已经成功运行了这个命令

add jar hdfs:///apps/hive/warehouse/lib/json-serde-1.3-jar-with-dependencies.jar; converting to local hdfs:///apps/hive/warehouse/lib/json-serde-1.3-jar-with-dependencies.jar Added [/tmp/6f1a54b9-65c4-4e32-8e87-25d60ef775c6_resources/json-serde-1.3-jar-with-dependencies.jar] to class path Added resources: [hdfs:///apps/hive/warehouse/lib/json-serde-1.3-jar-with-dependencies.jar] 

2) 现在,当我尝试在此路径 /apps/hive/warehouse/lib/ 或 tmp/ 上上传 json 文件时 使用 ambari GUI。我无法上传它给出错误 500。见附件图片 3)我也试过这个命令,但因为我无法上传 json 文件。所以,它不起作用

hadoop fs -put tmp/test.json /apps/hive/warehouse/lib/test.json

请帮我解决这个问题

【问题讨论】:

    标签: json hadoop hive hdfs hive-serde


    【解决方案1】:

    要将文件加载到 hive 中,首先将文件复制到 HDFS 位置。如下:

    hadoop fs -put /complete_path_to_my_json/json_to_upload.json /app/hive/a_temp_location
    

    然后,一旦您使用 JSON SerDe 创建了表,如下所示:

    create table if not exists my_json_table (id int, name string, designation string) row format serde 'org.apache.hive.hcatalog.d.JsonSerDe';
    

    您可以使用以下语句将数据加载到表中:

    load data inpath '/app/hive/a_temp_location/json_to_upload.json' into table my_json_table;
    

    【讨论】:

    • 我的 json 文件名 test.json 放在我电脑的桌面上。现在我正在尝试使用 ambari gui 将它上传到 hdfs 目录,它给出错误 500,而不是上传它。请查看附件图片我已编辑问题
    • 大多是有上传到目录的权限。请参考-community.hortonworks.com/questions/115942/…
    • 无法理解..请帮助如何检查maria_dev是否对该目录有写权限?
    • 尝试将文件从控制台作为 maria_dev 放到该位置,看看会发生什么!
    • 从您尝试 hadoop fs 命令的控制台执行以下命令:touch /tmp/testfile && hadoop fs -put /tmp/testfile /apps/hive
    猜你喜欢
    • 2019-09-01
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多