hive分为CLI(command line)(用的比较多)

JDBC/ODBC-ThriftServer

hiveServer(hive -service hiveserver),JDBC访问,一个客户端连接数,需要建立pool池,内存损耗极大,容易内存溢出(数据量太大不用)

web gui(基本不用)

Metastore (存储字段信息和数据存储HDFS的信息)

Complier(编译器):对sql查询语句进行语意分析并通过metastore中查找表和分区的元信息,生成执行计划。

Optimizer(优化器):优化HQL

Executor(执行器):对生成的执行计划进行执行

hive -e ‘select * from dual’ 命令行执行(不进入hive command line) -i  “文件名”(add jar进行UDF的预先加载)

hive -f .sql(执行文件 不支持传递参数)

通过hive -e的封装成hiveF 可以传递无数参数

hive优化

架构层面:

1 合理利用结果集(查询后结果加以利用,常用复杂或者低效统计统一给出,避免上层作业过多计算)

2 合理利用表分区(静态分区和动态分区)

HQL语法层面

执行计划

Hive参数层面(全局)

太暴力,很少用,有时候会起到不错效果

技巧

分表(把大数据的表脱离一些数据独立成别的表)

Hadoop 负载主要是 CPU负载和IO负载

两者可以相互转化ex:压缩(把IO转化为CPU)

Hive 复习的更多相关文章

  1. 二十五、Hadoop学记笔记————Hive复习与深入

    Hive主要为了简化MapReduce流程,使非编程人员也能进行数据的梳理,即直接使用sql语句代替MapReduce程序 Hive建表的时候元数据(表明,字段信息等)存于关系型数据库中,数据存于HD ...

  2. 1 复习ha相关 + weekend110的hive的元数据库mysql方式安装配置(完全正确配法)(CentOS版本)(包含卸载系统自带的MySQL)

    本博文的主要内容是: .复习HA相关 .MySQL数据库 .先在MySQL数据库中建立hive数据库 .hive的配置 以下是Apache Hadoop HA的总结.分为hdfs HA和yarn HA ...

  3. 【转】Hive 基础之:分区、桶、Sort Merge Bucket Join

    Hive 已是目前业界最为通用.廉价的构建大数据时代数据仓库的解决方案了,虽然也有 Impala 等后起之秀,但目前从功能.稳定性等方面来说,Hive 的地位尚不可撼动. 其实这篇博文主要是想聊聊 S ...

  4. 60分钟内从零起步驾驭Hive实战学习笔记

    本博文的主要内容是: 1. Hive本质解析 2. Hive安装实战 3. 使用Hive操作搜索引擎数据实战 SparkSQL前身是Shark,Shark强烈依赖于Hive.Spark原来没有做SQL ...

  5. hive权威安装出现的不解错误!(完美解决)两种方法都可以

    以下两种方法都可以,推荐用方法一! 方法一: 步骤一: yum -y install mysql-server 步骤二:service mysqld start 步骤三:mysql -u root - ...

  6. Hive分区和桶

    SMB 存在的目的主要是为了解决大表与大表间的 Join 问题,分桶其实就是把大表化成了“小表”,然后 Map-Side Join 解决之,这是典型的分而治之的思想.在聊 SMB Join 之前,我们 ...

  7. Hive中知识点

    hive的最新学习资料:http://www.cnblogs.com/qingyunzong/p/8707885.html hive的参数设置大全:https://cwiki.apache.org/c ...

  8. 041 SparkSql的回顾与复习

    在前面学完了SparkCore后,又学了SparkSQL,在继续加深学习之前,一定的复习还是很重要的.这里大体写一下,加深自己对SparlSQL的理解. 1.SparkSQL 首先是SaprkSQL与 ...

  9. 【转载】全栈工程师-Hadoop, HBase, Hive, Spark

    学习参考这篇文章: http://www.shareditor.com/blogshow/?blogId=96 机器学习.数据挖掘等各种大数据处理都离不开各种开源分布式系统, hadoop用于分布式存 ...

随机推荐

  1. C++C++ 指针(二)--c++ 指针(二)--c++

    一.内存管理:new和delete 1.new操作符:从操作系统获得内存块,并返回该内存块的首地址. delete操作符:将new申请的内存返还给操作系统. 开始一个简单的例子: #include & ...

  2. gsoap框架下的onvif程序流程分析

    SOAP_FMAC5 int SOAP_FMAC6 soap_serve(struct soap *soap) { do { unsigned int k = soap->max_keep_al ...

  3. python建立pip.ini

    pip 是python的包管理器工具,类似linux的apt-get.yum包管理器,主要是用来进行安装python库, pip默认从官方源pypi.python.org下载数据,国内速度相对比较慢, ...

  4. Activity(活动)-初讲

    是一种可以包含用户界面的组件,主要用于和用户进行交互. 上一次我们的MainActivity.java 是ADT帮我们自动创建的.手动创建Activity可以加深我们的理解和记忆,于是我们先自己手动创 ...

  5. 理解NSTextContainer

    Apple的Doc对这个类的描述是这样的: The NSTextContainer class defines a region where text is laid out. An NSLayout ...

  6. HD OJ2023

    #include "stdio.h"double stu[60],cla[10];int a[60][60];int main(){ int n,m,i,number,j; whi ...

  7. __set()与__get() 魔术方法

    在面向对象编程的过程中,对于类当中的各个成员变量,都有不同的访问属性,比如公有的(public)属性,在类内部和类外部都可直接调用:而私有的(private)和受保护的(protected),在类外不 ...

  8. Java Serializable

    实现Serializable的class表明object可以被保存. 被保存的时候实际是存储class里的instance variable,这样在deserialization的时候可以恢复obje ...

  9. UVA11149 矩阵快速幂

    首先我们来想一下计算A+A^2+A^3...+A^k. 如果A=2,k=6.那你怎么算 2+22+23+24+25+26 = ?= (2+22+23)*(1+23) 如果A=2,k=7.那你怎么算 2 ...

  10. linux远程连接mysql数据库

    在linux系统中,远程连接mysql数据库时不仅需要开启ip访问,还需要将防火墙中添加相应规则 在wdlinux中的[安全管理]菜单下选择[防火墙[iptables]]选项,增加端口为3306的规则 ...