Hive高级进阶与优化

本文详细介绍了Hive的HiveServer2服务,不同数据存储格式如textfile、sequencefile、rcfile和orcfile的优缺点,以及Hive数据压缩的原理和选择合适的编解码器的重要性。在企业优化方面,提出了列裁剪、Map端Join和SMBJoin等策略以提升性能。
摘要由CSDN通过智能技术生成

HiveServer2

参考地址:http://blog.csdn.net/czw698/article/details/44394923

1、启动hiveserver2服务

$HIVE_HOME/bin/hive --service hiveserver2  
2、 测试连接是否以连上
不用写jdbc程序,运行 bin/beeline.sh
然后输入  !connect jdbc:hive2://hadoop-senior.ibeifeng.com:10000 beifeng beifeng 后面两个是你创建的用户名和密码
如果能连接上就表示 jdbc没有问题了
3、通过程序连接jdbc
package test;

import java.sql.Connection;


import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
// import org.apache.hive.jdbc.HiveDriver;

public class HiveJdbcClient {

	private static String driverName = "org.apache.hive.jdbc.HiveDriver";

	public boolean run() {

		try {
			Class.forName(driverName);
			Connection con = null;
			con = DriverManager.getConnection(
					"jdbc:hive2://192.168.17.15:10000/hivedb", "hiveuser", "hiveuser");
			Statement stmt = con.createStatement();
			ResultSet res = null;

			String sql = "select count(*) from test_data";

			System.out.println("Running: " + sql);
			res = stmt.executeQuery(sql);
			System.out.println("ok");
			while (res.next()) {
				System.out.println(res.getString(1));

			}
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("error");
			return false;
		}

	}

	public static void main(String[] args) throws SQLException {
		HiveJdbcClient hiveJdbcClient = new HiveJdbcClient();
		hiveJdbcClient.run();
	}

}

hive数据存储

参考地址:http://blog.csdn.net/lxpbs8851/article/details/18553961

1.textfile (默认)
textfile为默认格式
存储方式:行存储
磁盘开销大 数据解析开销大
压缩的text文件 hive无法进行合并和拆分
2.sequencefile
二进制文件,以<key,value>的形式序列化到文件中
存储方式:行存储
可分割 压缩
一般选择block压缩
优势是文件和Hadoop api中的mapfile是相互兼容的。
3.rcfile
存储方式:数据按行分块 每块按照列存储
压缩快 快速列存取
读记录尽量涉及到的block最少
读取需要的列只需要读取每个row group 的头部定义。
读取全量数据的操作 性能可能比sequencefile没有明显的优势
4.orc (推荐使用)
存储方式:数据按行分块 每块按照列存储
压缩快 快速列存取
效率比rcfile高,是rc

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值