当前位置:   article > 正文

hive架构与安装

hive架构与安装

前言

想与你们共同学习,想与你们一起努力,想得到你们的支持与喜欢~

 一、Hive 引言

hive是facebook开源,并捐献给了apache组织,作为apache组织的顶级项目(hive.apache.org)。 hive是一个基于大数据技术的数据仓库(DataWareHouse)技术,主要是通过将用户(程序员)书写的SQL语句翻译成MapReduce代码,然后发布任务给Yarn执行,完成SQL 到 MapReduce的转换。可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。

【总结】

  • Hive是一个数据仓库

  • Hive构建在HDFS上,可以存储海量数据。

  • Hive允许程序员使用SQL命令来完成数据的分布式计算,计算构建在yarn之上。(Hive会将SQL转化为MR操作)

  • Hive不适合场景: 小数据量  实时计算

  • 数据库 DataBase

    • 数据量级小,数据价值高

  • 数据仓库 DataWareHouse

    • 数据体量大,数据价值密度低

 二、Hive 的架构

1. 简介

  1. HDFS:用来存储hive仓库的数据文件
  2. yarn:用来完成hive的HQL转化的MR程序的执行
  3. MetaStore:保存管理hive维护的元数据
  4. Hive:用来通过HQL的执行,转化为MapReduce程序的执行,从而对HDFS集群中的数据文件进行统计。

 2. 图

 三、Hive的安装

  1. # 步骤
  2. 1. HDFS
  3. 2. Yarn
  4. 3. MySQL
  5. 4. Hive

1. 安装mysql数据库

  1. mysql已经安装好,但没有启动,可以执行下面的语句:
  2. systemctl enable mysqld
  3. systemctl start mysqld
  4. systemctl status mysqld
  5. 最后测试是否可用:
  6. mysql -uroot -p123456

2. 安装Hadoop

  1. # 配置hdfs和yarn的配置信息
  2. 修改hadoop下的core-site.xml文件
  3. <!-- 配置权限,hive访问hdfs的权限开启 -->
  4. <property>
  5. <name>hadoop.proxyuser.root.hosts</name>
  6. <value>*</value>
  7. </property>
  8. <property>
  9. <name>hadoop.proxyuser.root.groups</name>
  10. <value>*</value>
  11. </property>

3. 安装hive

1 上传hive安装包到linux中

2 解压缩hive

  1. [root@hadoop ~]# tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/installs
  2. [root@hadoop ~]# mv apache-hive-3.1.2-bin hive3.1.2

3 配置环境变量

  1. export HIVE_HOME=/opt/installs/hive3.1.2
  2. export PATH=$PATH:$HIVE_HOME/bin

4 加载系统配置生效

[root@hadoop ~]# source /etc/profile

5 配置hive

hive-env.sh

  1. # 拷贝一个hive-env.sh
  2. [root@hadoop10 conf]# mv hive-env.sh.template hive-env.sh
  3. # 配置hadoop目录
  4. HADOOP_HOME=/opt/installs/hadoop3.1.4/
  5. # 指定hive的配置文件目录
  6. export HIVE_CONF_DIR=/opt/installs/hive3.1.2/conf/

hive-site.xml

  1. 拷贝得到hive-site.xml
  2. [root@hadoop10 conf]# cp hive-default.xml.template hive-site.xml
  3. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  4. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  5. <configuration>
  6. <!--hive的元数据保存在mysql中,需要连接mysql,这里配置访问mysql的信息-->
  7. <!--url:这里必须用ip-->
  8. <property>
  9. <name>javax.jdo.option.ConnectionURL</name>
  10. <value>jdbc:mysql://hadoop10:3306/hive?useSSL=false</value>
  11. </property>
  12. <!--drivername-->
  13. <property>
  14. <name>javax.jdo.option.ConnectionDriverName</name>
  15. <value>com.mysql.cj.jdbc.Driver</value>
  16. </property>
  17. <!--username-->
  18. <property>
  19. <name>javax.jdo.option.ConnectionUserName</name>
  20. <value>root</value>
  21. </property>
  22. <!--password-->
  23. <property>
  24. <name>javax.jdo.option.ConnectionPassword</name>
  25. <value>123456</value>
  26. </property>
  27. <!-- 显示表的列名 -->
  28. <property>
  29. <name>hive.cli.print.header</name>
  30. <value>true</value>
  31. </property>
  32. <!-- 显示数据库名称 -->
  33. <property>
  34. <name>hive.cli.print.current.db</name>
  35. <value>true</value>
  36. </property>
  37. <!-- 解决启动等一分钟重试问题 -->
  38. <property>
  39. <name>hive.server2.active.passive.ha.enable</name>
  40. <value>true</value>
  41. </property>
  42. </configuration>

登录mysql创建hive数据库

create database hive

复制mysql驱动Jar到hive的lib目录下

6 修改jar,防止jar包冲突

  1. #将/opt/installs/hive3.1.2/lib下的guava-19.0.jar修改为guava-19.0.jar.bak
  2. #jar包带上bak,jvm将不进行加载,相当于删除
  3. cd /opt/installs/hive3.1.2/lib
  4. mv guava-19.0.jar guava-19.0.jar.bak
  5. #将hadoop下的guava-27.0-jre.jar 复制到hive的lib下
  6. cp /opt/installs/hadoop3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar /opt/installs/hive3.1.2/lib
  7. #将/opt/installs/hive3.1.2/lib下的log4j-slf4j-impl-2.10.0.jar修改带上.bak
  8. mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.jar.bak

四、 启动

1. 启动 hadoop

  1. # 启动HDFS
  2. start-dfs.sh
  3. # 启动yarn
  4. start-yarn.sh

2. 初始化元数据

初始化元数据:schematool -dbType mysql -initSchema

3. hive本地启动

  1. # 本地模式启动 【管理员模式】
  2. # 启动hive服务器,同时进入hive的客户端。只能通过本地方式访问。
  3. [root@hadoop10 ~]# hive
  4. hive>
  1. # 1. 查看数据库
  2. hive> show databases;
  3. # 2. 创建一个数据库
  4. hive> create database test_hive;
  5. # 3. 查看database
  6. hive> show databases;
  7. # 4. 切换进入数据库
  8. hive> use test_hive;
  9. # 5.查看所有表
  10. hive> show tables;
  11. # 6.创建一个表
  12. hive> create table t_user(id string,name string,age int);
  13. # 7. 添加一条数据(转化为MR执行--不让用,仅供测试)
  14. hive> insert into t_user values('1001','zhangsan',20);
  15. # 8.查看表结构
  16. hive> desc t_user;
  17. # 9.查看表的schema描述信息。(表元数据,描述信息)
  18. hive> show create table t_user;
  19. # 明确看到,该表的数据存放在hdfs中。
  20. # 10 .查看数据库结构
  21. hive> desc database test_hive;
  22. # 11.查看当前库
  23. hive> select current_database();
  24. # 12 其他sql
  25. select * from t_user;
  26. select count(*) from t_user; (Hive会启动MapReduce)

4.hive的客户端和服务端

  1. # 启动hive的服务器,可以允许远程连接方式访问。
  2. // 前台启动
  3. [root@hadoop10 ~]# hiveserver2
  4. // 后台启动
  5. [root@hadoop10 ~]# hiveserver2 &

beeline客户端

  1. # 启动客户端
  2. [root@hadoop10 ~]# beeline
  3. beeline>!connect jdbc:hive2://hadoop10:10000

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/633606
推荐阅读
相关标签
  

闽ICP备14008679号