首页 > 代码库 > 【IT十八掌大数据】学习笔记

【IT十八掌大数据】学习笔记

hive简介:

--------------------

    0.big data的特点:4 Volumn variety velocity value

    1.介绍

        数据仓库    //online analyze process,在线分析处理。

        用来查询和管理位于分布式存储设备上的大型数据集。

        Hive提供了一种类SQL语言--HiveQL(HQL)进行查询分析。

        HiveQL可进行插件式扩展。

 

        擅长处理结构化数据。非结构化的数据没办法创建对应的模式。

        位于hadoop之上,重点在于对大数据进行分析和统计。

 

        不是:

            1.RDBMS

            2.不是为OLTP所设计。(在线事务处理)

            3.不擅长实时查询和行级更新。

 

        特点:

            1.在数据库中存储schema,处理的数据存储到hdfs。

            2.用于OLAP

            3.提供了SQL类型查询语言,叫做HiveQL(HQL)

            4.熟悉、可伸缩的、快速、可扩展。

 

    2.Hive架构

   

    3.unit name

        a.UI            //webui | command line | HD insight

        b.meta store    //选择数据库存放schema或者元数据。

        c.HiveQL处理引擎//类似于sql查询,对mr的替代,不需要再写mr程序。

        d.Execution Engine  //执行引擎,HiveQL处理引擎和mr的连接部分。

        e.Hdfs/hbase        //存储hive处理之后的结果

======================================================================================================

配置hive使用mysql数据库

------------------------

    1.下载并解压hive.tar.gz

    2.配置环境变量

        HIVE_HOME=...

        PATH=..:$HIVE_HOME/bin:$HIVE_HOME/conf

 

        $>source /etc/environment

    3.创建配置文件(通过cp方式,共四个)

        $>cd conf

        $ cp hive-default.xml.template hive-site.xml

        $ cp hive-env.sh.template hive-env.sh

        $ cp hive-exec-log4j.properties.template hive-execlog4j.properties

        $ cp hive-log4j.properties.template hive-log4j.properties

    4.修改conf/hive-env.sh配置文件

        export HADOOP_HOME=/soft/hadoop

        export HIVE_CONF_DIR=/soft/hive/conf

    5.修改conf/hive-site.xml文件

        hive.metastore.warehourse.dir=/user/hive/warehouse  //hdfs系统

        hive.exec.scratchdir=/tmp/hive-${user.name}         //hdfs系统

    6.配置使用mysql数据库

        [conf/hive-site.xml]

        #javax.jdo.option.ConnectionURL // the database URL

        #javax.jdo.option.ConnectionDriverName // the JDBC driver name

        #javax.jdo.option.ConnectionUserName // database username

        #javax.jdo.option.ConnectionPassword // database password

        <property>

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

            <value>jdbc:mysql://192.168.12.2:3306/hive?createDatabaseIfNotExist=true</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>111111</value>

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

        </property>

    7.复制mysql驱动程序到${hive_home}\lib下

    8、在使用之前一定要先使用以下命令对元数据存储数据库进行初始化,

    schematool -dbType mysql -initSchema

    否则有如下错误提示:

Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema.

9、启动hive出现以下异常:

Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

原因是引用的路径是变量,而变量不存在,把变量换成固定值就行了。

解决方法:在hive-site.xml文件中将system:java.io.tmpdir对应的属性设置为固定目录即可

<property>

    <name>hive.exec.local.scratchdir</name>

    <value>/home/ubuntu/hive/scratchdir</value>

</property>

<property>

    <name>hive.downloaded.resources.dir</name>

    <value>/home/ubuntu/hive/downloads</value>

</property>

 

成功启动hive之后,在mysql数据库中会生成在配置文件里指定的数据库,myhive,里面有大量自动生成的数据表。

【IT十八掌大数据】学习笔记