HIVE安装使用说明

HIVE安装使用说明
HIVE安装使用说明

HIVE安装使用说明

一、Hive简介

1.1.Hive是什么

Hadoop作为分布式运算的基础架构设施,统计分析需要采用MapReduce编写程序后,放到Hadoop集群中进行统计分析计算,使用起来较为不便,Hive产品采用类似SQL的语句快速实现简单的MapReduce统计,很大程度降低了Hadoop的学习使用成本。

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供基础的SQL查询功能,可以将SQL语句转换为MapReduce任务运行,而不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

页脚内容1

1.2.部署架构

Hive中的Driver为核心驱动部分,包括SQL语句的解释、编译为MapReduce任务,并进行优化、执行。

Hive用户访问包括4种运行和访问方式,一是CLI客户端;二是HiveServer2和Beeline方式;三是HCatalog/WebHCat方式;四是HWI方式。

其中CLI、Beeline均为控制台命令行操作模式,区别在于CLI只能操作本地Hive服务,而Beeline可以通过JDBC连接远程服务。

HiveServer2为采用Thrift提供的远程调用接口,并提供标准的JDBC连接访问方式。

HCatalog是Hadoop的元数据和数据表的管理系统,WebHCat则提供一条Restful的HCatalog远程访问接口,HCatalog的使用目前资料很少,尚未充分了解。

页脚内容2

HIVE从入门到精通

HIVE从入门到精通 目录 HIVE介绍 (2) 二、hive的安装和配置 (8) 三、hive与hbase集成 (13) 四、HIVE创建目录和表 (16) 六、HIVE查询 (23) 七、HIVE视图 (29) 八、索引 (30) 九、hive schema (30) 十、Hive join (33) 十一、Hive基本语法 (37) 十二、Hive操作语句 (40) 十三、数据操作语句 (50) Hive 优化 (56)

HIVE介绍 主要介绍 背景及体系结构 1背景 应用于工业的商务智能收集分析所需的数据集正在大量增长,使 得传统的数据仓库解决方案变得过于昂贵。Hadoop 是一个流行的开源map-reduce实现,用于像yahoo, Facebook一类的公司。来存储和处 理商用硬件上的大范围数据集。然而map-reduce程序模型还是处于很 低级别,即需要开发者来书写客户程序,这些程序往往难于维护与重用。 用hbase做数据库,但由于hbase没有类sql查询方式,所以操作 和计算数据非常不方便,于是整合hive,让hive支撑在hbase数据库层面的hql查询。hive也叫做数据仓库。 2定义 Hive是基于Hadoop(HDFS, MapReduce)的一个数据仓库工具,可 以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。 本质是将SQL转换为MapReduce程序。 3体系结构 Hive本身建立在Hadoop的体系结构上,可以将结构化的数据文 件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语 句转换为MapReduce任务进行。并按照该计划生成MapReduce任务后 交给Hadoop集群处理,Hive的体系结构如图1-1所示:

整理和总结hive sql

进入hive shell #hive或者hive --service cli Hive 的启动方式: hive 命令行模式,直接输入/hive/bin/hive的执行程序,或者输入hive –service cli hive web界面的启动方式,hive –service hwi hive 远程服务(端口号10000) 启动方式,hive --service hiveserver hive 远程后台启动(关闭终端hive服务不退出): nohup hive -–service hiveserver & 显示所有函数: hive> show functions; 查看函数用法: hive> describe function substr; 查看hive为某个查询使用多少个MapReduce作业 hive> Explain select a.id from tbname a; -------------------------------------------------------------------------- 表结构操作: 托管表和外部表 托管表会将数据移入Hive的warehouse目录;外部表则不会。经验法则是,如果所有处理都由Hive完成, 应该使用托管表;但如果要用Hive和其它工具来处理同一个数据集,则使用外部表。 创建表(通常stored as textfile): hive> create table tbName (id int,name string) stored as textfile; 创建表并且按分割符分割行中的字段值(即导入数据的时候被导入数据是以该分割符划分的,否则导入后为null,缺省列为null); hive> create table tbName (id int,name string) row format delimited fields terminated by ','; 创建外部表: hive>create external table extbName(id int, name string); 创建表并创建单分区字段ds(分区表指的是在创建表时指定的partition的分区空间。): hive> create table tbName2 (id int, name string) partitioned by (ds string); 创建表并创建双分区字段ds: hive> create table tbname3 (id int, content string) partitioned by (day string, hour string); 表添加一列: hive> alter table tbName add columns (new_col int); 添加一列并增加列字段注释: hive> alter table tbName add columns (new_col2 int comment 'a comment'); 更改表名: hive> alter table tbName rename to tbName3; 删除表(删除表的元数据,如果是托管表还会删除表的数据): hive>drop table tbName; 只删除内容(只删除表的内容,而保留元数据,则删除数据文件): hive>dfs –rmr ‘warehouse/my-table’; 删除分区,分区的元数据和数据将被一并删除: hive>alter table tbname2 drop partition (dt='2008-08-08', hour='09'); -------------------------------------------------------------------------- 元数据存储(从HDFS中将数据导入到表中都是瞬时的):

Hive配置和基本操作

实验报告(四)

hive.exec.scratchdir /tmp/hive hive.server2.logging.operation.log.location /usr/local/hive/iotmp hive.downloaded.resources.dir /usr/local/hive/iotmp< /property> hive.querylog.location /usr/local/hive/iotmp hive.metastore.warehouse.dir /user/hive/warehouse javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionURL jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8 javax.jdo.option.ConnectionUserName hive javax.jdo.option.ConnectionPassword hive hive.metastore.local false hive.metastore.uris thrift://localhost:9083 二:Hive的基本操作 创建表: hive> CREATE TABLE pokes (foo INT, bar STRING);

hive自定义函数说明

Hive自定义函数说明函数清单:

用法: getID 通过UUID来生成每一行的唯一ID: select getid() ; oracle_concat hive的concat函数遇到空值的情况下会直接返回空,而在oracle中对于字符串类型空字符串与null是等价对待的 select default.oracle_concat('ff-',null,'','--cc'); Select concat('ff-',null,'','--cc'); getBirthDay 从身份证号码中截取生日信息,返回日期格式为’yyyy-MM-dd’

getGoodsInfo self_date_format 为格式化来自oracle的时间格式,将格式为’yyyy/MM/dd’和’yyyy/MM/dd HH:mm:ss’的日期格式转换为’yyyy-MM-dd’ Select default. self_date_format(‘2012-12-12’); Select default. self_date_format(‘20121212’,’yyyyMMdd’); oracle_months_between 由于当前版本hive不带months_between函数,所以添加 oracle_decode hive中的decode函数为字符编码函数和encode对应。Oracle中decode函数类似case when 函数,添加oracle_decode函数减少sql的改写。与为与oracle功能同步,本函数将null和字符串’’等价对待。 select default.oracle_decode('',null,1,2) r1, default.oracle_decode(null,'',1,2) r2, default.oracle_decode('aaa','','Nnull','aaa','is a*3','aaa') r3, default.oracle_decode('ccc','', 'Nnull','aaa','is a*3','aaa') r4, default.oracle_decode('','', 'Nnull','aaa','is a*3','aaa') r5; BinomialTest _FUNC_(expr1, expr2, p_value, alternativeHypothesis) alternativeHypothesis: 接受指定值的字符串 取值:TWO_SIDED , GREATER_THAN , LESS_THAN 二项分布检测函数。实现oracle中的二项分布检测功能。 计算expr1 等于exper2 的值占数据总数的二项分布检测结果,类型依据alternativeHypothesis 确定

Hadoop、hive环境搭建详解

一、
Hadoop 环境搭建 首先在 Apache 官网下载 hadoop 的包 hadoop-0.20.2.tar.gz。 解压 hadoop-0.20.2.tar.gz 包,具体命令如下: tar zxvf hadoop-0.20.2.tar.gz 其中要注意的是,tar 包用 xvf ,gz 包用 zxvf。
在安装中,如果遇到识别问题,或者无法解压,很有可能是权限问题,解决方案 是修改此文件的使用权限,命令如下: chmod 777 hadoop-0.20.2.tar.gz 其中,777 为所有权限。 如果依然报错,如:Archive contains obsolescent base-64 headers;Error exit delayed from previous errors。 这种情况,一般是压缩包损坏的问题。因为大多数人会将包下载到 windows 环境,再通过 ftp 等方法上传到 Linux 环境。容易产生包损坏。建议大 家直接下载到 Linux 即可。具体命令如下: wget https://www.360docs.net/doc/6d4424875.html,/apache-mirror/hadoop/core/hadoop-0.20.2/ hadoop-0.20.2.tar.gz 直接下载到当前目录。 当文件准备好之后,我们要修改配置,将 Hadoop 简单 run 起来。 首先,我们进入 hadoop-0.20.2/conf 目录当中,其中会存在如下配置文件: 首先修改 masters 和 slaves,这个是指定我们的 m 和 s 的 ip 地址,这里我们 就以单台机器为例子,在文件中直接输入当前机器的 IP。 之后我们修改 mapred-site.xml 文件,具体配置如下 Xml 代码 1. 2. 3.

Hive 基础操作

Hive 基础(2):库、表、字段、交互式查询的基本操作目录[-] ?1、命令行操作 ?2、表操作 ?3、列操作 ?4、查看变量 ?5、一个完整的建库、表例子 ?6、常用语句示例 ?7、Refer: 1、命令行操作 (1)打印查询头,需要显示设置: sethive.cli.print.header=true; (2)加"--",其后的都被认为是注释,但CLI 不解析注释。带有注释的文件只能通过这种方式执行: hive -f script_name (3)-e后跟带引号的hive指令或者查询,-S去掉多余的输出: hive -S -e "select * FROM mytable LIMIT 3" > /tmp/myquery (4)遍历所有分区的查询将产生一个巨大的MapReduce作业,如果你的数据集和目录非常多, 因此建议你使用strict模型,也就是你存在分区时,必须指定where语句hive> set hive.mapred.mode=strict;

(5)显示当前使用数据库 set hive.cli.print.current.db=true; (6)设置Hive Job 优先级 setmapred.job.priority=VERY_HIGH | HIGH | NORMAL | LOW | V ERY_LOW (VERY_LOW=1,LOW=2500,NORMAL=5000,HIGH=7500,VERY _HIGH=10000) set mapred.job.map.capacity=M设置同时最多运行M个map 任务 set mapred.job.reduce.capacity=N设置同时最多运行N个red uce任务 (7)Hive 中的Mapper个数的是由以下几个参数确定的:mapred.min.split.size ,mapred.max.split.size ,dfs.block.siz e splitSize = Math.max(minSize, Math.min(maxSize, blockSiz e)); map个数还与inputfilles的个数有关,如果有2个输入文件,即使总大小小于blocksize,也会产生2个map mapred.reduce.tasks用来设置reduce个数。 2、表操作 (1)查看某个表所有分区 SHOW PARTITIONS ext_trackflow

hive函数大全

目录 一、关系运算: (4) 1. 等值比较: = (4) 2. 不等值比较: <> (4) 3. 小于比较: < (4) 4. 小于等于比较: <= (4) 5. 大于比较: > (5) 6. 大于等于比较: >= (5) 7. 空值判断: IS NULL (5) 8. 非空判断: IS NOT NULL (6) 9. LIKE比较: LIKE (6) 10. JAVA的LIKE操作: RLIKE (6) 11. REGEXP操作: REGEXP (7) 二、数学运算: (7) 1. 加法操作: + (7) 2. 减法操作: - (7) 3. 乘法操作: * (8) 4. 除法操作: / (8) 5. 取余操作: % (8) 6. 位与操作: & (9) 7. 位或操作: | (9) 8. 位异或操作: ^ (9) 9.位取反操作: ~ (10) 三、逻辑运算: (10) 1. 逻辑与操作: AND (10) 2. 逻辑或操作: OR (10) 3. 逻辑非操作: NOT (10) 四、数值计算 (11) 1. 取整函数: round (11) 2. 指定精度取整函数: round (11) 3. 向下取整函数: floor (11) 4. 向上取整函数: ceil (12) 5. 向上取整函数: ceiling (12) 6. 取随机数函数: rand (12) 7. 自然指数函数: exp (13) 8. 以10为底对数函数: log10 (13) 9. 以2为底对数函数: log2 (13) 10. 对数函数: log (13) 11. 幂运算函数: pow (14) 12. 幂运算函数: power (14) 13. 开平方函数: sqrt (14) 14. 二进制函数: bin (14)

Hive学习总结及应用

一、文档说明 熟悉Hive功能,了解基本开发过程,及在项目中的基本应用。 注意:本文档中但凡有hive库操作的语句,其后面的“;”是语句后面的,非文档格式需要。每个hive语句都要以“;”来结束,否则将视相邻两个分号“;”之间的所有语句为一条语句。 二、Hive(数据提取)概述 Hive是构建在HDFS 和Map/Reduce之上的可扩展的数据仓库。是对HADOOP的Map-Reduce进行了封装,类似于sql语句(hive称之为HQL)计算数据从而代替编写代码对mapreduce的操作,数据的来源还是HDFS上面的文件。 Hive中的表可以分为托管表和外部表,托管表的数据移动到数据仓库目录下,由Hive管理,外部表的数据在指定位置,不在Hive 的数据仓库中,只是在Hive元数据库中注册。创建外部表采用“create external tablename”方式创建,并在创建表的同时指定表的位置。 Hive本身是没有专门的数据存储格式,也没有为数据建立索引,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据。所以往Hive表里面导入数据只是简单的将数据移动到表所在的目录中(如果数据是在HDFS上;但如果数据是在本地文件系统中,那么是将数据复制到表所在的目录中)。

三、Hive的元数据 Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。由于Hive的元数据需要不断的更新、修改,而HDFS系统中的文件是多读少改的,这显然不能将Hive的元数据存储在HDFS中。目前Hive将元数据存储在数据库中,如Mysql、Derby中。 Hive metastore 三种存储方式: Hive的meta 数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储。远端存储比较适合生产环境。 1、使用derby数据库存储元数据(内嵌的以本地磁盘作为存储),这称为“内嵌配置”。 这种方式是最简单的存储方式,只需要在或做如下配置便可。使用derby存储方式时,运行hive会在当前目录生成一个derby文件和一个metastore_db目录。这种存储方式的弊端是在同一个目录下同时只能有一个hive客户端能使用数据库,否则会提示如下错误(这是一个很常见的错误)。 2、使用本机mysql服务器存储元数据,这称为“本地metastore”。这种存储方式需要在本地运行一个mysql服务器, 3、使用远端mysql服务器存储元数据。这称为“远程metastore”。这种存储方式需要在远端服务器运行一个mysql服务器,并且需要在Hive服务器启动meta服务。

HiveQL详解

HiveQL详解 HiveQL是一种类似SQL的语言, 它与大部分的SQL语法兼容, 但是并不完全支持SQL标准, 如HiveQL不支持更新操作, 也不支持索引和事务, 它的子查询和join操作也很局限, 这是因其底层依赖于Hadoop云平台这一特性决定的, 但其有些特点是SQL所无法企及的。例如多表查询、支持create table as select和集成MapReduce脚本等, 本节主要介绍Hive的数据类型和常用的HiveQL操作。 1.hive client命令 a.hive命令参数 -e: 命令行sql语句 -f: SQL文件 -h, --help: 帮助 --hiveconf: 指定配置文件 -i: 初始化文件 -S, --silent: 静态模式(不将错误输出) -v,--verbose: 详细模式 b.交互模式 hive> show tables; #查看所有表名 hive> show tables 'ad*' #查看以'ad'开头的表名 hive>set命令 #设置变量与查看变量; hive>set-v #查看所有的变量 hive>set hive.stats.atomic #查看hive.stats.atomic变量 hive>set hive.stats.atomic=false #设置hive.stats.atomic变量 hive> dfs -ls #查看hadoop所有文件路径 hive> dfs -ls /user/hive/warehouse/ #查看hive所有文件 hive> dfs -ls /user/hive/warehouse/ptest #查看ptest文件 hive> source file #在client里执行一个hive脚本文件 hive> quit #退出交互式shell hive>exit #退出交互式shell hive> reset #重置配置为默认值 hive> !ls #从Hive shell执行一个shell命令 2.操作及函数 查看函数: hive> show functions; 正则查看函数名: show functions 'xpath.*'; 查看具体函数内容:

Hive安装配置详细

Hive安装配置详细 定义 Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据。Hive可以将结构化的数据存储在数据仓库中,通过自己的SQL去查询分析需要的内容,这套SQL简称Hive SQL。它与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML 以及常见的聚合函数、连接查询、条件查询。 Hive在Hadoop的架构体系中承担了一个SQL解析的过程,它提供了对外的入口来获取用户的指令然后对指令进行分析,解析出一个MapReduce程序组成可执行计划,并按照该计划生成对应的MapReduce 任务提交给Hadoop集群处理,获取最终的结果。 以上定义来源于《Hadoop开发者入门专刊》 Hive安装 我将延用《Hadoop安装》文档(https://www.360docs.net/doc/6d4424875.html,/blog/706699)风格撰写下文。 Hive需要Hadoop的支持,也就是说在安装Hive之前需要正确安装Hadoop,这里不再阐述Hadoop 的安装过程。一般我们会将Hive安装到NameNode所在主机上,这里假设使用root用户进行安装,Hive 的安装过程很简单: [root@192.168.1.111] # 去到hadoop的目录,使用hadoop的项目根目录[root@192.168.1.111] cd /opt/hadoop [root@192.168.1.111] # 下载项目包(去官网(https://www.360docs.net/doc/6d4424875.html,/)下载Hadoop项目) [root@192.168.1.111] wget https://www.360docs.net/doc/6d4424875.html,/dist/hadoop/hive/hive -0.5.0/hive-0.5.0-dev.tar.gz [root@192.168.1.111] # 解压 [root@192.168.1.111] tar xzvf hive-0.5.0-dev.tar.gz [root@192.168.1.111] # 进入目录 [root@192.168.1.111] cd hive-0.5.0-dev [root@192.168.1.111] # 与Hadoop的安装一样,我们应该习惯性的将安装目录写入环境变量 [root@192.168.1.111] export HIVE_HOME=`pwd` [root@192.168.1.111] # 也可以将环境变量设置到/etc/profile中以上就是在Linux(cent os 5.X)上安装Hive的过程,下面就到了配置的环节。 Hive配置 Hive的必要配置相当简单,只需要声明$HADOOP_HOME(请查阅《Hadoop安装》文档)这个环境变量就行了。

大数据集群配置过程_hive篇

大数据集群配置过程_hive篇 JDDC_SEED_BIGDATA 2015-01-15 1.概述 本篇文档主要讲解hive的安装过程。Hadoop是安装hbase和hive的基础,即安装hbase和hive之前必须先安装hadoop并且hdfs和mapreduce必须都功能正常。因为hbase和hive 其底层所使用都是应用hadoop的两个核心部分—hdfs和mapreduce。 在安装hadoop之前需要考滤操作系统的版本(32位还是64位)以及hbase和hive的版本,否则会引起jar包不支持而导致的jar包替换或jar包重新编译等问题。Hadoop、hbase、hive的版本匹配信息如下: 由于我们所使用的操作系统centos6.5是32位,而且安装的hadoop是hadoop2.2.0,所以本次安装的hive版本是0.12.0 切记,在安装hbase之前一定先安装hadoop,而且要确保hadoop中的HDFS和MAPREDUCE都是可以正常使用的。 2.正文 与hadoop和hbase不同,hive在安装的过程中不需要把hive的包分别发布到个节点上,只需要在namenode节点上hive包进行配置,但需要在配置的过程中指定各个datanode节点的主机名。

2.1下载安装mysql 本次将Hive配置成Server模式,并且使用MySQL作为元数据数据库。原则上MySQL不必要非得安装在namenode节点上,可以装在一个单独的服务器上,并进行远程联接。本次技术检证,由于资源有限,把mysql安装在namenode节点上。 下载MySQL-5.6.22-1.linux_glibc2.5.i386.rpm-bundle.tar,参考下载地址 https://www.360docs.net/doc/6d4424875.html,/downloads/。 具体的安装以及root初始密码的修改请参考《linux下MySQL安装及设置》和《MySQL修改root密码的各种方法整理》这两篇文档。 2.2创建Hive元数据库 创建数据库hive: create database if not exists hive; 创建数据库用户hive: create user hive identified by 'hive2015'; 授权可以访问数据库hive的主机和用户: grant all on hive.* to 'hive'@'hadoop01' identified by 'hive2015'; grant all on hive.* to 'hive'@'hadoop02' identified by 'hive2015'; grant all on hive.* to 'hive'@'hadoop03' identified by 'hive2015'; grant all on hive.* to 'hive'@'hadoop04' identified by 'hive2015'; 2.3安装以及配置hive 下载hive-0.12.0-bin.tar.gz,参考下载地址https://www.360docs.net/doc/6d4424875.html,/downloads.html。 下载之后,把安装包放在/home/hadoop/source/目录下。

常用函数大全

常用函数大全 mysql_affected_rows
mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数 mysql_fetch_array —从结果集中取得一行作为关联数组或数字数组或二者兼 有:
mysql_fetch_array($result, MYSQL_NUM) , MYSQL_NUM 可用 MYSQL_BOTH 或
MYSQL_ASSOC 代替,也可以不写,默认为 MYSQL_BOTH
mysql_fetch_row — 从结果集中取得一行作为枚举数组: mysql_fetch_row($result); mysql_fetch_assoc($result)
mysql_fetch_row()从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果 的列储存在一个数组的单元中,偏移量从 0 开始。 依次调用 mysql_fetch_row()将返回结果集中的下一行,如果没有更多行则返回 FALSE。 mysql_fetch_assoc — 从结果集中取得一行作为关联数组 :
mysql_fetch_assoc() 和用 mysql_fetch_array() 加上第二个可选参数 MYSQL_ASSOC 完全相同。它 仅仅返回关联数组。这也是 mysql_fetch_array()起初始的工作方式。如果在关联索引之外还需要数字 索引,用 mysql_fetch_array()。 如果结果中的两个或以上的列具有相同字段名,最后一列将优先。要访问同名的其它列,要么用 mysql_fetch_row()来取得数字索引或给该列起个别名。参见 mysql_fetch_array() 例子中有关别名说 明。 有一点很重要必须指出,用 mysql_fetch_assoc()并不明显 比用 mysql_fetch_row()慢,而且还提供了 明显更多的值。
mysql_query()
仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,
如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query()在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明 任何有关影响到的或返回的行数。 很有可能一条查询执行成功了但并未影响到或并未返回任何行。

HPLSQL安装使用说明

HPL/SQL安装使用说明 一、HPL/SQL简介 1.1.HPL/SQL是什么 HPL/SQL全称为Procedural SQL on Hadoop,为Hive提供了存储过程的支持扩展,并且在未来的Hive的版本(2.0)中,会将该模块集成到Hive产品中。该解决方案不仅支持Hive,还支持SparkSQL,甚至是RDBMS中使用类似于Oracle PL/SQL的功能,这将极大的方便数据开发者的工作,Hive中很多之前比较难实现的功能,现在可以很方便的实现,比如自定义变量、基于一个结果集的游标、循环等等。1.2.部署架构 待补充。 1.3.环境说明 需要事先完成Hive的安装部署,详细参见《Hive安装使用说明》。 二、HPL/SQL安装 2.1. 下载 从官网(https://www.360docs.net/doc/6d4424875.html,/download)上下载最新的稳定版本地址,并上传到服务器上。 本安装示例采用的版本为hplsql-0.3.13.tar.gz。 2.2. 解压并配置环境变量 解压安装文件到/opt目录 $ tar-zxvf hplsql-0.3.13.tar.gz -C /opt $ ln-s /opt/hplsql-0.3.13 /opt/hplsql 修改环境变量

$ sudo vi /etc/profile 修改如下内容 export HPLSQL_HOME=/opt/hplsql export PATH="$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$HPLSQL_HOME/bi n :$PATH" :wq 启用配置 $ source/etc/profile 2.3. 修改配置文件 $ cd$HPLSQL_HOME $ vi hplsql-site.xml 修改以下内容的值 hplsql.conn.default hive2conn The default connection profile hplsql.conn.hive2conn org.apache.hive.jdbc.HiveDriver;jdbc:hive2://hdfs1:10000 HiveServer2 JDBC connection hplsql.conn.init.hive2conn set https://www.360docs.net/doc/6d4424875.html,=default; set hive.execution.engine=mr; use default; Statements for execute after connection to the database

Hive简易操作入门

1Hive使用入门: 主要流程为: 1.运行putty等ssh客户端连接hive服务器; 2.运行hive命令进入hive shell环境; 3.执行HQL语句进行查询; 本流程中以putty为例,如果使用别的SSH客户端,界面上会不同,基本过程相似。 我们当前使用的hive版本为0.9.0。由于hive本身还在不断开发、升级中,不同版本的hive对各种语句、命令行参数等的支持均不同,请大家注意某个特性从哪一个版本开始支持。Hive官方网站上的教材中有些命令需要到0.10.0等更高版本才支持! 1.1安装ssh 客户端Putty 软件位置: \\cn1\ctrip\商业智能部\部门公用\SoftWare\putty.zip 解压所可以得到文件 Putty ssh客户端

1.2登录安装hive的机器 1.2.1运行putty 输入ip地址192.168.83.96 和端口号信息1022,如下图:注:一般默认的SSH端口是22,此处必须修改! 1.2.2登录linux 单击open按钮,按提示输入用户名,并回车,然后按提示输入密码,并回车,例如:

用户名为ppj 密码为HgeeGxR5 提示:可选中复制到剪贴板后,用鼠标右键粘贴 如果用户名、密码正确,则登录成功,顺利进入linux 的bash 环境。 注:此环境类似于运行windows的cmd进入的dos环境。 1.2.3输入hive,进入hive 的shell 环境:

1.2.4查询 执行如下查询语句: Use test_wqd; Select * from pageview limit 5; 屏幕输出即为查询语句的结果。 注意:hive的查询语句以分号作为各条命令的分隔符,结尾的分号不能省略。这一点和SQL Server的T-SQL差异比较大!

Hive函数

关系运算 等值比较: = 语法:A = B 操作类型: 所有基本类型 描述: 如果表达式A与表达式B相等,则为TRUE;否则为FALSE 举例: hive> select 1 from dual where 1=1; 1 不等值比较: <> 语法: A <> B 操作类型: 所有基本类型 描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A 与表达式B不相等,则为TRUE;否则为FALSE 举例: hive> select 1 from dual where 1 <> 2; 1 小于比较: < 语法: A < B 操作类型: 所有基本类型 描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A 小于表达式B,则为TRUE;否则为FALSE 举例:

hive> select 1 from dual where 1 < 2; 1 小于等于比较: <= 语法: A <= B 操作类型: 所有基本类型 描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A 小于或者等于表达式B,则为TRUE;否则为FALSE 举例: hive> select 1 from dual where 1 <= 1; 1 大于比较: > 语法: A > B 操作类型: 所有基本类型 描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A 大于表达式B,则为TRUE;否则为FALSE 举例: hive> select 1 from dual where 2 > 1; 1 大于等于比较: >= 语法: A >= B 操作类型: 所有基本类型 描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A 大于或者等于表达式B,则为TRUE;否则为FALSE

第10课-Hive安装部署实验

Hive安装部署实验 【实验名称】 Hive 安装部署实验 【实验目的】 1.理解Hive存在的原因; 2.理解Hive的工作原理; 3.理解Hive的体系架构; 4.学会如何进行内嵌模式部署; 5.启动Hive,然后将元数据存储在HDFS上 【实验要求】 1.完成Hive的内嵌模式部署; 2.完成mysql安装; 3.能够将Hive数据存储在HDFS上; 4.Hive环境搭建好后,能够启动并执行一般命令 【实验环境】 在第2课hadoop集群的基础上在hadoop1主节点上安装部署Hive

【实验步骤】 注:安装所需要的软件都在/opt/hadoop-package目录下安装前需要先安装hadoop 和mysql 参考之前对应的安装文档 1.安装Mysql 1.1首先进入软件包目录 [root@hadoop1 ~]# cd /opt/hadoop-package/ 1.2解压缩mysql到/usr/local目录 [root@hadoop1 haoodp-install]# tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ 1.3进入到/usr/local目录并重命名 [root@hadoop1 haoodp-install]# cd /usr/local/ [root@hadoop1 local]# mv mysql-5.6.40-linux-glibc2.12-x86_64 mysql

1.4添加组用户 [root@hadoop1 local]# groupadd mysql 添加用户mysql 到用户组mysql [root@hadoop1 local]# useradd -g mysql mysql 1.5安装mysql 1.5.1进入到安装包目录 [root@hadoop1 local]# cd /usr/local/mysql 1.5.2创建data目录下mysql文件夹 [root@hadoop1 mysql]# mkdir ./data/mysql 1.5.3授权并执行脚本 [root@hadoop1 mysql]# chown -R mysql:mysql ./ ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql 1.5.4复制mysql服务文件到/etc/init.d目录下并重命名 [root@hadoop1 mysql]# cp support-files/mysql.server /etc/init.d/mysqld

Hive安装

1.将Hive安装包上传到/opt目录下 2.将/opt目录下的安装包解压到/usr/local目录下,解压命令如下 3.进入到Hive安装包的conf目录下,执行以下命令 在文件hive-env.sh末尾添加Hadoop安装包的路径,添加内容如下所示. 4.登录MySQL,创建hive数据库 1)若还没有安装MySQL,则需要先安装MySQL,执行以下命令。 a)搜索mysql安装包,找到mysql-server.x86_64 b)安装mysql-server.x86_64 c)开启远程权限 i.启动mysql服务 ii.启动mysql:直接在终端输入“mysql” iii.执行以下命令:

delete from user where 1=1; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; FLUSH PRIVILEGES; 2)若已安装MySQL,则进入到mysql命令行,创建hive数据库(数据库名称为hive)。 Create database hive; 创建完成后推出mysql Exit 5.将hive-site.xml文件上传到Hive安装包的conf目录下。 6.上传mysql驱动mysql-connector-java-5.1.25-bin.jar到Hive安装包lib目录。 7.在终端执行以下命令 mv /usr/local/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar/usr/local/hadoop-2.6.4/ share/hadoop/yarn/lib/jline-0.9.94.jar.bak cp /usr/local/apache-hive-1.2.1-bin/lib/ /jline-2.12.jar /usr/local/hadoop-2.6.4/share/hadoop/yarn/lib/ 8.启动hive,执行以下命令

相关文档
最新文档