【Hadoop】-Hive部署[12]

目录

思考

VMware虚拟机部署

规划

步骤1:安装MySQL数据库

步骤2:配置Hadoop

步骤3:下载解压Hive

[步骤4:提供MySQL Driver包](#步骤4:提供MySQL Driver包)

步骤5:配置Hive

步骤6:初始化元数据库

步骤7:启动Hive(使用hadoop用户)

部署Hive的主要流程:


思考

Hive是分布式运行的框架还是单机运行的?

Hive是单机工具,只需要部署在一台服务器即可。

Hive虽然是单机的,但是他可以提交到分布式运行的MapReduce程序运行。

VMware虚拟机部署

规划

我们知道Hive是单机工具后,就需要准备一台服务器供Hive使用即可。

同时Hive需要使用元数据服务,即需要提供一个关系型数据库,我们也选择一台服务器安装关系型数据库即可。

|-----------------------|----------|
| 服务 | 机器 |
| Hive本体 | 部署在node1 |
| 元数据服务所需的关系型数据库(MySQL) | 部署在node1 |

步骤1:安装MySQL数据库

我们在node1节点使用yum在线安装MySQL5.7版本。(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

# 修改root用户密码
mysql -u root -p -h localhost
Enter password:
 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root!@#$';

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

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


grant all privileges on *.* to root@"%" identified by '123456' with grant option;  
flush privileges;

步骤2:配置Hadoop

Hive的运行依赖于Hadoop(HDFS、MapReduce、YARN都依赖)

同时涉及到HDFS文件系统的访问,所以需要配置Hadoop的代理用户

即设置hadoop用户允许代理(模拟)其它用户

配置如下内容在Hadoop的core-site.xml中,并分发到其它节点,且重启HDFS集群

步骤3:下载解压Hive

  • 切换到hadoop用户

su - hadoop

  • 下载Hive安装包:

http://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz

  • 解压到node1服务器的:/export/server/内(root运行)

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包

  • 下载MySQL驱动包:

https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar

  • 将下载好的驱动jar包,放入:Hive安装文件夹的lib目录内

mv mysql-connector-java-5.1.34.jar /export/server/hive/lib/

这里注意hive的路径(没有设置软连接的情况)。

步骤5:配置Hive

  • 在Hive的conf目录内,新建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

  • 在Hive的conf目录内,新建hive-site.xml文件,填入以下内容:

    <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value> </property>
    复制代码
    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
    </property>
    
    <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
    </property>
    
    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>123456</value>
    </property>
    
    <property>
      <name>hive.server2.thrift.bind.host</name>
      <value>node1</value>
    </property>
    
    <property>
      <name>hive.metastore.uris</name>
      <value>thrift://node1:9083</value>
    </property>
    
    <property>
      <name>hive.metastore.event.db.notification.api.auth</name>
      <value>false</value>
    </property>
    </configuration>

步骤6:初始化元数据库

支持,Hive的配置已经完成,现在在启动Hive前,需要先初始化Hive所需的元数据库。

  • 在MySQL中新建数据库:hive

CREATE DATABASE hive CHARSET UTF8;

  • 执行元数据库初始化命令:

cd /export/server/hive

bin/schematool -initSchema -dbType mysql -verbos

步骤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 &

  • 启动客户端,二选一(当前先选择Hive Shell方式)

Hive Shell方式(可以直接写SQL): bin/hive

Hive ThriftServer方式(不可直接写SQL,需要外部客户端链接使用): bin/hive --service hiveserver2

部署完成。

部署Hive的主要流程:

  • 部署MySQL数据库,并配置root账户密码
  • 下载Hive上传并解压和设置软链接
  • 下载MySQL 驱动jar包放入Hive的lib目录内
  • 修改配置文件(hive-env.sh和hive-site.xml)
  • 初始化元数据库(bin/schematool -initSchema -dbType mysql -verbos)
  • 启动hive的metastore服务:

前台启动:bin/hive --service metastore

后台启动:nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &

  • 启动hive命令行:bin/hive
相关推荐
starandsea21 分钟前
gitlab解决传过大文件后删除导致pack过大问题
大数据·elasticsearch·gitlab
拉姆哥的小屋2 小时前
时间序列早期分类中的置信度累积问题:从ECE-C到时序依赖建模
大数据·人工智能
蚁巡信息巡查系统2 小时前
政府网站与政务新媒体监测服务主要是做什么的?
大数据·人工智能
饼干吖2 小时前
hadoop安装
大数据·hadoop·教程
私域实战笔记5 小时前
选企业微信服务商哪家好?从工具适配与行业案例看选型逻辑
大数据·人工智能·企业微信
AI企微观察5 小时前
企业微信社群运营玩法有哪些?企业微信社群工具有哪些功能?——从拉新到留存的玩法设计与工具支撑
大数据·人工智能
金融小师妹6 小时前
OpenAI拟借AI估值重构浪潮冲击1.1万亿美元IPO——基于市场情绪因子与估值量化模型的深度分析
大数据·人工智能·深度学习·1024程序员节
wudl55667 小时前
Flink Keyed State 详解之二
大数据·flink
IT学长编程7 小时前
计算机毕业设计 基于Python的热门游戏推荐系统的设计与实现 Django 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
大数据·python·django·毕业设计·课程设计·毕业论文
Ashlee_code8 小时前
什么是TRS收益互换与场外个股期权:从金融逻辑到系统开发实践
大数据·人工智能·python·金融·系统架构·清算·柜台