hive简介——java连接和数据管理的方式
来源:互联网 发布:微信二级分销系统源码 编辑:程序博客网 时间:2024/05/19 04:02
在hadoop中hive担任的是数据仓库的角色,主要用来存储数据,而且存储的数据是不再修改的数据。hive集成了SQL技术,提供了类SQL的查询语句,称为HQL(和类SQL语句操作一样,在此就不再详细介绍)。在类SQL的增删改查操作中,HQL提供了INSERT(增)和SELECT(查)操作。
java操作hive就像java操作mysql一样使用jdbc。使用java操作hive时要先启动hive集群中的hiveserver2(指令:hive –service hiveserver2)
/* * 驱动名: *HiveServer—>org.apache.hadoop.hive.jdbc.HiveDriver *HiveServer2—>org.apache.hive.jdbc.HiveDriver */ /* * 创建连接,<user>是hadoop用户 * HiveServer—>DriverManager.getConnection("jdbc:hive://<host>:<port>", "<user>", ""); *HiveServer2—>DriverManager.getConnection("jdbc:hive2://<host>:<port>", "<user>", ""); */ try { Class.forName("org.apache.hive.jdbc.HiveDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); System.exit(1); } //创建hive连接 Connection con=null; try { con=DriverManager.getConnection("jdbc:hive2://master:10000/hive/warehouse","<user>","<password>"); } catch (SQLException e) { e.printStackTrace(); System.exit(1); }
hive提供内部表(managed table)、外部表(external table)、分区(partition)、桶(bucket)四种数据管理方式。
1.内部表:每个表在HDFS中都有相应的目录来存储表中的数据(该目录可以在hive-site.xml文件中配置,(如:/hive/dbhome/user,/hive/dbhome是在配置文件中配置的用来存储数据的目录,user是用户的创建的一个表),删除该表示数据会被删除完。
create table user(u_id int,u_name String);
默认创建的是内部表
2.外部表:外部表和内部表相似,但是外部表的数据不是存储在自己所属的目录中,而是存储到别处的(该路径是在创建外部表是指定的),自己所属的目录存储的是该外部表对应的元数据,因此删除该表时,不会删除该表的数据而是删除该表的元数据。
create external table user_external(u_id int,u_name String) location '/hive/user_external'
location用来指定外部表数据存储的路径
3.分区:表的每一个分区对应表目录下相应的一个子目录,所有分区的数据存储在对应的子目录中。(如:前面创建的user表用u_id,u_name两个分区,那么分区u_id=10,u_name=hello对应的user表的目录为/hive/dbhome/u_id=10/u_name=hello,那么所有属于这个分区的数据都存储在给目录中),可以理解为按照列属性创建相应的子目录用来存储该列的数据。
4.桶:对指定的列值计算其hash,根据hash值切分数据,目的是为了并行,每一个桶对应一个文件(如:user表中列分散到16个桶中,先对u_id列计算hash值,hash值为0的数据就存储在/hive/dbhome/user/part-00000,hash值为1的就存储在/hive/dbhome/user/part-00001,依次类推),可以理解为按照其计算的hash值进行聚类存储在同一个文件中。
- hive简介——java连接和数据管理的方式
- java连接Hive的几种方式
- 基于属性和连接的文件系统元数据管理方法
- 2005——下一代的数据管理和分析
- java基础—连接MySQL数据库的2种常用方式(传统方式和c3p0连接池)
- Hive的安装配置和使用Java连接
- Hive的三种连接查询方式
- java访问hive的方式
- hive学习(1)——hive简介
- hive创建删除数据库——hive CLI方式和脚本方式
- 网络技术—NTFS的数据管理功能
- java连接hive出现连不上的问题
- java连接不上hive 的原因
- 《Hadoop生态》——第二章 数据库与数据管理——Hive
- Pig 和 Hive 的表连接 Join
- Hive简介和安装
- Hive元数据管理《二》
- Hive中连接方式小结
- java元组
- Jni/NDK常见问题
- 构造函数与析构函数
- 机器学习深入与强化--数学基础(2)
- 纪念第一次深度学习跑通
- hive简介——java连接和数据管理的方式
- css常用标签英文全称
- vijos1059-背包计数-积木城堡
- 算法提高 ADV-162 题目1 最大最小值
- 实验一:线性表的基本操作实现及其应用(C++)
- 集合-TreeMap
- 在制图时,对于城市,既想让其显示城市名又想用图形将名称圈起来,怎么设置?
- 数据库的设计的三大范式
- Tango Tango Insurrection UVA