hive的安装与简单使用

hive安装

hive镜像:

http://mirror.bit.edu.cn/apache/hive/

https://mirrors.tuna.tsinghua.edu.cn/apache/hive/

1.解压、添加环境变量

apache-hive-2.3.6-bin.tar.gz上传到linux的/opt/目录下,并解压。

[root@master opt]# tar -zxvf apache-hive-2.3.6-bin.tar.gz -C ./   #解压文件到当前/opt目录

[root@master opt]# mv ./apache-hive-2.3.6-bin ./hive    #将文件夹名改为hive

 

添加环境变量:

[root@master opt]#  vi ~/.bash_profile

添加如下代码:

export HIVE_HOME=/opt/hive

export PATH=$HIVE_HOME/bin:$HIVE_HOME/sbin:$PATH

 

source ~/.bash_profile  #立即生效

2.修改配置文件

在/opt/hive/confg/目录下新建一个文件名称为 hive-site.xml

[root@master conf]# vi ./hive-site.xml

内容如下:

<configuration>

<property>

  <name>hive.metastore.warehouse.dir</name>

  <value>/user/hive/warehouse</value>

</property>

 

<property>

    <name>datanucleus.schema.autoCreateAll</name>

    <value>true</value>

    <description>creates necessary schema on a startup if one doesn't exist. set this to false, after creating it once</description>

 </property>

 

 <property>

        <name>hive.metastore.local</name>

       <value>false</value>

       <description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description>

</property>

 

<property>

    <name>javax.jdo.option.ConnectionURL</name>

   <value>jdbc:mysql://master:3306/hive?createDatebaseIfNotExist=true@amp;useSSL=false</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.ConnectionUserName</name>

    <value>root</value>

    <description>Username to use against metastore database</description>

   </property>

<property>

   <name>javax.jdo.option.ConnectionPassword </name>

   <value>bigData@123</value>

</property>

 

<property>

   <name>hive.metastore.schema.verification</name>

   <value>false</value>

</property>

 

 <property>

        <name>datanucleus.readOnlyDatastore</name>

        <value>false</value>

    </property>

    <property>

        <name>datanucleus.fixedDatastore</name>

        <value>false</value>

    </property>

 

<property>

    <name>datanucleus.autoCreateSchema</name>

    <value>true</value>

</property>

 

<property>

  <name>datanucleus.autoCreateTables</name>

  <value>true</value>

</property>

<property>

   <name>datanucleus.autoCreateColumns</name>

   <value>true</value>

</property>

</configuration>

 

3.配置hive-env.sh

[root@master conf]# cp hive-env.sh.template  hive-env.sh

[root@master conf]# vi hive-env.sh

添加如下内容:

HADOOP_HOME=/opt/hadoop   # 配置 HAOOP_HOME 目录
export HIVE_CONF_DIR=/opt/hive/conf  # 配置 Hive 配置目录信息

3.添加mysql驱动

使用 Xftp 复制 mysql-connector-java-5.1.46.jar JAVA 驱动包到 hive/lib下面

 

创建目录,与前面配置目录对应

[root@master conf]# hadoop fs -mkdir -p /user/hive/warehouse

 

4.启动hive

启动hadoop

cd $HADOOP_HOME

./start-all.sh

 

启动metastore服务:一般默认会自动该服务

[root@master ~]# hive --service metastore &

[1] 6286

 

启动hive客户端

hive

 

5.hive简单使用

以数据源chengdu.txt为例,数据如下:

大数据分析开发工程师|成都|8K-15K|3-5年|本科

双休大数据销售高提成|成都|8K-10K|3-5年|中专

无责3K+双休高提成+大数据|成都|6K-12K|不限|学历不限

大数据分析专员|成都|6.5K-12K|1-3年|大专

大数据高级工程师|成都-金牛区|10K-15K|3-5年|本科

高级Java工程师(架构、大数据)|成都-天府新区|25K-40K|3-5年|本科

大数据架构师|成都-高新区|20K-30K|5-10年|本科

大数据安全研发工程师|成都-高新区|15K-20K|1-3年|硕士

大数据软件开发工程师|成都-高新区|10K-15K|不限|本科

大数据架构师|成都-高新区|20K-30K|5-10年|本科

大数据开发工程师|成都-高新区|10K-15K|不限|学历不限

大数据工程师|成都-高新区|10K-15K|3-5年|本科

大数据架构师初级|成都-高新区|6K-10K|1-3年|本科

大数据架构师|成都-高新区|15K-25K|5-10年|本科

大数据架构师|成都|15K-25K|5-10年|本科

大数据架构师|成都|12K-22K|3-5年|本科  ……

1:创建表:与数据源字段对应

hive> create table tb_chengdu(

    > occupation string,

    > adress string,

    > salary string,

    > work_exp string,

    > education string

    > )row format delimited fields terminated by '|';      ##注意分割符

OK

Time taken: 1.784 seconds

hive>

 

hive> show tables;

OK

tb_chengdu

 

2:加载数据chengdu.tx

hive> load data local inpath '/opt/data/chengdu.txt' into table tb_chengdu;  ##数据在mater本地,并非hdfs上

Loading data to table default.tb_chengdu

OK

Time taken: 5.205 seconds

 

3:查询前五条大数据相关的职位、薪水、工作经验、学历等字段

hive> select occupation,salary,work_exp,education from tb_chengdu where occupation like '%大数据%' limit 5;

OK

大数据分析开发工程师         8K-15K      3-5年       本科

双休大数据销售高提成         8K-10K      3-5年       中专

无责3K+双休高提成+大数据        6K-12K      不限         学历不限

大数据分析专员     6.5K-12K  1-3年       大专

大数据高级工程师         10K-15K   3-5年       本科

Time taken: 4.175 seconds, Fetched: 5 row(s)

 

hive的使用说明

可以把结构化的数据文件映射成一张数据库表

学生信息

张三|190908|男|大数据18-1

李四|190907|女|大数据18-1

 

元数据Hive Metasore

Metasore:就是Hive元数据集中存储的地方。

Hive默认用Derby数据库存储元数据,只能允许一个用户访问。用于测试。

使用mysql作为外置(远程)数据存储引擎。可以多用户同时访问。

 

其中常用类型如表1所示。

表1 常用数据类型

类型

名称

描述

基本类型

整型

分4个子类,分别是TINYINT、SMALLINT、INT、BIGINT 。常用的是INT

浮点型

分FLOAT(单精度浮点数)和DOUBLE(双精度浮点数)

布尔型

TRUE、FALSE

小数

DECIMAL

字符串

VARCHAR、CHAR、string

日期和时间

DATE、Timestamp

空值

NULL

复合类型

Arrays

数组

Structs

包含多个键值对

Maps

键值对

 

表类型

Hive的数据表分四类,分别是:内部表、外部表、分区表和桶表。每种表都有各自的特点,这里简要介绍如下:

(1) 内部表:由Hive自身管理,默认情况下创建的都是内部表。内部表数据存储位置默认存储在HDFS的/user/hive/warehouse路径下,可以通过由hive-site.xml文件中hive.metastore.warehouse.dir节点指定其它目录。当删除内部表时,相关元数据和HDFS上的数据也随之删除。

(2) 外部表:创建时需要指定external参数。外部表数据的存储位置由用户指定。删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除。

(3) 分区表:根据分区字段和分区值在HDFS上创建数据分类目录。上传的数据会根据分类存放到不同的目录下。

(4) 桶表:指定数据分桶的个数,上传数据时根据键的hash值均匀的存到不同的桶中。分桶是将数据拆分成小块,存到各自的桶,分区是将数据分类存到各自的目录。

 

附件:

1:hive安装问题集

https://blog.csdn.net/l1028386804/article/details/51566262   ##无法初始化数据源的问题

https://blog.csdn.net/gaoganghua/article/details/80621670  ##数据库编码修改为labtin1

posted @ 2020-02-06 23:53  geiliHe  阅读(1002)  评论(0编辑  收藏  举报