欢迎投稿

今日深度:

Hive学习,

Hive学习,


1,介绍

    数据仓库: online alayze process。  在线分析处理

2,数据库, oltp  online transaction process。 在线事物处理,

3. Hive的安装

    a 安装jdk

    b 安装Hive

    c  tar -xzvf apache-hive-2.3.2-bin.tar.gz,

        给解压后的文件夹指定链接: ln -s apache-hive-2.3.2-bin hive  

    d 配置hive的环境变量

        【/etc/profile】

            1.HIVE_HOME   2. PATH  加入hive的bin目录

e  hive关联hadoop配置

    cd /opt/hive/conf

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

    export HADOOP_HOME=/opt/hadoop 

f  安装Apache Derby 数据库(hive默认的数据库是derby, 可以更换为其他数据库, 可百度)

    下载tar 文件db-derby-10.14.1.0-bin.tar.gz

    tar -xzvf db-derby-10.14.1.0-bin.tar.gz 

    ln -s db-derby-10.14.1.0-bin.tar.gz derby 

    【/etc/profile】 文件配置derby_home  和  PATH  加入derby的bin目录

g  验证hive是否安装成功之前必须对metastore_db进行schema

    cd $HIVE_HOME/bin

    ./schematool -dbType derby -initSchema 

    如果报错:

Initialization script hive-schema-2.3.0.derby.sqlError: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000)org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!*** schemaTool failed ***

    解决方法:这个function的构建是数据库初始化的一部分,既然存在了,就直接去hive-schema-2.3.0-derby.sql里面注释掉

h 这个问题解决后一般可以成功启动hive了, 在bin目录直接输入hive命令,然后验证数据库是否成功: show databases; 

 OK
 default

 Time taken: 15.734 seconds, Fetched: 1 row(s)

创建数据库

1. create database if not exists mybase;   ---> show databases;

2. use mybase;  show tables;  --> mysql or hive   

3.  create table test(id int, name varchar(20),age int) comment 'test' row format delimited fields terminated by '\t' lines terminated by '\n' stored as textfile;   //创建表    --->desc test; // 查看表描述

向表中插入数据

1. 从本地文件插入

     load data local inpath '/opt/simple.txt'overwrite into  table test; //插入数据使用load data 

2. 数据来源于HDFS

     加local表示从本地文件系统上传文件到HDFS系统,不加表示在HDFS中移动文件

配置hive的数据库为mysql

1.在/opt/hive/conf/hive-env.xml   export HIVE_CONF_DIR=/opt/hive/conf   

2. 修改mysql的数据源hive-site.xml

<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.ConnectionURL</name>
    <value>jdbc:mysql://10.0.1.50:1300/test?useUnicode=true&amp;characterEncoding=UTF-8</value>
    <description>
      JDBC connect string for a JDBC metastore.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
    </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>

3. 把mysql驱动程序mysql-connector-java-5.1.26.jar放到$HIVE_HOME/lib 目录下。 

类sql语言hiveSQL

1. desc database 【extended】 mybase;// extended可选参数, 查询更多扩展信息

2. alter database mybase set dbproperties ('create'='wrj'); //修改数据库属性 

3. create table default.test0 like mybase.test; // 复制一个数据库表 

4. desc formatted table_name; // 显示格式化后的表信息 


www.htsjk.Com true http://www.htsjk.com/hive/41580.html NewsArticle Hive学习, 1,介绍     数据仓库: online alayze process。  在线分析处理 2,数据库, oltp  online transaction process。 在线事物处理, 3. Hive的安装     a 安装jdk     b 安装Hive     c  tar -...
相关文章
    暂无相关文章
评论暂时关闭