• Impala入门案例


    使用Yum方式安装Impala后,impala-shell可以全局使用;进入impala-shell命令行

    impala-shell进入到impala的交互窗口

    [root@linux123 conf]# impala-shell

    查看所有数据库

    show databases;

    如果想要使用Impala ,需要将数据加载到Impala中,如何加载数据到Impala中呢?

    • 使用Impala的外部表,这种适用于已经有数据文件,只需将数据文件拷贝到HDFS上,创建一张 Impala外部表,将外部表的存储位置指向数据文件的位置即可。(类似Hive)
    • 通过Insert方式插入数据,适用于我们没有数据文件的场景。

    1、准备数据文件

    user.csv

    392456197008193000,张三,20,0

    267456198006210000,李四,25,1

    892456199007203000,王五,24,1

    492456198712198000,赵六,26,2

    392456197008193000,张三,20,0

    392456197008193000,张三,20,0

    2、创建HDFS 存放数据的路径

    hadoop fs -mkdir -p /user/impala/t1

    #上传本地user.csv到hdfs /user/impala/table1

    hadoop fs -put user.csv /user/impala/t1

    3、创建表

    #进入impala-shell

    impala-shell

    #表如果存在则删除

    drop table if exists t1;

    #执行创建

    1. create external table t1(id string,name string,age int,gender int)
    2. row format delimited fields terminated by ','
    3. location '/user/impala/t1';

    4、查询数据

    1. [linux122:21000] > select * from t1;
    2. Query: select * from t1
    3. +--------------------+------+-----+--------+
    4. | id | name | age | gender |
    5. +--------------------+------+-----+--------+
    6. | 392456197008193000 | 张三 | 20 | 0 |
    7. | 267456198006210000 | 李四 | 25 | 1 |
    8. | 892456199007203000 | 王五 | 24 | 1 |
    9. | 492456198712198000 | 赵六 | 26 | 2 |
    10. | 392456197008193000 | 张三 | 20 | 0 |
    11. | 392456197008193000 | 张三 | 20 | 0 |
    12. +--------------------+------+-----+--------+

    5、创建t2表

    1. #创建⼀个内部表
    2. create table t2(id string,name string,age int,gender int)
    3. row format delimited fields terminated by ',';
    4. #查看表结构
    5. desc t1;
    6. desc formatted t2;

    6、插入数据到t2

    1. insert overwrite table t2 select * from t1 where gender =0;
    2. #验证数据
    3. select * from t2;
    4. [linux122:21000] > select * from t2;
    5. Query: select * from t2
    6. +--------------------+------+-----+--------+
    7. | id | name | age | gender |
    8. +--------------------+------+-----+--------+
    9. | 392456197008193000 | 张三 | 20 | 0 |
    10. | 392456197008193000 | 张三 | 20 | 0 |
    11. | 392456197008193000 | 张三 | 20 | 0 |
    12. +--------------------+------+-----+--------+

    7、更新元数据

            使用Beeline连接Hive查看Hive中的数据,发现通过Impala创建的表,导入的数据都可以被Hive感知到。

    1. 0: jdbc:hive2://linux123:10000> show tables;
    2. +-----------+
    3. | tab_name |
    4. +-----------+
    5. | t1 |
    6. | t2 |
    7. +-----------+
    8. select * from t1;
    9. 0: jdbc:hive2://linux123:10000> select * from t1;
    10. +---------------------+----------+---------+------------+
    11. | t1.id | t1.name | t1.age | t1.gender |
    12. +---------------------+----------+---------+------------+
    13. | 392456197008193000 | 张三 | 20 | 0 |
    14. | 267456198006210000 | 李四 | 25 | 1 |
    15. | 892456199007203000 | 王五 | 24 | 1 |
    16. | 492456198712198000 | 赵六 | 26 | 2 |
    17. | 392456197008193000 | 张三 | 20 | 0 |
    18. | 392456197008193000 | 张三 | 20 | 0 |
    19. +---------------------+----------+---------+------------+

    小结:

    • 上面案例中Impala的数据文件我们准备的是以逗号分隔的文本文件,实际上,Impala可以支持RCFile,SequenceFile,Parquet等多种文格式。
    • Impala与Hive元数据的关系?
      • Hive对于元数据的更新操作不能被Impala感知到;
      • Impala对元数据的更新操作可以被Hive感知到。
    • Impala同步Hive元数据命令: 手动执行invalidate metadata 
    • Impala是通过Hive的metastore服务来访问和操作Hive的元数据,但是Hive对表进行创建删除修改等操作,Impala是无法自动识别到Hive中元数据的变更情况的,如果想让Impala识别 到Hive元数据的变化,所以需要进入impala-shell之后首先要做的操作就是执行invalidate metadata,该命令会将所有的Impala的元数据失效并重新从元数据库同步元数据信息。后面详细讲解元数据更新命令。
    • Impala操作HDFS使用的是Impala用户,所以为了避免权限问题,我们可以选择关闭权限校验。(在hdfs-site.xml中添加如下配置:)
      1. <property>
      2. <name>dfs.permissions.enabledname>
      3. <value>falsevalue>
      4. property>
  • 相关阅读:
    七、torch.nn
    【Linux】Linux权限管理————shell运行原理 | Linux权限管理 | 粘滞位 | 权限掩码umask
    go语言零碎笔记
    Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
    聚观早报|小米14渲染图曝光;蚂蚁金融大模型正式发布
    数字信号采集保存与处理通用过程
    【Linux】软连接和硬链接:创建、管理和解除链接的操作
    GD32F30x gpio 模拟串口
    从内存优化视角再看 Glide 图片加载库
    java spring cloud 企业工程管理系统源码+二次开发+定制化服务
  • 原文地址:https://blog.csdn.net/weixin_52851967/article/details/127525450