Apache Hive基础

初识Hive

  什么是Hive?
    Hive是基于Hadoop的数据仓库解决方案
      将结构化的数据文件映射为数据库表
      提供类sql的查询语言HQL(Hive Query Language)
      Hive让更多的人使用Hadoop
    Hive成为Apache顶级项目
      Hive始于2007年的Facebook

  Hive的优势和特点:
    提供了一个简单的优化模型
    HQL类SQL语法,简化MapReduce开发
    支持在不同的计算框架上运行
    支持在HDFS和HBase上临时查询数据
    支持用户自定义函数、格式
    成熟的JDBC和ODBC驱动程序,用于ETL和BI
    稳定可靠(真实生产环境)的批处理
    有庞大活跃的社区

  MapReduce的执行效率更快,但代码较多。Hive的开发效率更快,语句简单,但执行速度很慢。

在Linux系统中安装和配置Hive

  先将Hive解压安装。

在这里插入图片描述

  我们可以在Hive的文件夹中新建一个仓库目录,命令是mkdir warehouse。

  然后进入/etc/profile文件中配置Hive的环境变量,在文件的最后加上以下两条命令,上面一条是HIVE_HOME的绝对路径,下面一条是hive服务的通道。

在这里插入图片描述

  我们需要在Hive文件夹中的conf目录下新建一个hive-site.xml文件,并在这个空文件里面加上以下配置。

<configuration>
		<!--自己定义仓库的位置-->
        <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>/root/software/hive/warehouse</value>
        </property>
        <!--<property>
                <name>hive.metastore.local</name>
                <value>true</value>
        </property>-->
        <!--hadoop100为主机名,改成自己的主机名或者localhost或者ip地址即可-->
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://hadoop100:3306/hive?createDatabaseIfNotExist=true</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>
        <!--value中写连接的用户名-->
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>root</value>
        </property>
        <!--value中写连接密码-->
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>123</value>
        </property>
        <!--启动本地模式。对数据量比较小的操作,就可以在本地执行,这样要比提交任务到集群进行Reduce效率要快很多-->
        <property>
                <name>hive.exec.mode.local.auto</name>
                <value>true</value>
        </property>
        <!--通过参数hive.cli.print.header可以控制在命令行cli中是否显示表的列名-->
        <property>
                <name>hive.cli.print.header</name>
                <value>true</value>
        </property>
</configuration>

  然后进入conf文件夹中的hive-env.sh文件,到文件的最后,在里面配置Hadoop的路径,hive的conf路径以及hive的jar包路径。

在这里插入图片描述
  将jdbc的jar包放在hive的lib目录下。

  然后启动Hadoop服务,输入命名start-all.sh。

  输入schematool -initSchema -dbType mysql命令进行初始化。

  如果成功了,我们可以进入mysql里面,并且会在mysql中看到hive的数据库。

Hive数据类型

原始类型
  Hive的数据类型类似于SQL的数据类型

类型示例
TINYINT10Y
SMALLINT10S
INT10
BIGINT100L
FLOAT1.342
DOUBLE1.234
DECIMAL3.14
BINARY1010
BOOLEANTRUE
STRING‘BOOK’ or “BOOK”
CHAR‘YES’ or “YES”
VARCHAR‘BOOK’ or “BOOK”
DATE‘2013-01-31’
TIMESTAMP‘2013-01-31 00:13:00.345’

复杂数据类型
  ARRAY:存储的数据为相同类型
  MAP:具有相同类型的键值对
  STRUCT:封装了一组字段

类型格式定义示例
ARRAY[‘Apple’,’Orange’,’Mongo’]ARRAY<string>a[0]=‘Apple’
MAP{‘A’:’Apple’,’O’:’Orange’}MAP<string,string>b[‘A’]=‘Apple’
STRUCT{‘Apple’,2}STRUCT<fruit:string,weight:int>c.weight=2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值