hive的安装和部署

hive的产生背景

  • MR来开发业务逻辑:繁琐、痛苦
  • Hive:facebook 解决海量的结构化日志的统计问题
  • 刚开始时是作为Hadoop项目的一个子项目的,后面才单独成为一个项目
  • Hive是构建在Hadoop之上的数据仓库 适合处理离线
  • Hive是一个客户端,不是一个集群,把SQL提交到Hadoop集群上去运行
  • Hive是一个类SQL的框架, HQL和SQL没有任何关系,只是类似
  • Hive职责:SQL ==> MR/Spark
  • Hive底层支持的引擎:MR/Spark/Tez

部署架构

Hive数据: HDFS + 元数据(MySQL)
people.txt people(id:int,name:string,age:int)
元数据:描述数据的数据
所以:我们之所以能用SQL来进行大数据统计,是因为有元数据的支撑,我们知道HDFS上的数据每一列字段名是什么,
字段类型是什么,数据在HDFS的什么位置

hive部署

1.下载安装包
	[hadoop@hadoop001 software]$ wget http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0.tar.gz
	注意这里的安装包cdh5.7.0最好和你hadoop的版本相同
2.解压
[hadoop@hadoop001 software]$ tar -zvxf hive-1.1.0-cdh5.7.0.tar.gz -C ~/app/
3.将HIVE_HOME配置到系统环境变量(~/.bash_profile)
export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.7.0
export PATH=$HIVE_HOME/bin:$PATH
4.将MySQL驱动拷贝到$HIVE_HOME/lib
[hadoop@hadoop001 ~]$ cd $HIVE_HOME
[hadoop@hadoop001 hive-1.1.0-cdh5.7.0]$ cd lib/
[hadoop@hadoop001 lib]$ ll  mysql-connector-java-8.0.16.jar 
-rw-r--r-- 1 hadoop hadoop 2293144 Jul 15 21:19 mysql-connector-java-8.0.16.jar
[hadoop@hadoop001 lib]$ 
 mysql驱动包mysql-connector-java-8.0.16.jar在orace官网去下载
5.安装mysql

请看之前写的mysql安装部署博客

6.修改Hive的配置文件hive-site.xml

注意:$HIVE_HOME/conf/目下没有 hive-site.xml这个文件,必须自己手动创建。在配置文件中至少需要配置,需要连接mysql的url、用户名、密码和mysql的驱动。后面连个参数,是为了进入hive界面,显示默认的数据库和查看数据库中表时显示列的名称。

[hadoop@hadoop001 conf]$ vim hive-site.xml 
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/ruozedatas?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>123456</value>
</property>


<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>


<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>

</configuration>
7.启动hive
[hadoop@hadoop001 conf]$ hive
which: no hbase in (/home/hadoop/app/hive-1.1.0-cdh5.7.0/bin:/home/hadoop/app/hadoop/bin:/home/hadoop/app/scala-2.13.0/bin:/home/hadoop/app/apache-maven-3.6.1/bin:/usr/java/jdk1.8.0_45/bin/:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/hadoop/.local/bin:/home/hadoop/bin)

Logging initialized using configuration in file:/home/hadoop/app/hive-1.1.0-cdh5.7.0/conf/hive-log4j.properties
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive (default)> 

hive的参数配置

  • hive.metastore.warehouse.dir Hive 数据存放的HDFS的路径
    默认的Hive数据存放在HDFS上:/user/hive/warehouse如果要调整,就把这个参数设置到hive-site.xml中去

     <property>
     <name>hive.metastore.warehouse.dir</name>
     <value>xxxx</value>
     </property>
    
  • hive详细日志:$HIVE_HOME/conf/hive-log4j.properties

     [hadoop@hadoop001 ~]$ cd $HIVE_HOME
     [hadoop@hadoop001 hive-1.1.0-cdh5.7.0]$ cd conf/
     [hadoop@hadoop001 conf]$ ll
     total 24
     -rw-r--r-- 1 hadoop hadoop 1196 Mar 24  2016 beeline-log4j.properties.template
     -rw-r--r-- 1 hadoop hadoop 2378 Mar 24  2016 hive-env.sh.template
     -rw-r--r-- 1 hadoop hadoop 2662 Mar 24  2016 hive-exec-log4j.properties.template
     -rw-r--r-- 1 hadoop hadoop 3505 Jul 16 10:45 hive-log4j.properties
     -rw-r--r-- 1 hadoop hadoop 3505 Mar 24  2016 hive-log4j.properties.template
     -rw-rw-r-- 1 hadoop hadoop  748 Jul 15 21:28 hive-site.xml
     [hadoop@hadoop001 conf]$ cp   hive-log4j.properties.template  hive-log4j.properties
    

hive.log.dir=${java.io.tmpdir}/${user.name} //代表存放的目录默认是/tmp/用户/
hive.log.file=hive.log //日志文件名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值