Hive无法加载数据 - cloudera快速启动VM 5.8

时间:2016-11-28 00:21:39

标签: hadoop hive cloudera cloudera-quickstart-vm

我正在使用cloudera quickstart VM 5.8作为hadoop环境。我试着做以下几点。

  1. 使用hdfs absolute uri
  2. 创建了一个配置单元表
      

    创建外部表如果不存在stocks_tb(exch STRING,符号   STRING,ymd STRING,price_open FLOAT,price_high FLOAT,price_low   FLOAT,price_close FLOAT,交易量INT,price_adj_close FLOAT)行   格式删除字段由','终止地点   ' HDFS://quickstart.cloudera:8020 / hadoop的/蜂巢/股&#39 ;;

    {我尝试使用相对路径,但是hive CLI抱怨我使用的是需要绝对路径的相对路径}

    1. 将数据集库从本地文件系统加载到HDFS中的输入/库存。

    2. 尝试将数据集加载到表

    3.   

      LOAD DATA INPATH' hdfs://quickstart.cloudera:8020 / input / stocks' INTO   表stocks_tb;

      我收到错误

      Invalid path ''hdfs://quickstart.cloudera:8020/input/stocks'': 
      No files matching path hdfs://quickstart.cloudera:8020/input/stocks
      

      我不知道为什么会收到此错误。数据存在于输入/股票/股票中,但发生错误。

      您能否发现错误/有关错误的任何想法?

      当我这样做时

        

      hadoop fs -ls hdfs://quickstart.cloudera:8020 / input / stocks

      我无法看到任何文件,但是当我这样做时

        

      hadoop fs -ls输入/股票

      我看到了股票档案

      我不知道如何解释这个。你能帮忙吗?

      谢谢

2 个答案:

答案 0 :(得分:0)

您的用户可能无权读取/写入HDFS中的/输入/股票。

您正在运行该程序的用户是哪个?您可以尝试使用hdfs超级用户帐户。

/ input / stocks的所有权是什么?

运行以下内容以检查所有权

hadoop fs -ls /
hadoop fs -ls /input

您可以运行以下命令来设置所有权/权限;

hadoop fs -chown user:group /input

答案 1 :(得分:0)

正如我所怀疑的那样。

数据实际上是在user / cloudera / input / stocks中,我在load命令中指的是/ input / stocks。

正确的加载命令是

  

LOAD DATA INPATH   ' HDFS://quickstart.cloudera:8020 /用户/ Cloudera的/输入/股'            INTO TABLE stocks_tb;