美文网首页大数据
Hive导入文件案例

Hive导入文件案例

作者: _Unique_楠楠 | 来源:发表于2020-05-29 08:50 被阅读0次

1需求

​ 将本地/opt/module/datas/student.txt 这个目录下的数据导入到 hive 的 student(id int, name string)表中。

  • 数据准备

    • 在/opt/module/datas 这个目录下准备数据

      • 在/opt/module/目录下创建 datas mkdir datas

      • 在/opt/module/datas/目录下创建 student.txt 文件并添加数据

        touch student.txt 
        vi student.txt 
        1001 zhangshan 
        1002 lishi 
        1003 zhaoliu
        

        注意以 tab 键间隔

  • Hive 实际操作

    • 启动 hive bin/hive

    • 显示数据库 hive> show databases;

    • 使用 default 数据库 hive> use default;

    • 显示 default 数据库中的表 hive> show tables;

    • 删除已创建的 student 表 hive> drop table student;

    • 创建 student 表, 并声明文件分隔符’\t’ hive> create table student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

    • 加载/opt/module/datas/student.txt 文件到 student 数据库表中。

      hive> load data local inpath '/opt/module/datas/student.txt' into table student;

    • Hive 查询结果

      hive> select * from student; 
      OK
      1001 zhangshan 
      1002 lishi 
      1003 zhaoliu 
      Time taken: 0.266 seconds,Fetched: 3 row(s)
      
  • 遇到的问题

    再打开一个客户端窗口启动 hive,会产生 java.sql.SQLException 异常。

    Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.run(RunJar.java:221) at org.apache.hadoop.util.RunJar.main(RunJar.java:136) Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1 523) at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStore Client.java:86) at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaSto reClient.java:132) at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaSto reClient.java:104) at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:3005) at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:3024) at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:503) ... 8 more
    

    原因是,Metastore 默认存储在自带的 derby 数据库中(只允许一个连接),推荐使用 MySQL 存储 Metastore;

相关文章

  • Hive导入文件案例

    1需求 ​ 将本地/opt/module/datas/student.txt 这个目录下的数据导入到 hive...

  • Hive中导入数据和导出数据

    一、向Hive导入数据 先在Hive里面创建好表,如下: 1、从本地文件系统中导入数据到Hive表 本地文件系统里...

  • Hive基础@2019-09-02

    hive -e "sql语句" hive -f "sql文件" 导入数据到hivehive> load data ...

  • Hive导数

    hive导数有多种方式 hdfs 导入 本地导入这里主要讲本地导入 1.导出表 导出到csv 文件中再传输文件到指...

  • 导入数据到hive表中的6种方式

    数据导入六种方式 1、加载本地文件到hive表 语法 2、加载hdfs文件到hive中 3、加载数据覆盖表中已有的...

  • 9. Hive使用

    1.Hive数据导入的六种类型: 以下面两个表来实验: 1.从本地文件系统导入到hive表中: 使用load da...

  • Hive SQL语句使用记录

    清空表 Hive导入csv 作者在导入csv文件后发现数据全是NULL,经过一番搜索发现是分隔符不一致。csv文件...

  • Hive从入门到精通5:Hive数据导入

    1.从localhost导入数据 使用load语句可以导入本地磁盘上的数据(.csv文件),Hive默认的分隔符是...

  • Sqoop数据迁移

    从RDB导入到HDFS 从RDB导入到Hive 注:往hive导入数据之前需要创建好database--delet...

  • Hive学习笔记2

    Hive 的数据导入: 可以使用Load命令导入,也可以使用Sqoop组件导入数据。 Hive不支持insert插...

网友评论

    本文标题:Hive导入文件案例

    本文链接:https://www.haomeiwen.com/subject/njntzhtx.html