hive导入HDFS数据

在尝试使用Hive导入HDFS上的/qar_test.txt文件时遇到SemanticException,错误指出路径'hdfs://Master:9000/user/test/qar_test'无效。检查发现Hive元数据存储在MySQL数据库中,DBS表的DB_LOCATION_URI显示为'hdfs://10.1.51.200:9000/hive/warehouse'。修正导入命令,将路径改为'hdfs://10.1.51.200:9000/user/test/qar_test',问题得到解决。
摘要由CSDN通过智能技术生成

HDFS文件路径:/user/test/qar_test.txt

文件格式:***,***,***

创建hive表:

create table test_load(type STRING,num INT,time STRING)

partitioned by(name STRING)  //分区

row format delimited

fields terminated by ','  //以逗号分隔

stored as TEXTFILE

导入HDFS文件数据:

load data inpath 'hdfs://Master:9000/user/test/qar_test'

into table test_load

partition (name=‘MH');

报错:

FAILED: SemanticException Line 1:17 Invalid path ''hdfs://Master:9000/user/test/qar_test'': No files matching path hdfs://Master:9000/user/test/qar_test

路径不对,这个就很奇怪了。我再查询MySQL数据库(我的hive元数据放在MySQL数据库中,其它方法类似)。

查询hive下的DBS表DB_LOCATION_URI列:select DB_LOCATION_URI from DBS;

+----------------------------------------+
| DB_LOCATION_URI                        |
+----------------

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好,要将HDFS上的数据导入Hive中,可以使用Sqoop工具。Sqoop是一个用于在Hadoop和关系型数据库之间进行数据传输的工具。 以下是使用Sqoop导入HDFS数据Hive的一般步骤: 1. 确保您已经安装并配置好了Sqoop和Hive。 2. 在终端中使用以下命令执行Sqoop导入操作: ``` sqoop import \ --connect jdbc:mysql://mysql_host:port/database \ --username username \ --password password \ --table table_name \ --hive-import \ --hive-table hive_table_name \ --hive-overwrite ``` 其中,`mysql_host`是MySQL数据库的主机名,`port`是MySQL的端口号,`database`是要导入数据库名称,`username`和`password`是连接MySQL所需的用户名和密码,`table_name`是要导入的MySQL表名,`hive_table_name`是要在Hive中创建的表名。 3. 根据需要,您可以为Sqoop导入操作提供其他参数,如`--target-dir`来指定HDFS中的目标目录,以及其他Sqoop支持的参数。可以使用`sqoop import --help`命令查看完整的参数列表。 4. 执行命令后,Sqoop将会从MySQL数据库中抽取数据,并将其存储在HDFS上的目标目录中。然后,它将自动在Hive中创建一个与MySQL表结构相匹配的表,并将数据加载到该表中。 请注意,上述命令中的参数和示例是基于MySQL数据库的。如果您使用其他类型的关系型数据库,请根据需要修改连接字符串和其他参数。 希望这些信息对您有所帮助!如果您还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值