Hive的介绍和搭建

Hive的定义

Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL ,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。

Hive与传统数据库比较

在这里插入图片描述
1. 查询语言。类 SQL 的查询语言 HQL。熟悉 SQL 开发的开发者可以很方便的使用 Hive 进行开发。
2. 数据存储位置。所有 Hive 的数据都是存储在 HDFS 中的。而数据库则可以将数据保存在块设备或者本地文件系统中。
3. 数据格式。Hive 中没有定义专门的数据格式。而在数据库中,所有数据都会按照一定的组织存储,因此,数据库加载数据的过程会比较耗时。
4. 数据更新。Hive 对数据的改写和添加比较弱化,0.14版本之后支持,需要启动配置项。而数据库中的数据通常是需要经常进行修改的。
5. 索引。Hive 在加载数据的过程中不会对数据进行任何处理。因此访问延迟较高。数据库可以有很高的效率,较低的延迟。由于数据的访问延迟较高,决定了 Hive 不适合在线数据查询。
6. 执行计算。Hive 中执行是通过 MapReduce 来实现的而数据库通常有自己的执行引擎。
7. 数据规模。由于 Hive 建立在集群上并可以利用 MapReduce 进行并行计算,因此可以支持很大规模的数据;对应的,数据库可以支持的数据规模较小。

Hive的安装

安装Mysql服务

  • 查看mysql的依赖 :rpm -qa | grep mysql
  • 删除mysql的依赖
    rpm -e --nodeps rpm -qa | grep mysql
    rpm -e --nodeps rpm -qa | grep MySQL
  • 离线安装mysql
    rpm -ivh MySQL-server-5.1.73-1.glibc23.x86_64.rpm
    rpm -ivh MySQL-client-5.1.73-1.glibc23.x86_64.rpm
  • 启动mysql服务
    service mysql start
  • 加入到开机启动项 :chkconfig mysql on
  • 初始化配置mysql服务(第一次直接回车,后面跟着提示设置密码,自己设置密码)
    whereis mysql_secure_installation
    执行脚本/usr/bin/mysql_secure_installation
  • 访问mysql服务并修改权限 : mysql -uroot -proot
  • 切换数据库:use mysql;
  • 查看用户权限表: select user,host from user;
  • update user set host = ‘%’ where user = ‘root’ (提示报错不用管,忽略)
  • 刷新权限:flush privileges

安装hive包,解压

  • 解压hive的安装包
    tar -zxvf apache-hive-1.2.1-bin.tar.gz

  • 修改下目录名称
    mv apache-hive-1.2.1-bin hive-1.2.1

  • 备份配置文件
    cp hive-env.sh.template hive-env.sh
    cp hive-default.xml.template hive-site.xml

  • 配置hive的配置文件(hive的配置文件比较大,在linux中查找某项配置比较难,可以先将hive-site.xml文件复制到windows用文本编辑打开,然后ctrl+f查关键字修改,修改之后再放回到hive
    的conf目录)

      1. 修改hive-env.sh
     		加入三行内容
     		HADOOP_HOME=/usr/local/soft/hadoop-2.6.0
     		JAVA_HOME=/usr/local/soft/jdk1.8.0_171
     		HIVE_HOME=/usr/local/soft/hive-1.2.1
      2. 修改hive-site.xml
     		```bash
     				<property>
     					<name>javax.jdo.option.ConnectionURL</name>
     					<value>jdbc:mysql://192.168.1.80:3306/hive?createDatabaseIfNotExist=true</value>
     				</property>
     				<property>
     					<name>javax.jdo.option.ConnectionDriverName</name>
     					<value>com.mysql.jdbc.Driver</value>
     				</property>
     				<property>
     					<name>javax.jdo.option.ConnectionUserName</name>
     					<value>root</value>
     				</property>
     				<property>
     					<name>javax.jdo.option.ConnectionPassword</name>
     					<value>root</value>
     				</property>
     				<property>
     					<name>hive.querylog.location</name>
     					<value>/usr/local/soft/hive-1.2.1/tmp</value>
     				</property>
     				<property>
     					<name>hive.exec.local.scratchdir</name>
     					<value>/usr/local/soft/hive-1.2.1/tmp</value>
     				</property>
     				<property>
     					<name>hive.downloaded.resources.dir</name>
     					<value>/usr/local/soft/hive-1.2.1/tmp</value>
     				</property>
     			```		
    
  • 拷贝mysql驱动到$HIVE_HOME/lib目录下
    cp /usr/local/soft/mysql-connector-java-5.1.17.jar …/lib/

  • 将hadoop的jline-0.9.94.jar的jar替换成hive的版本。

  • 启动Hive
    ./hive
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值