Hive概述和部署

Hive是一个Hadoop客户端,将HQL转换为MapRedurce程序

1.Hive中表的数据都储存再HDFS中

2.Hive分析数据底层的实现为MapReduce

3.执行程序运行在Yarn上

Hive的框架

Hive两大组件为HiveMetastore和HiveServer2

HiveMetastore:储存元数据的信息,即真实的数据储存在HDFS中,而其信息储存在Metastore中

HiveServer2:负责连接客户端,执行客户端的操作

用户操作Hive的流程:client发出指令和HiveServer2交互,HiverServer2得到指令执行和Metastore交互,Metastore和HDFS交互,HDFS再通过YARN计算得出结果

HiveQL和HSQL是两个不同的查询语言,前者基于Hive而后者是一个独立的数据结构

启动 metastore

hive --service metastore &

启动 hiveserver2

bin/hiveserver2 1>/dev/null 2>&1 &

hive的部署

下载地址,下载第一个文件

https://dlcdn.apache.org/hive/hive-3.1.3/

上传到liunx中的master节点的主机上并且解压

填加hive的环境变量并刷新

#Hive3.1.3
export HIVE_HOME=/usr/local/hive-3.1.3
export PATH=$PATH:$HIVE_HOME/bin

初始化配置

cd /usr/local/hive-3.1.3

bin/schematool -initSchema -dbType derby

#启动hive

bin/hive

安装mysql和mysql包,建议下载5.7版本的

#先删除自带的数据库

sudo yum -y remove mari*

#解压完mysql在mysql解压包中安装里面这几个文件

rpm -ivh mysql-community-common-5.7.37-1.el8.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.37-1.el8.x86_64.rpm

rpm -ivh mysql-community-client-5.7.37-1.el8.x86_64.rpm

rpm -ivh mysql-community-server-5.7.37-1.el8.x86_64.rpm

启动mysql

sudo systemctl start mysqld

获取初始密码

sudo cat /var/log/mysqld.log | grep password

mysql -uroot -p '你的密码'

改变密码规则

set global_validate_password_policy=0;

set global_validate_password_length=4;

set password=password('新密码');

update user set host="%" where user="root";

flush privileges;

create database metastore;

quit;

拷贝mysql的jdbc包到hive的bin目录下

cd /usr/local/hive-3.1.3

vi con/hiev-site.xml

  <!-- Hive 元数据存储配置 -->
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://billsaifu:3306/metastore?useSSL=false</value>
    <description>JDBC连接元数据存储的URL</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>JDBC连接驱动程序的类名</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>连接元数据存储的用户名</description>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>连接元数据存储的密码</description>
  </property>

<!-- 如果没有目录需要创建 -->
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>hive workspace in hdfs</description>
  </property>

<property>
  <name>hive.server2.thrift.port</name>
  <value>10000</value>
  <description>HiveServer2 使用的 Thrift 服务端口号</description>
</property>

<property>
  <name>hive.server2.thrift.bind.host</name>
  <value>billsaifu</value>
  <description>HiveServer2 绑定的主机名或 IP 地址</description>
</property>

<property>
  <name>hive.metastore.uris</name>
  <value>thrift://billsaifu:9083</value>
</property>
<property>
  <name>hive.server2.webui.enabled</name>
  <value>true</value>
</property>
<property>
  <name>hive.server2.webui.host</name>
  <value>billsaifu</value>
</property>
<property>
  <name>hive.server2.webui.port</name>
  <value>10002</value>
</property>

<property>
  <name>hive.cli.print.current.db</name>
  <value>true</value>
  <description>Display the current database name in the Hive CLI prompt</description>
</property>

 

vi /usr/local/hadoop-3.3.5/etc/hadoop/core-site.xml 

<!-- 允许代理用户访问的用户组 -->
<property>
  <name>hadoop.proxyuser.bill.groups</name>
  <value>*</value>
</property>

<!-- 允许代理用户访问的主机 -->
<property>
  <name>hadoop.proxyuser.bill.hosts</name>
  <value>*</value>
</property>

<property>
  <name>hadoop.proxyuser.bill.users</name>
  <value>*</value>
</property>

 启动相关服务

hive --service metastore &
bin/hiveserver2 1>/dev/null 2>&1 &

ok,这里就配置成功了,接下来就可以执行相关Hive SQL语句了

posted @ 2023-07-16 15:11  突破铁皮  阅读(21)  评论(0编辑  收藏  举报