hive笔记
1、hive中涉及的概念:
1、hive介绍:
1、是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL)。
2、这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 QL,它允许熟悉 SQL 的用户查询数据。(hql:hive query language)
3、同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作
2、数据仓库etl的介绍
3、hive的架构图
4、hive中的核心组件:metestore(用来存储hive中表的元数据的工具),可以在传统的关系型数据库中存储
元数据:表的名字,表的列和分区及其属性,表的属性(是否为外部表等),以及表所在的数据存储目录等等
2、伪分布式的安装:
pre1:安装mysql
pre2:开启mysql的远程连接权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
pre3:将mysql的驱动jar上传到hive的lib目录下(注意mysql的驱动jar包的版本)。
pre4:安装好hadoop,并启动hadoop的hdfs和mapreduce服务。
1、配置hive,hadoop的环境变量(配置在~/.bashrc文件中)
LASSPATH=.
JAVA_HOME=/usr/java/latest
HIVE_HOME=/usr/hive-2.1.1
HADOOP_HOME=/usr/hadoop-2.4.0
PATH=$JAVA_HOME/bin:$PATH:$HIVE_HOME/bin
export JAVA_HOME
export HIVE_HOME
export HADOOP_HOME
export PATH
export CLASSPATH
2、在目录$HIVE_HOME/conf/下,执行命令mv hive-default.xml.template hive-site.xml重命名
在目录$HIVE_HOME/conf/下,执行命令mv hive-env.sh.template hive-env.sh重命名
4、配置Hive Metastore
1、使用derby作为hive的metastore(缺陷:同一时刻,只允许有一个客户端连接hive,在运行过程中,不可取)
derby是hive里用来存储元数据的一个关系型数据库。
1、在hive-site.xml文件中添加以下信息:
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive-2.1.1/warehouse</value> // 在hdfs中的路径
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
</configuration>
2、使用mysql作为hive的metastore
1、将mysql的驱动jar包拷贝到hive的lib目录里面
2、修改hive-site.xml文件,修改内容如下:
<configuration>
<property> <!--hive数据在hdfs上的存储路径-->
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive-2.1.1/warehouse</value>
</property>
<property><!--关闭hive连接的身份认证-->
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property><!--设置