HIVE安装使用说明
hive的用法

hive的用法一、Hive简介Hive是一个基于Hadoop的数据仓库工具,它能够将结构化数据映射到Hadoop的分布式文件系统上,并且提供了一个SQL-like的查询语言——HiveQL。
通过使用Hive,用户可以方便地处理大规模的数据,并且可以使用熟悉的SQL语言进行查询和分析。
二、Hive的安装1. 前置条件在安装Hive之前,需要先安装好Java和Hadoop。
另外还需要确保系统中已经安装好了MySQL或Derby等数据库管理系统。
2. 下载和解压缩从Apache官网上下载最新版本的Hive,然后解压缩到本地目录中。
3. 配置环境变量在.bashrc或者.bash_profile文件中添加以下内容:export HIVE_HOME=/usr/local/hiveexport PATH=$PATH:$HIVE_HOME/bin4. 修改配置文件进入$HIVE_HOME/conf目录,修改hive-env.sh文件,将其中的JAVA_HOME设置为本地JDK路径。
5. 启动Metastore服务在$HIVE_HOME/bin目录下执行以下命令启动Metastore服务:./hive --service metastore6. 启动CLI客户端在$HIVE_HOME/bin目录下执行以下命令启动CLI客户端:./hive三、创建表格1. 创建数据库在CLI客户端中执行以下命令创建数据库:create database mydb;2. 创建表格在CLI客户端中执行以下命令创建表格:create table mytable (id int, name string);四、导入数据1. 从本地文件系统导入数据在CLI客户端中执行以下命令将本地文件系统中的数据导入到Hive中:load data local inpath '/path/to/local/file' into table mytable;2. 从HDFS导入数据在CLI客户端中执行以下命令将HDFS中的数据导入到Hive中:load data inpath '/path/to/hdfs/file' into table mytable;五、查询数据在CLI客户端中执行以下命令查询数据:select * from mytable;六、常用操作1. 查看表格结构desc mytable;2. 查看数据库列表show databases;3. 查看表格列表show tables;4. 删除表格drop table mytable;5. 删除数据库drop database mydb;七、总结通过以上步骤,我们可以完成对Hive的安装和基本用法的学习。
Hive安装配置详细

Hive安装配置详细定义Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据。
Hive可以将结构化的数据存储在数据仓库中,通过自己的SQL去查询分析需要的内容,这套SQL简称Hive SQL。
它与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML 以及常见的聚合函数、连接查询、条件查询。
Hive在Hadoop的架构体系中承担了一个SQL解析的过程,它提供了对外的入口来获取用户的指令然后对指令进行分析,解析出一个MapReduce程序组成可执行计划,并按照该计划生成对应的MapReduce 任务提交给Hadoop集群处理,获取最终的结果。
以上定义来源于《Hadoop开发者入门专刊》Hive安装我将延用《Hadoop安装》文档(/blog/706699)风格撰写下文。
Hive需要Hadoop的支持,也就是说在安装Hive之前需要正确安装Hadoop,这里不再阐述Hadoop 的安装过程。
一般我们会将Hive安装到NameNode所在主机上,这里假设使用root用户进行安装,Hive 的安装过程很简单:以上就是在Linux(cent os 5.X)上安装Hive的过程,下面就到了配置的环节。
Hive配置Hive的必要配置相当简单,只需要声明$HADOOP_HOME(请查阅《Hadoop安装》文档)这个环境变量就行了。
Hive的核心配置文件$HIVE_HOME/conf/hive-default.xml中有一些对Hive关键配置,一般我们不需要对其进行改动,如果你需要更改这个关键配置,请不要直接更改hive-default.xml这个文件,在同一目录下新建hive-site.xml文件,然后将需要更改的属性配置在这里面即可,配置格式与hive-default.xml一样。
另外,在Hive官方文档中重点提到了Hive的日志配置$HIVE_HOME/conf/hive-log4j.properties,虽然不是必要更改的配置文件,但合理的设置会对我们有一定的帮助,具体配置方法可见官方文档。
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_64b)安装mysql-server.x86_64c)开启远程权限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;创建完成后推出mysqlExit5.将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.bakcp /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,执行以下命令。
Hive的三种安装方式(内嵌模式,本地模式远程模式)

Hive的三种安装⽅式(内嵌模式,本地模式远程模式)⼀、安装模式介绍:Hive官⽹上介绍了Hive的3种安装⽅式,分别对应不同的应⽤场景。
1、内嵌模式(元数据保村在内嵌的derby种,允许⼀个会话链接,尝试多个会话链接时会报错)2、本地模式(本地安装mysql 替代derby存储元数据)3、远程模式(远程安装mysql 替代derby存储元数据)⼆、安装环境以及前提说明:⾸先,Hive是依赖于hadoop系统的,因此在运⾏Hive之前需要保证已经搭建好hadoop集群环境。
本⽂中使⽤的hadoop版本为2.5.1,Hive版本为1.2.1版。
OS:Linux Centos 6.5 64位jdk:java version "1.7.0_79"假设已经下载了Hive的安装包,且安装到了/home/install/hive-1.2.1在~/.bash_profile中设定HIVE_HOME环境变量:export HIVE_HOME=/home/install/hive-1.2.1三、内嵌模式安装:这种安装模式的元数据是内嵌在Derby数据库中的,只能允许⼀个会话连接,数据会存放到HDFS上。
1、切换到HIVE_HOME/conf⽬录下,执⾏下⾯的命令:cp hive-env.sh.template hive-env.shvim hive-env.sh在hive-env.sh中添加以下内容:HADOOP_HOME=/home/install/hadoop-2.5.12、启动hive,由于已经将HIVE_HOME加⼊到了环境变量中,所以这⾥直接在命令⾏敲hive即可:然后我们看到在hadoop的HDFS上已经创建了对应的⽬录。
注意,只要上⾯2步即可完成内嵌模式的安装和启动,不要画蛇添⾜。
⽐如下⾯================================【下⾯这段就不要看了】==============================================(作废)2、提供⼀个hive的基础配置⽂件,执⾏如下代码,就是将conf⽬录下⾃带的⽂件修改为配置⽂件:cp hive-default.xml.template hive-site.xml(作废)3、启动hive,由于已经将HIVE_HOME加⼊到了环境变量中,所以这⾥直接在命令⾏敲hive即可:(作废)结果报错了,看错误⽇志中提到system:java.io.tmpdir,这个配置项在hive-site.xml中有提到。
hive安装配置与调试

Hive的安装与调试目录一.hive的安装与配置 (2)1.下载hive的稳定版本 (2)2.解压缩到/usr/local的目录下 (2)3.配置环境变量 (2)4.运行hive (3)二.配置mysql-server作为hive的metastore (4)1.下载mysql-server (4)2.创建hadoop用户 (4)3.为hive创建数据库 (4)4.配置hive/conf中的hive-site.xml (4)5.把MySQL的JDBC驱动包复制到Hive的lib目录下。
(5)6.启动Hive shell,执行 (5)7.在hive下创建表 (5)8.登录mysql-server查看刚刚建立的表weather (6)三.hive源代码的编译 (8)1.安装SVN (8)2.选择源代码存放目录 (8)3.下载源代码 (8)4.使用ant编译源代码 (8)5.导入eclipse工程 (8)6.添加hive的配置文件 (9)7.调试hive (9)一.hive的安装与配置1.下载hive的稳定版本/hive/hive-0.8.0/2.解压缩到/usr/local的目录下$tar -xzf /usr/local/hive-0.8.0.tar /usr/local/hive 解压缩完成后,/usr/local/hive应该有如图1所示文件图13.配置环境变量打开/etc/profile文件,$sudo gedit /etc/profile在path里面添加:/usr/local/hive/bin:如图2所示:图24.运行hive打开hadoop $start-all.sh打开hive $hive测试一下$show tables;如果出现上面的画面,说明hive安装成功。
二.配置mysql-server作为hive的metastore1.下载mysql-server$ sudo apt-get install mysql-server2.创建had oop用户$ mysql$ CREATE USER 'hadoop'@'localhost' IDENTIFIED BY 'hadoop';$ GRANT ALL PRIVILEGES ON * .* TO 'hadoop'@'localhost' WITH GRANT OPTION;3.为hive创建数据库$create database hive;4.配置hive/conf中的hive-site.xml默认的没有这个文件,我们复制hive-default.xml.template,然后改名为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>5.把MySQL的JDBC驱动包复制到Hive的lib目录下。
hive的用法

Hive的用法一、Hive简介Hive是基于Hadoop的数据仓库工具,用于处理大规模数据集。
它提供了一种类似于SQL的查询语言,称为HiveQL,使得分析师和数据科学家可以使用熟悉的SQL 语法来查询和分析数据。
Hive将这些查询转换为MapReduce任务,并在Hadoop集群上执行,从而实现高效的数据处理。
二、Hive安装和配置2.1 安装Hive首先,需要下载Hive的安装包,并解压到指定的目录。
然后,设置Hive的环境变量,包括添加Hive的bin目录到PATH变量中,以及设置HIVE_HOME变量指向Hive的安装目录。
2.2 配置HiveHive的配置文件位于Hive的安装目录下的conf文件夹中。
其中,最重要的配置文件是hive-site.xml,它包含了Hive的各种配置参数。
在配置文件中,需要指定Hive的元数据存储位置、Hadoop集群的配置信息、Hive的执行引擎等。
三、Hive数据模型Hive的数据模型类似于传统的关系型数据库。
它将数据组织成表,并支持表的分区和分桶,以提高查询性能。
在Hive中,表可以分为内部表和外部表。
内部表的数据存储在Hive的默认存储位置中,而外部表的数据可以存储在Hive之外的任意位置。
四、HiveQL查询语言HiveQL是Hive的查询语言,它类似于SQL语言,但也有一些不同之处。
下面是一些常用的HiveQL查询语句和语法:4.1 创建表在Hive中,可以使用CREATE TABLE语句来创建表。
可以指定表的名称、列名、列的数据类型等信息。
例如:CREATE TABLE employees (id INT,name STRING,age INT);4.2 加载数据使用LOAD DATA语句可以将数据加载到Hive表中。
可以从本地文件系统或Hadoop 文件系统中加载数据。
例如:LOAD DATA LOCAL INPATH '/path/to/data.txt' INTO TABLE employees;4.3 查询数据使用SELECT语句可以查询Hive表中的数据。
Hive安装与配置

HIVE详细配置手册(各版本号根据实际情况自行更改)1) 安装hive1.hadoop@hadoop-master:/opt$sudo wget -c/hive/hive-0.9.0/hive-0.9.0.tar.gz2.hadoop@hadoop-master:/opt$ sudo tar xvzf hive-0.9.0.tar.gz3.hadoop@hadoop-master:/opt$sudo mvhive-0.9.0/home/hadoop/hadoop-1.0.1/contrib/hive2)配置环境变量1.hadoop@hadoop-master:/opt$ cat /etc/profile2.export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd643.export HADOOP_HOME=/home/hadoop/hadoop-1.0.14.export ANT_HOME=$HADOOP_HOME/apache-ant-1.7.15.exportPATH=$PATH:$HADOOP_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/contrib/hive/ bin:$ANT_HOME/bin6.export HADOOP_HOME_WARN_SUPPRESS=13)启动hive1.hadoop@hadoop-master:~/hadoop-1.0.1/contrib/hive/bin$ hive2.hive> show tables;3.OK4.Time taken:7.032 seconds执行成功。
安装mysql和mysql操作1.hadoop@hadoop-master:~$ sudo apt-get install mysql-servermysql( 未成功输入) mysql-client2.hadoop@hadoop-master:~$ sudo /etc/init.d/mysqld restart1.(#service mysql restart)3.hadoop@hadoop-master:~$ mysql -uroot –p1234561.(-u跟用户名,-p跟密码)4.mysql>create database hive;5.mysql>grant all on hive.* to hive@localhost identified by '123456';安装Mysql的JDBC驱动包1.hadoop@hadoop-master:~$ sudo wget -c/archives/mysql-connector-java-5.0/mysql-co nnector-java-5.0.8.tar.gz2.hadoop@hadoop-master:~$ mv mysql-connector-java-5.0.8.tar.gz/usr/local/hadoop/contrib/hive/lib5) 修改hive配置文件(用#sudo gedit 加配置文件名)1.hadoop@hadoop-master:~/hadoop-1.0.1/contrib/hive/conf$ cphive-default.xml.template hive-defalut.xml2.hadoop@hadoop-master:~/hadoop-1.0.1/contrib/hive/conf$ cphive-default.xml.template hive-site.xml#修改hive-site.xml 如下部分#sudo gedit hive-site.xml1.<property>2.<name>javax.jdo.option.ConnectionURL</name>3.<value>jdbc:mysql://localhost:3306/hive?createDataBaseIfNotExist=True</value>4.<description>JDBC connect string for a JDBCmetastore</description>5.</property>6.7.<property>8.<name>javax.jdo.option.ConnectionDriverName</name>9.<value>com.mysql.jdbc.Driver</value>10.<description>Driver class name for a JDBC metastore</description>11.</property>12.13.<property>14.<name>javax.jdo.option.ConnectionUserName</name>15.<value>hive</value>16.<description>username to use against metastoredatabase</description>17.</property>18.19.<property>20.<name>javax.jdo.option.ConnectionPassword</name>21.<value>123456</value>22.<description>password to use against metastoredatabase</description>23.</property>浏览器输入http://localhost:50070进行查看,点击Browser the filesystem进入,点击user会看到hive链接,点击进去就能看到数据表。
大讲台筛选,Hive从概念到安装使用总结

大讲台筛选,Hive从概念到安装使用总结一、Hive的基本概念1.1 hive是什么?(1)Hive是建立在hadoop数据仓库基础之上的一个基础架构;(2)相当于hadoop之上的一个客户端,可以用来存储、查询和分析存储在hadoop中的数据;(3)是一种SQL解析引擎,能够将SQL转换成Map/Reduce中的Job在hadoop上执行。
1.2 hive的数据存储特点(1)数据存储是基于hadoop的HDFS;(2)没有专门的数据存储格式;(3)存储结构主要有:数据库、文件(默认可以直接加载文本文件)、表、视图、索引;说明:hive中的表实质就是HDFS的目录,按表名将文件夹分开,若是分区表,则分区值是子文件夹。
这些数据可以直接在M/R中使用。
大讲台,混合式自适应IT职业教育开创者。
hive中的数据是存放在HDFS中的。
二、hive的系统结构存储hive的元数据(表及表的属性、数据库名字等)分析执行hive QL语句,将执行计划投递给hadoop,转到map/reduce执行2.1 hive的系统结构– metastore存储方式默认情况,元数据使用内嵌的derby数据库作为存储引擎将存储数据独立出来,支持多用户同时访问将metastore独立出来,远程方法调用三、hive的安装与使用3.1下载hive源文件,解压hive文件进入$HIVE_HOME/conf/修改文件修改$HIVE_HOME/bin的hive-env.sh,增加以下三行生效文件:3.2 配置MySQL的metastore修改$HIVE_HOME/conf/hive-site.xml3.3hive临时目录的配置,大讲台,混合式自适应IT职业教育开创者。
修改$HIVE_HOME/conf/hive-site.xml(1)设定数据目录(2)设定临时文件目录(3)hive相关日志的目录3.4hive的运行模式的指定Hive的运行模式即任务的执行环境,分为本地与集群两种,我们可以通过mapred.job.tracke r 来指明本地模式设置方式:3.5 sqoop的安装(1)下载、解压:(2)配置sqoop:(3)测试连接数据库并列出数据库:(4)将mysql中的表导入到hive中:3.6 hive的命令行方式1、输入#/hive/bin/hive执行应用程序,或者查看并修改表与目录之间的关系修改参数:hive.metastore.warehouse.dir 表与目录的对应关系3.6 命令行方式显示或修改参数值在代码中大讲台,混合式自适应IT职业教育开创者。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HIVE安装使用说明一、Hive简介1.1.Hive是什么Hadoop作为分布式运算的基础架构设施,统计分析需要采用MapReduce编写程序后,放到Hadoop集群中进行统计分析计算,使用起来较为不便,Hive产品采用类似SQL的语句快速实现简单的MapReduce统计,很大程度降低了Hadoop的学习使用成本。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供基础的SQL查询功能,可以将SQL 语句转换为MapReduce任务运行,而不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
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的使用目前资料很少,尚未充分了解。
HWI是Hive Web Interface的简称,可以理解为CLI的WEB访问方式,因当前安装介质中未找到HWI对应的WAR文件,未能进行使用学习。
Hive在运行过程中,还需要提供MetaStore提供对元数据(包括表结构、表与数据文件的关系等)的保存,Hive提供三种形式的MetaStore:一是内嵌Derby方式,该方式一般用演示环境的搭建;二是采用第三方数据库进行保存,例如常用的MySQL等;三是远程接口方式,及由Hive自身提供远程服务,供其他Hive应用使用。
在本安装示例中采用的第二种方式进行安装部署。
备注:在本文后续的安装和说明中,所有示例均以HiverServer2、Beeline方式进行。
另:因Hive在查询时性能较差,后期拟计划采用SPARK或Presto 进行替代,因此本安装手册不对Hive的集群方案进行描述。
1.3.环境说明本安装示例在Ubuntu 14.04.3的虚拟器中进行安装,并提前安装配置Hadoop。
二、MySQL安装配置2.1. MySQL安装登录到hdfs3中,安装MySQL服务器。
$ sudo apt-get install mysql-server修改my.cfg的配置文件$ sudo vi /etc/mysql/my.cfg修改内容如下:bind-address = 10.68.19.183:wq重新启动mysql服务$ sudo service mysql restart2.2. 创建Hive需要的数据库和用户$ mysql -uroot -p依次输入以下命令:# 创建hive用户insert into er(Host,User,Password)values("localhost","hive",password("hive"));# 创建数据库create database hive;# 授权grant all on hive.*to hive@'%'identified by'hive';grant all on hive.*to hive@'localhost'identified by'hive';flush privileges;# 退出exit三、Hive安装3.1. 下载Hive从官网(/downloads.html)上下载最新的稳定版本地址,并上传到服务器上。
本安装示例采用的版本为apache-hive-1.2.1-bin.tar.gz。
3.2. 解压并配置环境变量解压安装文件到/opt目录$ tar-zxvf apache-hive-1.2.1-bin.tar.gz -C /opt修改环境变量$ sudo vi /etc/profile修改如下内容export HIVE_HOME=/opt/hive-1.2.1export PATH="$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$PATH":wq启用配置$ source/etc/profile3.3. 修改配置文件$ cd$HIVE_HOME$ cp conf/hive-default.xml.template conf/hive-site.xml$ vi conf/hive-site.xml修改以下内容的值<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://10.68.19.183:3306/hive</value><description>JDBC connect string for a JDBC metastore</description> </property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description> </property><property><name>javax.jdo.option.ConnectionPassword</name><value>hive</value><description>password to use against metastoredatabase</description></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value><description>Username to use against metastoredatabase</description></property><property><name>hive.exec.local.scratchdir</name><value>/data/hive/scratach</value><description>Local scratch space for Hive jobs</description></property><property><name>hive.downloaded.resources.dir</name><value>/data/hive/download</value><description>Temporary local directory for added resources in the remote file system.</description></property><property><name>hive.querylog.location</name><value>/data/hive/querylog</value><description>Location of Hive run time structured logfile</description></property><property><name>hive.server2.logging.operation.log.location</name><value>/data/hive/operation_logs</value><description>Top level directory where operation logs are stored if logging functionality is enabled</description></property>...</configuration>3.4. 创建需要的目录$ mkdir/data/hive$ mkdir/data/hive/scratach$ mkdir/data/hive/download$ mkdir/data/hive/querylog$ mkdir/data/hive/operation_logs3.5. 上传MySQL驱动将mysql-connector-java-5.1.36.jar上传到$HIVE_HOME/lib目录下。
3.6. 启动$ hiveserver23.7. 基本操作验证$ beeline!connect jdbc:hive2://hdfs1:10000输入当前用户名,密码为空或者直接输入$ ./bin/beeline –u jdbc:hive2://hdfs1:10000# 查看当前数据库show databases;# 查看所有表show tables;# 创建表create table users(user_id int, fname string,lname string );# 插入数据INSERT INTO users (user_id, fname,lname)VALUES(1,'john','smith'); INSERT INTO users (user_id, fname, lname)VALUES(2,'john','doe'); INSERT INTO users (user_id, fname,lname)VALUES(3,'john','smith');# 查询数据select*from users limit 2;select count(1)from users;3.8. 数据导入示例示例场景说明:先将输入导入到tmp_sell_day_corp_cig,再将数据写入sell_day_corp_cig中。