文章目录

  • 一、上传完整的jar文件到hive/lib中
  • 二、修改hive-site.xml
  • 三、修改hive-env.sh
  • 四、在hive和hbase中分别创建相关联的表并通过hive向hbase表中加载数据
  • 五、在hive中创建外部表映射hbase中已存在的表
  • 六、特别注意

一、上传完整的jar文件到hive/lib中

  1. 删除hive/lib下所有文件
  2. 解压上传hive所有的jar到该目录下

二、修改hive-site.xml

    <name>hbase.zookeeper.quorum</name><value>ghym,ghys1,ghys2</value>#自定义的zookeeper集群电脑名与hbase建立联系<name>hive.zookeeper.quorum</name><value>ping1,ping2,ping4</value>#自定义的zookeeper集群电脑名与hive建立联系<name>hive.aux.jars.path</name>#将jar文件的位置指定为本地目录,否则默认在HDFS上寻找jar<value>file:///home/hadoop/hive-2.3.3/lib/hbase-server-1.1.1.jar,file:///home/hadoop/hive-2.3.3/lib/hbase-client-1.1.1.jar,file:///home/hadoop/hive-2.3.3/lib/hive-hbase-handler-2.2.0.jar,file:///home/hadoop/hive-2.3.3/lib/zookeeper-3.4.6.jar</value>

三、修改hive-env.sh

export HADOOP_HOME=/home/hadoop/hadoop-2.9.0#hadoop目录
export HBASE_HOME=/home/hadoop/hbase-1.2.6#hbase目录
export HIVE_CONF_DIR=/home/hadoop/hive-2.3.3/conf#hive配置文件目录

四、在hive和hbase中分别创建相关联的表并通过hive向hbase表中加载数据

CREATE TABLE hive表名(key int, value1 string, value2 int,...)#hive表列名和数据类型
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES (
"hbase.columns.mapping" = ":key,a:b,a:c,..."#hbase表rowkey,列族:列名
)TBLPROPERTIES(
"hbase.table.name"="hbase表名",
"hbase.mapred.output.outputtable"="hbase表名"
);
#不支持load data命令,通过insert从其他表查询数据加载
insert overwrite table hive表名 select eno,ename,... from emp;

关键字

  1. STORED BY 表示使用hive配置中的类完成向hbase中存储数据
  2. WITH SERDEPROPERTIES 表示创建hive临时对应hbase表的列族名称
  3. TBLPROPERTIES 表示对应hbase中表的名称
  4. hbase.mapred.output.outputtable表示mapreduce操作向hbase表中输出

五、在hive中创建外部表映射hbase中已存在的表

CREATE EXTERNAL TABLE hive表名(key int, value1 string, value2 int,...)#hive表列名和数据类型
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES (
"hbase.columns.mapping" = ":key,a:b,a:c,..."#hbase表rowkey,列族:列名
)TBLPROPERTIES(
"hbase.table.name"="hbase表名",
"hbase.mapred.output.outputtable"="hbase表名"
);

特点

  1. 建表或映射表的时候如果没有指定:key则第一个列默认就是行键
  2. HBase对应的Hive表中没有时间戳概念,默认返回的就是最新版本的值
  3. 由于HBase中没有数据类型信息,所以在存储数据的时候都转化为String类型

六、特别注意

  1. 对HBase表进行预分区,增大其MapReduce作业的并行度
  2. 合理的设计rowkey使其尽可能的分布在预先分区好的Region上
  3. 通过set hbase.client.scanner.caching设置合理的扫描缓存

【Hive】如何在 Hive 中创建外部表映射 Hbase 中已存在的表相关推荐

  1. hive中创建外部表分区表测试

    --创建外部表 CREATE EXTERNAL TABLE my_report( last_update string, col_a string) PARTITIONED BY ( par_dt s ...

  2. oracle外部表kup-04040,【故障处理】19c PDB中创建外部表时,出现KUP-04040报错

    [故障描述] 使用网络连接的方式登录19c的PDB,然后创建oracle_loader驱动模式的外部表.创建成功后,在检索数据时,出现KUP-04040的报错,过程如下: [oracle@sdedu ...

  3. mysql中创建用户并授权_MySQL中创建用户及授权[转]

    GRANT 语句的语法如下: GRANT privileges (columns) ON what TO user IDENTIFIEDBY "password" WITH GRA ...

  4. 遍历HBase表中的数据(把hbase中存储的图片写到本地)

    这段代码十分简单,我写这篇博客的唯一原因就是告诉广大像我一样的新手一句话:还是用maven把..... 先把代码撸上: package com.***.**;import java.io.File; ...

  5. Kubernetes 中创建 Pod 时集群中到底发生了些什么?

    想象一下,如果我想将 nginx 部署到 Kubernetes 集群,我可能会在终端中输入类似这样的命令: $ kubectl run --image=nginx --replicas=3 然后回车. ...

  6. 在linux系统中创建文件夹,Linux系统中创建文件夹命令详解

    Linux系统中创建一个新的文件夹我们可以使用命令来执行,下面由学习啦小编为大家整理了Linux系统中创建文件夹命令详解,希望对大家有帮助! Linux系统中创建文件夹命令详解 一.mkdir命令使用 ...

  7. 人工智能之配置环境教程二:在Anaconda中创建虚拟环境并在VsCode中使用

    人工智能之配置环境教程二:在Anaconda中创建虚拟环境安装pytorch并在VsCode中使用虚拟环境 作者介绍 一. 在Anaconda中创建虚拟环境 1. 进入本地终端 1.1 键盘使用**w ...

  8. mysql怎么查看自己建的表_mysql怎么查看已建的表

    mysql查看已建数据表的方法:使用SHOW CREATE TABELE查看数据表,SHOW CREATE TABLE语句不仅可以查看创建表时的定义语句,还可以査看表的字符编,代码为[SHOW CRE ...

  9. 如何在linux终端创建txt文件,在Linux中,如何使用 命令行 快速创建一个文本文件...

    如果需要创建文本文件,有一些易于使用的方法. 创建文本文件的第一个方法使用"cat"命令,在提示符下键入以下命令并按Enter,cat > sample.txt 按Enter ...

最新文章

  1. 【Flutter】StatelessWidget 组件 ( Divider 组件 | Card 组件 | AlertDialog 组件 )
  2. PHP版Leetcode题解开始随缘更新
  3. 【嵌入式干货】利用二分法定位Flash存有数据(非FF)的地址
  4. 学长毕业日记 :本科毕业论文写成博士论文的神操作20160317
  5. Boost::Exception提供的各种常用 error_info typedef的预期用途的测试
  6. 浅析多个单列索引和联合索引的区别
  7. P4342:[IOI1998]Polygon(区间dp)
  8. HttpClient系列~StringContent与FormUrlEncodedContent
  9. python包的管理(添加的3种方式 删除包)
  10. windows server 2008 DC 活动目录备份还原
  11. 回车,换行,转义字符“\r”,“\n”是什么关系?
  12. tp5可以请求到linux根目录么,TP5 获取项目根目录路径
  13. 教大家一个免费复制粘贴百度文库文字的方法
  14. 打印文件出现xps_什么是XPS文件?Windows为什么要我将其打印到一个文件?
  15. IDEA谷歌翻译插件提示:更新 TKK 失败,请检查网络连接
  16. R语言必看推荐:R语言入门经典版(中文版)+R语言实战第二版(中文完整版)
  17. docker镜像指定安装源_详解如何修改docker pull镜像源
  18. WIN10装cygwin后,打开提示找不到mintty
  19. Pandas数据分析及可视化应用实践
  20. VC Debug与Release区别

热门文章

  1. UE4 Niagara UI Renderer插件使用
  2. 网上教学系统mysql课程设计_基于学生信息管理系统的数据库系统课程设计(MySQL)...
  3. DOM初探(14)——查看滚动条的滚动距离
  4. win10桌面文件丢失的处理总结
  5. ubuntu22.04连网/peap/WPA2/MSCHAPv2
  6. 什么猫猫最受欢迎?Python采集猫咪交易数据
  7. 【金猿人物展】数睿数据创始人兼CEO穆鸿:大数据价值创造关键在于应用普惠...
  8. n*m的格子中正方形个数和长方形个数
  9. 13- 数据建模-建模方法三:实体建模
  10. 经典物理建模钢琴-4Front TruePianos v1.9.8 WiN-MAC