hive的基本概念和安装

背景:

NoSQL运动, Not Only SQL

New SQL, SQL的逆袭

放弃SQL是最大的错误

Hive还不算是完整的数据库系统

Hive很缓慢

应用于即席查询场景

Hive:

数据仓库工具, 可以把Hadoop下的原始结构化数据变为Hive中的表

支持一种与SQL几乎完全相同的语言HiveQL.  除了不支持更新, 索引和事务, 几乎SQL的其他特征都能支持

可以看成是从SQL到Map-Reduce的映射器

提供shell, JDBC/ODBC, Thrift, Web等接口

Hive简介

起源自facebook由Jeff Hammerbacher领导的团队

构建在Hadoop上的数据仓库框架

设计目的是让SQL技能良好, 但Java技能较弱的分析师可以查询海量数据

2008年facebook把hive项目贡献给Apache

Hive的组件与体系架构

用户接口 : shell, thrift, web等

Thrift服务器

元数据库 "Derby, Mysql等

解析器

Hadoop

Hive安装

内嵌模式: 元数据保持在内嵌的Derby模式, 只允许一个会话连接

本地独立模式: 在本地安装MySQL, 把元数据放到MySQL内

远程模式: 元数据放置在远程的MySQL数据库

内嵌模式安装

下载并解压Hive

wget http://apache.dataguru.cn/hive/stable/apache-hive-0.13.1-bin.tar.gz
tar xf apache-hive-3.13.1-bin.tar.gz
cd apache-hive-0.13.1-bin

设置环境变量

[[email protected] apache-hive-0.13.1-bin]$ cd conf/
[[email protected] conf]$ cp hive-env.sh.template hive-env.sh
[[email protected] conf]$ cp hive-default.xml.template hive-site.xml

vi hive-env.sh
HADOOP_HOME=/home/hadoop/hadoop-2.5.0
export HIVE_CONF_DIR=/home/hadoop/apache-hive-0.13.1-bin/conf

hive-site的主要配置

hive.metastore.warehouse.dir     HDFS上的数据目录
hive.exec.scratchdit             HDFS上的临时目录
hive.metastore.warehouse.dir     默认值是/usr/hive/warehouse
hive.exec.scratchdig             默认值是/tmp/hive-${user.name}

运行Hive

[[email protected] conf]$ hive
hive>

简单建删表测试

hive1> show tables;
OK
Time taken: 0.042 seconds
hive1> create table abc(c1 string);
OK
Time taken: 0.84 seconds
hive1> show tables;
OK
abc
Time taken: 0.073 seconds, Fetched: 1 row(s)
hive1> select * from abc;
OK
Time taken: 0.459 seconds
hive1> drop table abc;
OK
Time taken: 2.805 seconds

Hive数据存放在

[[email protected] hadoop-2.5.0]$ hadoop fs -ls /user/hive/warehouse

独立模式安装

1. hive安装在hadoop.client

2. 解压缩安装在/home/hadoop

配置

[[email protected] ~]$ tar xf apache-hive-0.13.1-bin.tar.gz 
[[email protected] ~]$ mv apache-hive-0.13.1-bin hive-0.13.1
[[email protected] ~]$ cd hive-0.13.1/

编辑hive-env.sh

[[email protected] hive-0.13.1]$ cp conf/hive-env.sh.template conf/hive-env.sh
[[email protected] hive-0.13.1]$ vi  conf/hive-env.sh
HADOOP_HOME=/home/hadoop/hadoop-2.5.0

编辑hive-site.xml

[[email protected] hive-0.13.1]$ cp conf/hive-default.xml.template conf/hive-site.xml
[[email protected] hive-0.13.1]$ vim conf/hive-site.xml
<property>
 <name>hive.metastore.local</name>
 <value>true</value>
</property>

<property>
 <name>javax.jdo.option.ConnectionURL</name>
 <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>

<property>
 <name>javax.jdo.option.ConnectionDriverName</name>
 <value>com.mysql.jdbc.Driver</value>
</property>

<property>
 <name>javax.jdo.option.ConnectionUserName</name>
 <value>hadoop</value>
</property>

<property>
 <name>javax.jdo.option.ConnectionPassword</name>
 <value>hadoop</value>
</property>

lib文件夹缺少mysql的连接器mysql-connector-java-5.1.25-bin.jar,下载地址http://download.csdn.net/detail/xqj198404/6338973

安装MySQL:

[[email protected] ~]# yum install mysql-server mysql -y
[[email protected] ~]# service mysqld start
[[email protected] ~]# mysql

mysql> create database hive;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on hive.* to ‘hadoop‘@‘localhost‘ identified by ‘hadoop‘;
Query OK, 0 rows affected (0.00 sec)

修改/homehadoop/.bash_profile

JAVA_HOME=/usr/java/jdk1.7.0_67
HADOOP_HOME=/home/hadoop/hadoop-2.5.0
HIVE_HOME=/home/hadoop/hive-0.13.1

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin

export JAVA_HOME
export HIVE_HOME
export HADOOP_HOME
export PATH

启动Hive并测试

[[email protected] ~]$ hive
hive> show tables;
OK
Time taken: 1.773 seconds
hive> create table abc(aa string);
OK
Time taken: 1.571 seconds
hive> show tables;
OK
abc
Time taken: 0.076 seconds, Fetched: 1 row(s)
hive> drop table abc;
OK
Time taken: 1.801 seconds

JDBC方式连接Hive

1. 使用jdbc的方式链接Hive, 首先做的事情就是需要启动hive的Thift Server, 否则连接hive的时候会报connection refused的错误.

启动命令    hive --service hiveserver

2. 新建java项目, 然后将hive/lib下的所有jar包和hadoop核心的jar包 添加到项目的类路径上

Hive的数据

数据在HDFS的warehouse目录下, 一个表对应一个子目录

桶与reduce

本地的/tmp目录存放日志和执行计划

时间: 2024-10-27 18:41:05

hive的基本概念和安装的相关文章

hive的体系架构及安装

1,什么是Hive? Hive是能够用类SQL的方式操作HDFS里面数据一个数据仓库的框架,这个类SQL我们称之为HQL(Hive Query Language) 2,什么是数据仓库? 存放数据的地方 3,Hive的特征 海量数据的存储 海量数据的查询 不支持事务性操作 Hive是SQL解析引擎,它将SQL语句转译成M/R Job然后在Hadoop执行. 4,Hive中的概念和HDFS里面概念的对应 Hive中的表----HDFS里面的目录 Hive中的表中的数据----HDFS目录下的(数据)

hive学习系列2——环境安装

1.hive的安装  (1)解压缩.重命名.设置环境变量,参考hadoop1学习系列2 (2)在目录$HIVE_HOME/conf/下,执行命令mv hive-default.xml.template  hive-site.xml重命名     在目录$HIVE_HOME/conf/下,执行命令mv hive-env.sh.template  hive-env.sh重命名 (3)修改hadoop的配置文件hadoop-env.sh,修改内容如下:     export HADOOP_CLASSP

hive学习系列1——Mysql安装

安装mysql (1)执行命令 rpm -qa |grep mysql 查看mysql是否安装     删除linux上已经安装的mysql相关库信息. rpm  -e  xxxxxxx(查看的库名,可使用右键复制)   --nodeps     执行命令 rpm -qa |grep mysql 检查是否删除干净 (2)执行命令  rpm -i   mysql-server-********  安装mysql服务端 (3)启动mysql 服务端,执行命令  后台运行 mysqld_safe &

Docker入门一概念和安装

Docker入门一概念和安装 LinuxDocker Docker概念 Docker 是一个基于 LXC 技术构建的容器引擎,基于 GO 语言开发,遵循 Apache2.0 协议开源.Docker 的发展得益于为使用者提供了更好的容器操作接口.包括一系列的容器,镜像,网络等管理工具,可以让用户简单的创建和使用容器. 核心理念: Build once,Run anywhere. 核心关键词: namespace, cgroups, union fs Docker架构 Docker为C/S体系架构,

一 JAVA整体概念以及安装部署

JAVA 基本概念  JVM(JAVA virtual machine)java虚拟机,是java的能跨平台的核心,java的跨平台实现,就是在各种系统中布置JVM,然后java应用运行在JVM中,相当于我玩我的你是什么系统与我无关.JRE(JAVA Runtime environment)JAVA运行环境,是Java程序运行的基础环境,包括JVM.核心类库和相关文件,不包括编译器.JDK(JAVA Develop Kit)JAVA开发工具包,有各种版本,都可以在Oracle下载,JDK包括JR

Drbd的概念和安装一

1.Drdb概念: 分布式复制块设备(DRBD技术)是一种基于软件的,无共享,复制的存储解决方案,在服务器之间的对块设备(硬盘,分区,逻辑卷等)进行镜像. Drdb是由内核模块和相关脚本而构成的,用以构建高可用的集群,其实现方法是通过整个网络来镜像整个设备,运行用户在远程主机上建立一个本地块设备的实时镜像,与心跳线结合使用,也可以看作是一种网络RADI. 2.Drdb如何工作: drdb负责接收数据,把数据写到本地磁盘,然后发送给另一个主机,另一个主机将数据存到自己的磁盘中,目前,drdb每次只

深度学习框架之TensorFlow的概念及安装(ubuntu下基于pip的安装,IDE为Pycharm)

2015年11月9日,Google发布人工智能系统TensorFlow并宣布开源. 1.TensorFlow的概念 TensorFlow 是使用数据流图进行数值计算的开源软件库.也就是说,TensorFlow 使用图(graph)来表示计算任务.图中的节点表示数学运算,边表示运算之间用来交流的多维数组(也就是tensor,张量).TensorFlow 灵活的架构使得你可以将计算过程部署到一个或多个CPU或GPU上. TensorFlow 最初是由 Google Brain Team 的研究人员和

第二章 Docker的核心概念和安装

2.1核心概念 Docker镜像(Image)类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含了文件系统. 2.2安装Docker Docker支持在主流的操作系统平台上使用,包括Ubuntu.CentOS.Windows以及MacOS系统等.这里我们重点介绍在CenOS系统下如何安装Docker.如何启动Docker. CentOS Docker支持CentOS6及以后的版本. 对于CentOS6系统可使用EPEL库安装Docker,命令如下: $ sudo yum i

docker的核心概念和安装

docker的安装和配置 环境介绍: 操作系统:64bit CentOS7 docker版本:1.11.1(最新版本) 版本新功能:https://github.com/docker/docker/blob/master/CHANGELOG.md 安装步骤 安装准备: 要求: 内核版本最低为3.10 查看当前内核版本: uname –r 通过yum方式安装docker: 第一步:更新yum源: sudo yum update 第二步:增加docker的yum源: 输入命令:sudo tee /e