hive学习之路hive安装(代码片段)

guohu guohu     2022-12-01     695

关键词:

 

正文

Hive的下载

下载地址http://mirrors.hust.edu.cn/apache/

选择合适的Hive版本进行下载,进到stable-2文件夹可以看到稳定的2.x的版本是2.3.3

技术图片

Hive的安装

1、本人使用MySQL做为Hive的元数据库,所以先安装MySQL。

MySql安装过程http://www.cnblogs.com/qingyunzong/p/8294876.html

2、上传Hive安装包

技术图片

3、解压安装包

[hadoop@hadoop3 ~]$ tar -zxvf apache-hive-2.3.3-bin.tar.gz -C apps/

4、修改配置文件

配置文件所在目录apache-hive-2.3.3-bin/conf

技术图片
[hadoop@hadoop3 apps]$ cd apache-hive-2.3.3-bin/
[hadoop@hadoop3 apache-hive-2.3.3-bin]$ ls
bin  binary-package-licenses  conf  examples  hcatalog  jdbc  lib  LICENSE  NOTICE  RELEASE_NOTES.txt  scripts
[hadoop@hadoop3 apache-hive-2.3.3-bin]$ cd conf/
[hadoop@hadoop3 conf]$ ls
beeline-log4j2.properties.template    ivysettings.xml
hive-default.xml.template             llap-cli-log4j2.properties.template
hive-env.sh.template                  llap-daemon-log4j2.properties.template
hive-exec-log4j2.properties.template  parquet-logging.properties
hive-log4j2.properties.template
[hadoop@hadoop3 conf]$ pwd
/home/hadoop/apps/apache-hive-2.3.3-bin/conf
[hadoop@hadoop3 conf]$ 
技术图片

新建hive-site.xml并添加以下内容

[hadoop@hadoop3 conf]$ touch hive-site.xml
[hadoop@hadoop3 conf]$ vi hive-site.xml 
技术图片
<configuration>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://hadoop1:3306/hivedb?createDatabaseIfNotExist=true</value>
                <description>JDBC connect string for a JDBC metastore</description>
                <!-- 如果 mysql 和 hive 在同一个服务器节点,那么请更改 hadoop02 为 localhost -->
        </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.ConnectionUserName</name>
                <value>root</value>
                <description>username to use against metastore database</description>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>root</value>
        <description>password to use against metastore database</description>
        </property>
</configuration>
技术图片

以下可选配置,该配置信息用来指定 Hive 数据仓库的数据存储在 HDFS 上的目录

        <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>/hive/warehouse</value>
                <description>hive default warehouse, if nessecory, change it</description>
        </property>    

5、 一定要记得加入 MySQL 驱动包(mysql-connector-java-5.1.40-bin.jar)该 jar 包放置在 hive 的根路径下的 lib 目录

 技术图片

6、 安装完成,配置环境变量

[hadoop@hadoop3 lib]$ vi ~/.bashrc 
#Hive
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.3-bin
export PATH=$PATH:$HIVE_HOME/bin

使修改的配置文件立即生效

[hadoop@hadoop3 lib]$ source ~/.bashrc 

7、 验证 Hive 安装

技术图片
[hadoop@hadoop3 ~]$ hive --help
Usage ./hive <parameters> --service serviceName <service parameters>
Service List: beeline cleardanglingscratchdir cli hbaseimport hbaseschematool help hiveburninclient hiveserver2 hplsql jar lineage llapdump llap llapstatus metastore metatool orcfiledump rcfilecat schemaTool version 
Parameters parsed:
  --auxpath : Auxiliary jars 
  --config : Hive configuration directory
  --service : Starts specific service/component. cli is default
Parameters used:
  HADOOP_HOME or HADOOP_PREFIX : Hadoop install directory
  HIVE_OPT : Hive options
For help on a particular service:
  ./hive --service serviceName --help
Debug help:  ./hive --debug --help
[hadoop@hadoop3 ~]$ 
技术图片

技术图片

8、 初始化元数据库

  注意:当使用的 hive 是 2.x 之前的版本,不做初始化也是 OK 的,当 hive 第一次启动的 时候会自动进行初始化,只不过会不会生成足够多的元数据库中的表。在使用过程中会 慢慢生成。但最后进行初始化。如果使用的 2.x 版本的 Hive,那么就必须手动初始化元 数据库。使用命令:

技术图片
[hadoop@hadoop3 ~]$ schematool -dbType mysql -initSchema
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/apps/apache-hive-2.3.3-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/apps/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Metastore connection URL:     jdbc:mysql://hadoop1:3306/hivedb?createDatabaseIfNotExist=true
Metastore Connection Driver :     com.mysql.jdbc.Driver
Metastore connection User:     root
Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Initialization script completed
schemaTool completed
[hadoop@hadoop3 ~]$ 
技术图片

技术图片

9、 启动 Hive 客户端

hive --service cli和hive效果一样

技术图片
[hadoop@hadoop3 ~]$ hive --service cli
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/apps/apache-hive-2.3.3-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/apps/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initialized using configuration in jar:file:/home/hadoop/apps/apache-hive-2.3.3-bin/lib/hive-common-2.3.3.jar!/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive> 
技术图片

技术图片

基本使用

现有一个文件student.txt,将其存入hive中,student.txt数据格式如下:

技术图片
95002,刘晨,女,19,IS
95017,王风娟,女,18,IS
95018,王一,女,19,IS
95013,冯伟,男,21,CS
95014,王小丽,女,19,CS
95019,邢小丽,女,19,IS
95020,赵钱,男,21,IS
95003,王敏,女,22,MA
95004,张立,男,19,IS
95012,孙花,女,20,CS
95010,孔小涛,男,19,CS
95005,刘刚,男,18,MA
95006,孙庆,男,23,CS
95007,易思玲,女,19,MA
95008,李娜,女,18,CS
95021,周二,男,17,MA
95022,郑明,男,20,MA
95001,李勇,男,20,CS
95011,包小柏,男,18,MA
95009,梦圆圆,女,18,MA
95015,王君,男,18,MA
技术图片

 

1、创建一个数据库myhive

hive> create database myhive;
OK
Time taken: 7.847 seconds
hive> 

技术图片

2、使用新的数据库myhive

hive> use myhive;
OK
Time taken: 0.047 seconds
hive> 

技术图片

3、查看当前正在使用的数据库

hive> select current_database();
OK
myhive
Time taken: 0.728 seconds, Fetched: 1 row(s)
hive> 

技术图片

4、在数据库myhive创建一张student表

hive> create table student(id int, name string, sex string, age int, department string) row format delimited fields terminated by ",";
OK
Time taken: 0.718 seconds
hive> 

技术图片

5、往表中加载数据

hive> load data local inpath "/home/hadoop/student.txt" into table student;
Loading data to table myhive.student
OK
Time taken: 1.854 seconds
hive> 

技术图片

6、查询数据

技术图片
hive> select * from student;
OK
95002    刘晨    女    19    IS
95017    王风娟    女    18    IS
95018    王一    女    19    IS
95013    冯伟    男    21    CS
95014    王小丽    女    19    CS
95019    邢小丽    女    19    IS
95020    赵钱    男    21    IS
95003    王敏    女    22    MA
95004    张立    男    19    IS
95012    孙花    女    20    CS
95010    孔小涛    男    19    CS
95005    刘刚    男    18    MA
95006    孙庆    男    23    CS
95007    易思玲    女    19    MA
95008    李娜    女    18    CS
95021    周二    男    17    MA
95022    郑明    男    20    MA
95001    李勇    男    20    CS
95011    包小柏    男    18    MA
95009    梦圆圆    女    18    MA
95015    王君    男    18    MA
Time taken: 2.455 seconds, Fetched: 21 row(s)
hive> 
技术图片

技术图片

7、查看表结构

技术图片
hive> desc student;
OK
id                      int                                         
name                    string                                      
sex                     string                                      
age                     int                                         
department              string                                      
Time taken: 0.102 seconds, Fetched: 5 row(s)
hive> 
技术图片

 

技术图片
hive> desc extended student;
OK
id                      int                                         
name                    string                                      
sex                     string                                      
age                     int                                         
department              string                                      
          
Detailed Table Information    Table(tableName:student, dbName:myhive, owner:hadoop, createTime:1522750487, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:id, type:int, comment:null), FieldSchema(name:name, type:string, comment:null), FieldSchema(name:sex, type:string, comment:null), FieldSchema(name:age, type:int, comment:null), FieldSchema(name:department, type:string, comment:null)], location:hdfs://myha01/user/hive/warehouse/myhive.db/student, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:serialization.format=,, field.delim=,), bucketCols:[], sortCols:[], parameters:, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[], skewedColValueLocationMaps:), storedAsSubDirectories:false), partitionKeys:[], parameters:transient_lastDdlTime=1522750695, totalSize=523, numRows=0, rawDataSize=0, numFiles=1, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE, rewriteEnabled:false)    
Time taken: 0.127 seconds, Fetched: 7 row(s)
hive> 
技术图片

 

技术图片
hive> desc formatted student;
OK
# col_name                data_type               comment             
          
id                      int                                         
name                    string                                      
sex                     string                                      
age                     int                                         
department              string                                      
          
# Detailed Table Information          
Database:               myhive                   
Owner:                  hadoop                   
CreateTime:             Tue Apr 03 18:14:47 CST 2018     
LastAccessTime:         UNKNOWN                  
Retention:              0                        
Location:               hdfs://myha01/user/hive/warehouse/myhive.db/student     
Table Type:             MANAGED_TABLE            
Table Parameters:          
    numFiles                1                   
    numRows                 0                   
    rawDataSize             0                   
    totalSize               523                 
    transient_lastDdlTime    1522750695          
          
# Storage Information          
SerDe Library:          org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe     
InputFormat:            org.apache.hadoop.mapred.TextInputFormat     
OutputFormat:           org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat     
Compressed:             No                       
Num Buckets:            -1                       
Bucket Columns:         []                       
Sort Columns:           []                       
Storage Desc Params:          
    field.delim             ,                   
    serialization.format    ,                   
Time taken: 0.13 seconds, Fetched: 34 row(s)
hive> 
技术图片

 

hive学习之路hive中文乱码(代码片段)

Hive注释中文乱码创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱码createexternaltablemovie(userIDintcomment‘用户ID‘,movieIDintcomment‘电影ID‘,ratingintcomment‘电影评分‘,timestampedbigintcomment‘评分时间戳‘,... 查看详情

hive学习之路hive的高级操作(代码片段)

一、负责数据类型1、array 现有数据如下:1huangboguangzhou,xianggang,shenzhena1:30,a2:20,a3:100beijing,112233,13522334455,5002 xuzheng xianggang b2:50,b3:40 tianjin,223344,13644556677,6003 wangbaoqiang beijing,zhe 查看详情

hive学习之路hive的ddl操作(代码片段)

库操作1、创建库语法结构CREATE(DATABASE|SCHEMA)[IFNOTEXISTS]database_name  [COMMENTdatabase_comment]      //关于数据块的描述  [LOCATIONhdfs_path]          //指定数据库在HDFS上的存储位置  [WITHDBPROPERTIES(property_name=propert... 查看详情

hive学习之路(二十)hive执行过程实例分析(代码片段)

一、Hive执行过程概述1、概述(1)Hive将HQL转换成一组操作符(Operator),比如GroupByOperator,JoinOperator等(2)操作符Operator是Hive的最小处理单元(3)每个操作符代表一个HDFS操作或者MapReduce作业(4)Hive通过ExecMapper和ExecReducer执行Map... 查看详情

hive学习之路hive的连接3种连接方式(代码片段)

一、CLI连接进入到bin目录下,直接输入命令: [[email protected]~]$hiveSLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/home/hadoop/apps/apache-hive-2.3.3-bin/lib/log4j-slf4j-impl-2.6. 查看详情

hive学习之路(十九)hive的数据倾斜(代码片段)

1、什么是数据倾斜?由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点2、Hadoop框架的特性  A、不怕数据大,怕数据倾斜  B、Jobs数比较多的作业运行效率相对比较低,如子查询比较多  C、sum,count,max,min等... 查看详情

[转帖]hive学习之路hive初识(代码片段)

 https://www.cnblogs.com/qingyunzong/p/8707885.html 讨论QQ:1586558083目录Hive简介什么是Hive为什么使用HiveHive特点Hive和RDBMS的对比Hive的架构1、用户接口:shell/CLI,jdbc/odbc,webuiCommandLineInterface2、跨语言服务:thriftserver提供了一种能力,让... 查看详情

hive学习:hive安装(代码片段)

安装前提已安装并配置了Hadoop集群(单机或者全分布都行)软件下载Hive官网:https://hive.apache.org/index.htmlHive安装配置环境变量将下载的Hive包上传到机器中,解压到指定路径编辑/etc/profile,配置Hive的环境变量exportHIVE_HOME=/.../apache-... 查看详情

hive学习hive安装(代码片段)

一,文件下载二,hive安装  2.1mysql安装  2.2解压hive  2.3配置文件配置  2.4环境变量配置  2.5 添加mysql的connect的jar包三,hive使用方式  3.1hive直接启动服务  3.2hiveserver2以一个服务的方式启动  3.3hive-e直接脚... 查看详情

hive学习之路(十五)hive分析窗口函数cume_dist和percent_rank(代码片段)

 这两个序列分析函数不是很常用,这里也练习一下。数据准备数据格式cookie3.txtd1,user1,1000d1,user2,2000d1,user3,3000d2,user4,4000d2,user5,5000创建表usecookie;droptableifexistscookie3;createtablecookie3(deptstring,useridstring,salint 查看详情

学习笔记hive——hive安装配置(代码片段)

一、环境介绍环境描述4个Linux操作系统虚拟机使用centos7镜像配置安装java1.8以上版本安装Hadoop2.6.5以上版本安装MySQL5.1以上版本二、安装MySQL(这里我是CentOs7)安装教程链接:https://www.jb51.net/article/150557.htm1、安装完成... 查看详情

hive学习之路hive初识

目录Hive简介什么是Hive为什么使用HiveHive特点Hive和RDBMS的对比Hive的架构1、用户接口:shell/CLI,jdbc/odbc,webuiCommandLineInterface2、跨语言服务:thriftserver提供了一种能力,让用户可以使用多种不同的语言来操纵hive3、底层的Driver:驱动器Dr... 查看详情

hive学习笔记(代码片段)

安装配置安装hive下载hive解压重命名添加环境变量Vi/etc/proflie使环境变量生效Source/etc/profile修改配置文件cphive-env.sh.templatehive-env.shHiveMetastore配置将自带的derby数据库替换为mysql数据库参考文章https://my.oschina.net/u/4292373/blog/3497563登录... 查看详情

hive学习之路hive初识

Hive简介什么是Hive1、Hive由Facebook实现并开源2、是基于Hadoop的一个数据仓库工具3、可以将结构化的数据映射为一张数据库表4、并提供HQL(HiveSQL)查询功能5、底层数据是存储在HDFS上6、Hive的本质是将SQL语句转换为MapReduce任务运行7、... 查看详情

hive学习——单机版hive的安装(代码片段)

目录一、基本概念(一)Hive概念(二)优势和特点(三)Hive元数据管理(四)Hive架构(五)HiveInterface–其他使用环境二、Hive环境搭建1.自动安装脚本2./opt/soft/hive312/conf目录下创建hive配置文件hive-site.xml3.拷贝一个jar包到hive下面的lib目录下4.删... 查看详情

sqoop学习之路(代码片段)

一、概述二、工作机制三、安装1、前提概述2、软件下载3、安装步骤四、Sqoop的基本命令基本操作示例五、Sqoop的数据导入1、从RDBMS导入到HDFS中2、把MySQL数据库中的表数据导入到Hive中3、把MySQL数据库中的表数据导入到hbase 正文... 查看详情

hadoop生态系统学习之路hive的简单使用

一、hive的基本概念与原理Hive是基于Hadoop之上的数据仓库,能够存储、查询和分析存储在Hadoop中的大规模数据。Hive定义了简单的类SQL查询语言,称为HQL。它同意熟悉SQL的用户查询数据,同意熟悉MapReduce开发人员的开发自己定义的... 查看详情

学习笔记--hive网站日志统计分析(代码片段)

前言本次实践的目的是结合之前所学flume、hadoop、hive几个主要技术,完成一个小案例。目标:统计出独立ip数量统计一个ip使用的header数量访问最多的url链接每个ip常访问的url单日每小时访问量折线图准备安装并配置好flume... 查看详情