数据仓库工具 hive的入门(一)hive搭建

**数据仓库工具 – Hive
提示:本文章内容取自来源: 拉勾教育大数据高薪训练营



前言

提示:本文章对于初学者准备,希望对大家有所帮助。如果有什么建议和疑问,请留言给我,我会不断完成完善。


第一部分 Hive概述

HDFS => 海量数据的存储
MapReduce => 海量数据的分析和处理
YARN => 集群资源的管理和作业调度

第 1 节 Hive产生背景

Hive是基于Hadoop的一个数据仓库工具,可以将 结构化的数据文件映射为一张表(类似于RDBMS中的表),并提供类SQL查询功能;Hive是Facebook开源,用于解决海量结构化日志的数据统计。

Hive本质是:将 SQL 转换为 MapReduce 的任务进行运算。
底层由HDFS来提供数据存储。
可以将Hive理解为一个:将 SQL 转换为 MapReduce 任务的工具。

数据仓库(Data Warehouse)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,主要用于管理决策。(数据仓库之父比尔·恩门,1991年提出)。

数据仓库的目的:构建面向分析的、集成的数据集合;为企业提供决策支持。

数据仓库本身不产生数据,数据来源与外部。

存储了大量数据,对这些数据的分析和处理不可避免的用到Hive。

第 2 节 Hive的优缺点

Hive的优点
学习成本低。Hive提供了类似SQL的查询语言,开发人员能快速上手;
处理海量数据。底层执行的是MapReduce 任务;
系统可以水平扩展。底层基于Hadoop;
功能可以扩展。Hive允许用户自定义函数;
良好的容错性。某个节点发生故障,HQL仍然可以正常完成;
统一的元数据管理。元数据包括:有哪些表、表有什么字段、字段是什么类型;
Hive的缺点
HQL表达能力有限;
迭代计算无法表达;
Hive的执行效率不高(基于MR的执行引擎);
Hive自动生成的MapReduce作业,某些情况下不够智能;
Hive的调优困难;

第 3 节 Hive架构

sql
sql
AST
逻辑执行
优化后的逻辑执行计划
物理执行
用户接口 cli命令
hive
解释器
解释器
解释器
解释器
YARN

在这里插入图片描述

第二部分 Hive安装与配置

第 1 节 环境配置

Hive官网:http://hive.apache.org
下载网址:http://archive.apache.org/dist/hive/

安装前提:3台虚拟机,安装了Hadoop
安装软件:Hive(2.3.7) + MySQL (5.7.26)

节点布置

软件linux121linux122linux123
Hadoop
MySQL
Hive
第 2 节 Hive安装配置

hive安装包:apache-hive-2.3.7-bin.tar.gz
mysql安装包:mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
mysql的JDBC驱动程序:mysql-connector-java-5.1.46.jar

2.1、MySQL安装
1、删除MariaDB

centos7.6自带的 MariaDB(MariaDB是MySQL的一个分支),与要安装的MySQL有冲突,需要删除。

查询是否安装了mariadb

rpm -aq | grep mariadb

删除mariadb。-e 删除指定的套件;–nodeps 不验证套件的相互关联性

rpm -e --nodeps mariadb-libs
2、安装依赖
yum install perl -y
yum install net-tools -y
3、安装MySQL
`# 接压缩
tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
# 依次运行以下命令
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm``
4、启动数据库
systemctl start mysqld 
5、查找root密码和修改 root 口令
grep password /var/log/mysqld.log 
5.1、 进入MySQL,使用前面查询到的口令
mysql -u root -p
5.2 、设置口令强度;将root口令设置为12345678;刷新
set global validate_password_policy=0;
set password for 'root'@'localhost' =password('12345678');
flush privileges;
6、创建 hive 用户`
CREATE USER 'hive'@'%' IDENTIFIED BY '12345678';
GRANT ALL ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
2.2、Hive 安装

安装步骤:
1、下载、上传、解压缩
2、修改环境变量
3、修改hive配置
4、拷贝JDBC的驱动程序
5、初始化元数据库

2.2.1、下载Hive软件,并解压缩
cd /opt/lagou/software
tar zxvf apache-hive-2.3.7-bin.tar.gz -C ../servers/
cd ../servers
mv apache-hive-2.3.7-bin hive-2.3.7
2.2.2、增加环境变量
vim /etc/profile.d/hive.sh

export HIVE_HOME=/opt/lagou/servers/hive-2.3.7
export PATH=$PATH:$HIVE_HOME/bin
2.2.3、执行并生效
chmod +x  /etc/profile.d/hive.sh
source /etc/profile
2.2.4、修改 Hive 配置
cd $HIVE_HOME/conf vi hive-site.xml 增加以下内容:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!-- hive元数据的存储位置 -->
	<property>
			<name>javax.jdo.option.ConnectionURL</name>
			<value>jdbc:mysql://linux123:3306/hivemetadata?createDatabaseIfNotExist=true&amp;useSSL=false</value>
			<description>JDBC connect string for a JDBC metastore</description>
	</property>
<!-- 指定驱动程序 -->
	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.jdbc.Driver</value>
		<description>Driver class name for a JDBC metastore</description>
   </property>
  <!-- 连接数据库的用户名 -->
	<property>
	<name>javax.jdo.option.ConnectionUserName</name>
	<value>hive</value>
	<description>username to use against metastore
	database</description>
	</property>
  <!-- 连接数据库的口令 -->
<property>
	<name>javax.jdo.option.ConnectionPassword</name>
	<value>12345678</value>
	<description>password to use against metastore database</description>
	</property>
</configuration>
2.2.5、修改 Hive 配置

拷贝 MySQL JDBC 驱动程序,将 mysql-connector-java-5.1.46.jar 拷贝到 $HIVE_HOME/lib

2.2.6、初始化元数据库
[root@linux123 ~]$ schematool -dbType mysql -initSchema 

启动hive服务之前,请先启动hdfs、yarn的服务

2.2.7、启动Hive,执行命令
[root@linux123 ~]$ hive
2.3、Hive 属性配置

可在 hive-site.xml 中增加以下常用配置,方便使用。
数据存储位置:

<property>
  <!-- 数据默认的存储位置(HDFS) -->
  <name>hive.metastore.warehouse.dir</name>
  <value>/user/hive/warehouse</value>
  <description>location of default database for the
warehouse</description>
</property>

显示当前库:

<property>
  <!-- 在命令行中,显示当前操作的数据库 -->
  <name>hive.cli.print.current.db</name>
  <value>true</value>
  <description>Whether to include the current database in the
Hive prompt.</description>
</property>

显示表头属性:

<property>
  <!-- 在命令行中,显示数据的表头 -->
  <name>hive.cli.print.header</name>
  <value>true</value>
</property>

本地模式:

<property>
  <!-- 操作小规模数据时,使用本地模式,提高效率 -->
  
  <name>hive.exec.mode.local.auto</name>
  <value>true</value>
  <description>Let Hive determine whether to run in local
mode automatically</description>
</property>
2.3.1、Hive的日志文件

Hive的log默认存放在 /tmp/root 目录下(root为当前用户名);这个位置可以修
改。

cd  $HIVE_HOME/conf/
cp  hive-log4j2.properties.template conf/hive-log4j2.properties
vi hive-log4j2.properties
# 添加以下内容
property.hive.log.dir = /opt/lagou/servers/hive-2.3.7/logs

所有修改的配置文件,都需要hive重新加载一次,才能生效

附录:添加第三方用户(Hadoop)
groupadd hadoop
# -m:自动建立用户的登入目录
# -g:指定用户所属的起始群组
# -G<群组>:指定用户所属的附加群组
# -s:指定用户登入后所使用的shell
useradd -m hadoop -g hadoop -s /bin/bash
passwd hadoop
vim  /etc/sudoers
# 在100行后添加。允许用户执行sudo,免密
hadoop  ALL=(ALL)    NOPASSWD:ALL

hadoop或者hive启动的问题集:

1.遇到没有路由问题
在这里插入图片描述
解决思路:
1.查看是不是/etc/hosts文件没有写其他主机ip
2.就是查看防火墙的状态;

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值