Hive入门+部署

 看黑马视频做的笔记 


目录

概念

1.基本概述

2.基础架构

总架构

部署

1.安装MySQL

2.配置Hadoop   

3.下载解压Hive

4.下载MySQL Driver包

注意!

5.配置Hive

6.初始化元数据库

7.启动Hive(使用Hadoop用户)

 实例

查看HDFS上表中存储的内容

 在mysql中查看表的相关信息

 在WEB上查看MapReduce

 总结


概念

1.基本概述

        数据的统计分析(编程语言(JAVA或Python)与SQL)

        SQL做统计很方便、MapReduce支持程序开发(Java、Python等)但不支持SQL开发

        所以有了Hive:Apache Hive是一款分布式SQL计算的工具,其主要功能是:·将SQL语句翻译成MapReduce程序运行

        基于Hive为用户提供了分布式SQL计算的能力:写的是SQL、执行的是MapReduce

Hive入门+部署_第1张图片

2.基础架构

        Apache Hive其2大主要组件就是:SQL解析器以及元数据存储

Hive入门+部署_第2张图片

总架构

Hive入门+部署_第3张图片

Hive入门+部署_第4张图片

部署

        部署在node1上,只需要部署在一台服务器即可,但他可以提交分布式运行的MapReduce程序运行。

Hive入门+部署_第5张图片

1.安装MySQL

root用户进行下操作

# 更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

# 安装Mysql yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm

# yum安装Mysql
yum -y install mysql-community-server

# 启动Mysql设置开机启动
systemctl start mysqld
systemctl enable mysqld

# 检查Mysql服务状态
systemctl status mysqld

# 第一次启动mysql,会在日志文件中生成root用户的一个随机密码,使用下面命令查看该密码
grep 'temporary password' /var/log/mysqld.log

复制该密码

#登录mysql:
mysql -u root -p

#输入复制的密码
Enter password:

 
# 修改root用户密码
# 如果你想设置简单密码,需要降低Mysql的密码安全级别
set global validate_password_policy=LOW; # 密码安全级别低
set global validate_password_length=4;	 # 密码长度最低4位即可

# 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样)
alter user 'root'@'localhost' identitied by '123456';

grant all privileges on *.* to root@"%" identified by '123456' with grant option;
#刷新权限  
flush privileges;

exit;
#登录验证
mysql -uroot -p

2.配置Hadoop   

        Hive的运行依赖于HadoopHDFSMapReduceYARN都依赖)同时涉及到HDFS文件系统的访问,所以需要配置Hadoop的代理用户。即设置hadoop用户允许代理(模拟)其它用户

        添加配置文件到Hadoop的core-site.xml,并分发到其它节点,且重启HDFS集群

hadoop用户下操作

vim  /export/server/hadoop/etc/hadoop/core-site.xml 

添加:

  hadoop.proxyuser.hadoop.hosts
  *
  

 
  hadoop.proxyuser.hadoop.groups
  *
 


#分发
scp core-site.xml node2:`pwd`/
scp core-site.xml node3:`pwd`/

3.下载解压Hive

hadoop用户下操作

#在线下载Hive安装包:
wget http://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz

#解压到node1服务器的:/export/server/内
tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /export/server/

#设置软连接
ln -s /export/server/apache-hive-3.1.3-bin /export/server/hive

4.下载MySQL Driver

cd /export/server/hive/lib/

#在线下载
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar

注意!

hive的lib下面与guava版本与hadoop的目录share/hadoop/common/lib版本不一样后面会报错

#删除hive的lib下面的guava-19.0.jar
rm -r /export/server/hive/lib/guava-19.0.jar

拷贝hadoop下面的guava-27.0.jar到hive的lib下面
cp -r /export/server/hadoop/share/hadoop/common/lib/guava-27.0.jar  /export/server/hive/lib/

5.配置Hive

mv /export/server/hive/conf/

将conf里面的模板重命名
mv hive-env.sh.template hive-env.sh

#添加
export HADOOP_HOME=/export/server/hadoop
export HIVE_CONF_DIR=/export/server/hive/conf
export HIVE_AUX_JARS_PATH=/export/server/hive/lib

vim hive-site.xml

添加以下内容:


  
    javax.jdo.option.ConnectionURL
    jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8
  

  
    javax.jdo.option.ConnectionDriverName
    com.mysql.jdbc.Driver
  

  
    javax.jdo.option.ConnectionUserName
    root
  

  
    javax.jdo.option.ConnectionPassword
    123456
  

  
    hive.server2.thrift.bind.host
    node1
  

  
    hive.metastore.uris
    thrift://node1:9083
  

  
    hive.metastore.event.db.notification.api.auth
    false
  

6.初始化元数据库

mysql -uroot -p

在MySQL中新建数据库:hive
CREATE DATABASE hive CHARSET UTF8;
exit


执行元数据库初始化命令:
cd /export/server/hive
bin/schematool -initSchema -dbType mysql -verbos

# 初始化成功后,会在MySQL的hive库中新建74张元数据管理的表。
检查以下是否成功
mysql -uroot -p
use hive
show tables;

7.启动Hive(使用Hadoop用户)

确保Hive文件夹所属为hadoop用户

创建一个hive的日志文件夹: 
mkdir /export/server/hive/logs

启动元数据管理服务(必须启动,否则无法工作)二选一
前台启动:bin/hive --service metastore 
后台启动:nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &


启动客户端(启动前要先启动HDFS和Yarn集群)
Hive Shell方式(可以直接写SQL): bin/hive

 成功页面

Hive入门+部署_第6张图片

 实例

#进入hive
create table test(id int, name string, gender string);

insert into test values(1,'zhangsan', 'male'),(2, "lisi", "male"),(3, "wanger",'female');

SELECT gender, COUNT(*) AS cnt FROM test GROUP BY gender;

 结果:

查看HDFS上表中存储的内容

Hive入门+部署_第7张图片

 在mysql中查看表的相关信息

Hive入门+部署_第8张图片

 元数据的路径

 在WEB上查看MapReduce

Hive入门+部署_第9张图片

 总结

1. Hive写的是SQL,但跑的是MapReduce

2.HIve元数据管理中mysql存的是元数据及其相关信息

2.Hive处理的数据看起来处理的是表,实际上处理的是HDFS里面的文本文件,他将SQL语句翻译成MapReduce,对文件进行MapReduce分布式计算,再以表格的形式返回结果

Hive入门+部署_第10张图片

 

你可能感兴趣的:(大数据开发,hive,hadoop,数据仓库)