• 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    #解压文件到当前/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

  • 相关阅读:
    Java运算符
    Java数据类型,常量与变量
    内存
    cmd编码
    DELL G7重置电脑操作步骤
    关于es6中...运算符的总结
    js数组与字符串相互转换
    JS中的continue,break,return的区别
    git提交步骤
    数据修改后点击确定没有保存 还是原来的数据
  • 原文地址:https://www.cnblogs.com/hemomo/p/12271614.html
Copyright © 2020-2023  润新知