HIVE概念以及搭建

先来讲讲hadoop是啥:

1.Hadoop是什么

海量数据分布式的存储和计算框架
数据存储:HDFS: Hadoop Distributed File System
数据计算:YARN/MapReduce

2.Hadoop的访问方式

1.shell cli:

hadoop fs或者hdfs dfs
文件夹、文件的创建以及删除
移动、改名
下载、复制
查看
2.Java API:
3.Web UI: 50070 HUE

3.hive产生背景

MapReduce编程不方便:开发、测试、需求变更
传统关系型数据库人员的需要像使用sql一样的方式来处理分析大数据==> Hive

文件是存放在HDFS之上的,那么如果你想使用SQL去处理它,需要一个什么前提?
hdfs存的文本,要让他变成表格
结构化、文件映射成表格 ==> Schema 元数据信息(metastore)

Hive是什么: hive.apache.org

首先了解数据仓库
data warehouse 数据仓库
分布式存储:HDFS、S3亚马逊、OSS阿里
hdfs的路径,hdfs://xxxxxxx
s3类似,s3://…

那么hive是啥
Facebook开源:解决海量结构化日志的数据 pv uv
构建在Hadoop之上的数据仓库的操作工具
Hive定义了SQL语言:HQL  (类SQL)
通常用于离线处理
SQL =====Hive=====MapReduce(map reduce要创建销毁进程,性能低)/Spark/Tez===>YARN
Hive on MapReduce
Hive on Spark
Hive on Tez

4.为什么要使用hive?

  1. 类似SQL的语法
  2. Hadoop之上,分布式大规模处理能力
  3. MetaStore: Pig/Impala/Presto/SparkSQL共享元数据信息,hive创建一张表,sparksql等都能用

5.Hive与RDBMS关系型数据库的关系

SQL: Hive QL和SQL的关系,类似而已,没关系
实时性:没关系型数据库快,毕竟底层还是mapreduce
事务,hive基本不用
分布式,mysql也支持分布式
数据量,hive操作更大数据

6. hive的部署架构

在这里插入图片描述
hive是一个客户端工具,读取类似sql的操作语句,来对hadoop集群进行操作,它需要连接两个mysql(一主一备)来存储元数据(表的字段信息之类的)。hive内置了一个derby数据库,但是这个数据库有致命问题就是,只能有一个用户登陆,所以不用。

7.HIVE的部署

下载:http://archive-primary.cloudera.com/cdh5/cdh/5/
在使用CDH版本的时候一定要注意:尾巴对准了
wget http://archive-primary.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0.tar.gz

指定解压目录
解压:tar -zxvf hive-1.1.0-cdh5.7.0.tar.gz -C ~/app/

[hadoop@hadoop000 hive-1.1.0-cdh5.7.0]$ ll
total 440
drwxr-xr-x. 3 hadoop hadoop   4096 Mar 24  2016 bin    脚本文件
drwxr-xr-x. 2 hadoop hadoop   4096 Mar 24  2016 conf    配置
drwxr-xr-x. 3 hadoop hadoop   4096 Mar 24  2016 data
drwxr-xr-x. 6 hadoop hadoop   4096 Mar 24  2016 docs
drwxr-xr-x. 4 hadoop hadoop   4096 Mar 24  2016 examples
drwxr-xr-x. 7 hadoop hadoop   4096 Mar 24  2016 hcatalog
drwxr-xr-x. 4 hadoop hadoop  12288 Mar 24  2016 lib     依赖包
-rw-r--r--. 1 hadoop hadoop  23169 Mar 24  2016 LICENSE
-rw-r--r--. 1 hadoop hadoop    397 Mar 24  2016 NOTICE
-rw-r--r--. 1 hadoop hadoop   4048 Mar 24  2016 README.txt
-rw-r--r--. 1 hadoop hadoop 376416 Mar 24  2016 RELEASE_NOTES.txt
drwxr-xr-x. 3 hadoop hadoop   4096 Mar 24  2016 scripts

1.配置环境变量

[hadoop@hadoop000 ~]$ vi .bash_profile

加入

export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.7.0
export PATH=$HIVE_HOME/bin:$PATH

生效

source ~/.bash_profile

2.配置HIVE_HOME

vi hive-env.sh

env文件我的理解就是该软件要运行在什么环境上。hadoop的env是java。hive的env是hadoop。

HADOOP_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0

3.配置mysql在hive上

vi hive-site.sh
<property>
	<name>javax.jdo.option.ConnectionURL</name>  指向下面那个端口地址,ruoze_d5数据库,如果数据库不存在则创建,
	<value>jdbc:mysql://localhost:3306/ruoze_d5?createDatabaseIfNotExist=true&amp;useUnicode=true&characterEncoding=UTF-8</value>
</property>

<property>
	<name>javax.jdo.option.ConnectionDriverName</name>  连接mysql要用driver
	<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>

这里的驱动只要
拷贝mysql驱动到$HIVE_HOME/lib下即可,
本文用的是mysql-connector-java-5.1.27.jar

8.hive的日志log文件

日志在这
[hadoop@hadoop000 conf]$ ls
beeline-log4j.properties.template  hive-exec-log4j.properties.template
hive-env.sh                        hive-log4j.properties.template
hive-env.sh.template               hive-site.xml
[hadoop@hadoop000 conf]$ cat hive-exec-log4j.properties.template

hive.log.threshold=ALL
hive.root.logger=INFO,FA
hive.log.dir=${java.io.tmpdir}/${user.name}  tmp目录下当前用户名
hive.query.id=hadoop
hive.log.file=${hive.query.id}.log    log名
[hadoop@hadoop000 lib]$ cd /tmp/hadoop
[hadoop@hadoop000 hadoop]$ ls
eb3c8d92-c535-4615-a4e9-28c65b3d04fd
eb3c8d92-c535-4615-a4e9-28c65b3d04fd3153814063007855034.pipeout
eb3c8d92-c535-4615-a4e9-28c65b3d04fd3743168943296294619.pipeout
hive.log     就是这个
[hadoop@hadoop000 hadoop]$ 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值