Hive部署本地模式

news2024/12/24 20:55:10

本地模式

使用mysql替换derby进行元数据的存储,hive的相关进程都是在同一台机器上,即本地模式。mysql因为是独立的进程,所以mysql可以和hive在同一机器上,也可以在其他机器上。

说明:

通常使用关系型数据库来进行元数据存储(mysql、oracle等执行带jdbc驱动的数据库)

  • 优点:支持多session

  • 缺点:需要配置、还需要安装mysql等关系型数据库

配置安装mysql

  1. 安装包准备

    通过SSH工具,将MySQL的RPM安装包上传到Linux的 ~/software 目录下。
    
    MySQL的RPM安装包,可以在MySQL的官网下载,也可以直接使用课程提供的资料。 注意事项:
    - 在官网下载安装包的时候,注意版本号
    - mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar
    - 这里的el7,表示适用于CentOS7的版本。注意,不要下载el6的。
    - x86_64: 这个表示arm版本的CentOS,如果是amd64架构的,可以选择x64。
    复制代码
  2. 安装前准备

     # CentOS7中,系统默认采用的数据库是mariadb,这个数据库与MySQL冲突!
    # 因此,在安装MySQL之前,需要先将其卸载!
    [root@qianfeng01 ~]# rpm -qa | grep mariadb 	# 查询是否已经安装了mariadb 
    mariadb-libs-5.5.68-1.el7.x86_64 				# 查询结果。如果没有这个结果,说明没有安装。
    
    # 强制卸载mariadb
    # --nodeps: 强制卸载,RPM卸载程序的时候,如果这个程序被其他的程序依赖,是无法卸载的。
    # 			此时,就需要使用--nodeps,忽略依赖,强制卸载。
    # 下面的卸载命令中,卸载的包是上方查询到的包
    [root@qianfeng01 ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
    复制代码
  3. 安装MySQL

     # 安装MySQL, 其实就需要安装 mysql-community-server, 但是它依赖其他的包
    [root@qianfeng01 mysql]# rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
    [root@qianfeng01 mysql]# rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
    [root@qianfeng01 mysql]# rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm 
    [root@qianfeng01 mysql]# rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm 
    [root@qianfeng01 mysql]# rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm 
    [root@qianfeng01 mysql]# yum install -y net-tools perl
    [root@qianfeng01 mysql]# rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
    复制代码
  4. 启动MySQL的服务

     # 查看MySQL服务的运行状态
    [root@qianfeng01 ~]# systemctl status mysqld 
    # 如果MySQL服务没有开启,则开启
    [root@qianfeng01 ~]# systemctl start mysqld
    复制代码
  5. 登录到MySQL

     # 在第一次开启MySQL服务的时候,会自动生成一个随机的密码
    [root@qianfeng01 ~]# grep password /var/log/mysqld.log 
    # 到mysqld.log文件中查找 password
    2020-12-16T07:47:14.117739Z 1 [Note] A temporary password is generated for root@localhost: pVLJs6&o(QQe
    # 使用这个随机密码登录到MySQL 
    [root@qianfeng01 ~]# mysql -u root -p 
    pVLJs6&o(QQe # 这里用自己的密码登录
    复制代码
  6. 修改密码

    # 1. 修改MySQL的密码策略(安全等级)
    # MySQL默认的密码安全等级有点高,在设置密码的时候,必须同时包含大小写字母、数字、特殊字符,以及对位数有要求
    show variables like '%validate_password%';
    set global validate_password.policy=LOW;
    set global validate_password.length=4;
    set global validate_password.mixed_case_count=0;
    set global validate_password.number_count=0;
    set global validate_password.special_char_count=0;
    # 2. 修改密码
    alter user root@localhost identified by '123456';
    # 3. 远程授权
    create user root@'%' identified by '123456';
    grant all privileges on *.* to 'root'@'%' with grant option;
    FLUSH PRIVILEGES;
    复制代码
  7. 重新登录

    试着退出MySQL,用新的密码重新登录。如果可以登录成功,那么MySQL的安装就到此结束!
    MySQL在安装完成后,是不需要配置环境变量的。因为RPM的安装特性,启动脚本会被放到/usr/bin下。这个路径本来 就在环境变量里面,不需要单独配置。
    复制代码

文末扫码领取大数据礼包!

配置hive的环境

  1. 解压并配置环境变量
  2. 配置hive的配置文件
    cp hive-env.sh.template hive-env.sh
    vi hive-env.sh(可以配置jdk、hive的conf路径)
  3. 在Hive的conf配置hive的自定义配置文件
    vi hive-site.xml:添加如下内容

注意:前三步和内嵌模式一样

4、找到下面四个属性进行修改对应的值。

<!--配置mysql的连接字符串-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://qianfeng01:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=latin1</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<!--配置mysql的连接驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<!--配置登录mysql的用户-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<!--配置登录mysql的密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>

复制代码

注意:在hive-site.xml的第3215行有一个特殊的字符,由于编码,执行程序时不识别,需要手动修改(删除就可以了)

截屏2022-01-19 上午9.32.41

注意:hive的元数据在mysql库里创建的数据库hive的编码最好设置成latin1

show variables like 'character%';
复制代码

5、将mysql的驱动包mysql-connector-java-8.0.26.jar上传到$HIVE_HOME/lib下(注意:驱动是jar结尾,不是tar结尾)

5.1先启动Hadoop集群

start-all.sh
复制代码

在创建文件夹

[root@qianfeng01 hive] # hdfs dfs -mkdir -p /user/hive/warehouse 
[root@qianfeng01 hive] # hdfs dfs -mkdir -p /tmp/hive/ 
[root@qianfeng01 hive] # hdfs dfs -chmod 750 /user/hive/warehouse 
[root@qianfeng01 hive] # hdfs dfs -chmod 777 /tmp/hive
复制代码

6、执行执行先要初始化数据库

[root@qianfeng01 hive]# bin/schematool -initSchema -dbType mysql
复制代码

7、启动hive

[root@qianfeng01 hive]# bin/hive
复制代码

说明: hive命令会默认启动元数据服务项(metastore)

也可以观看大数据视频:

千锋大数据Hadoop全新增强版-先导片

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/592279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信公众号、支付接口认证:一步步教您如何实现

1、微信公众号接口认证方案 1.1 认证流程 1&#xff09;官方配置Token验证 Token不在网络中传递 2&#xff09;开发一个Token验证接口 Token及其它参数拼接并字典排序再做sha摘要计算微信定期调用此接口来验证身份正确性通过摘要验证判断请求来源微信&#xff08;Token配置…

TensorFlow进行MNIST数据集手写数字识别,保存模型并且进行外部手写图片测试

首先&#xff0c;你已经配置好Anaconda3的环境&#xff0c;下载了TensorFlow模块&#xff0c;并且会使用jupyter了&#xff0c;那么接下来就是MNIST实验步骤。 数据集官网下载&#xff1a;MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burgeshttp…

apple pencil的替代品买啥比较好?平价电容笔推荐

随着技术的发展&#xff0c;出现了许多种类的电容笔。一款好的电容笔&#xff0c;不但可以极大地提升我们的工作效率&#xff0c;也可以极大地改善我们的学习效果。平替电容笔无论是在技术方面&#xff0c;还是在产品质量方面&#xff0c;都有着非常广泛的应用前景。下面就是我…

Java领域的序列化与反序列化,Java的对象如何传输,常用序列化技术

文章目录 一、引出问题&#xff1a;Java原生的序列化1、基于Socket传输对象案例2、什么是序列化3、Java 原生序列化4、serialVersionUID 的作用5、transient 关键字绕开 transient 机制的办法writeObject 和 readObject 原理 6、Java 序列化的一些简单总结 二、分布式架构下常见…

【智能座舱系列| AR-HUD增强现实】—AR-HUD到底是“鸡肋”还是“真”香?

AR-HUD 概念 HUD,即抬头显示(Head Up Display),又叫平视显示系统。它的作用,就是把时速、导航等重要的行车信息,投影到驾驶员前面的挡风玻璃上,让驾驶员尽量做到不低头、不转头就能看到。 这种显示系统,原是军用战斗机上的显示系统,飞行员不必低头,就能在挡风玻璃上…

ChatGPT学习笔记;Meta发布Megabyte AI模型抗衡Transformer

AI知识 ChatGPT学习笔记 文章包括如下的内容&#xff1a; ChatGPT 介绍科普 背景知识ChatGPT 功能ChatGPT 原理 等等&#xff0c;文章的地址在这里。 AI新闻 &#x1f680; Meta发布Megabyte AI模型抗衡Transformer&#xff1a;解决后者已知问题、速度提升4成 摘要&…

笔试强训5

作者&#xff1a;爱塔居 专栏&#xff1a;笔试强训 作者简介&#xff1a;大三学生&#xff0c;希望和大家一起进步 目录 day6 day7 day6 1.关于抽象类与最终类&#xff0c;下列说法错误的是&#xff1f; A 抽象类能被继承&#xff0c;最终类只能被实例化。 B 抽象类和最终类…

NET HELPMSG 3534 报错

使用了带管理员权限的 PowerShell&#xff08;即在管理员权限下运行CMD&#xff09; 然后进行安装和服务启动操作 1、清空 MySQL 下的 data 文件夹&#xff1b; 2、确保系统环境变量中已经配置了 mysql 的 bin 目录到Path中&#xff1b; 3、执行以下命令&#xff1a; sc delet…

《Opencv3编程入门》学习笔记—第四章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第四章 OpenCV数据结构与基本绘图 四、基础图像容器Mat &#xff08;一&#xff09;数字图像存储概述 图像在数码设备中的表现形式为包含众多强度值的像素点矩阵。 &a…

JAVA键盘录入

文章目录 JAVA键盘录入1.导包2.创建对象3.接受数据接收 b o o l e a n \color{red}{boolean} boolean类型数据接收 b y t e \color{red}{byte} byte类型数据接收 s h o r t \color{red}{short} short类型数据接收 i n t \color{red}{int} int类型数据接收 l o n g \color{red}{…

库的制作与使用

什么是库 库是一种可执行的二进制文件&#xff0c;是编译好的代码。使用库可以提高开发效率。在 Linux 下有静态库和动 态库。因此编译出来的体积就比较大。 静态库在程序编译的时候会被链接到目标代码里面。所以程序在运行的时候不再需要静态库了。因此 编译出来的体积就比较大…

轻松学习白嫖GPT-4,已经标星38K,不再害怕高昂的AI模型费用!

文章目录 白嫖方式GPT-4当前可用站点 白嫖方式GPT-4 计算机专业学生xtekky在GitHub上发布了一个名为gpt4free的开源项目&#xff0c;该项目允许您免费使用GPT4和GPT3.5模型。这个项目目前已经获得了380000颗星。 开源地址&#xff1a;https://github.com/xtekky/gpt4free 简而…

vue ts写法

Vue.js 和 TypeScript 结合使用可以让你的项目更加健壮和易于维护。在 Vue 3 中&#xff0c;你可以使用 Vue.js 的 Composition API 和 TypeScript 一起使用。以下是一个简单的 Vue.js 和 TypeScript 结合使用的例子&#xff1a; 首先&#xff0c;确保你已经安装了 Vue.js 和 T…

如何从电机控制转换为运动控制

随着越来越多的技术广泛应用于工业自动化&#xff0c;我们已经进入了工业4.0时代。新技术不断涌现&#xff0c;赋能人工智能和机器学习、数据分析、工业网络、网络安全和功能安全。然而&#xff0c;大多数工业自动化作为其他所有技术的核心&#xff0c;仍然依靠机器人和运动控制…

【PWN · ret2text | PIE 】[NISACTF 2022]ezpie

简单的PIE绕过 目录 前言 一、题目重述 二、解题思路 1.现有信息 2.思考过程 3.exp 总结 前言 所接触的PIE保护的第一题&#xff0c;也非常简单。 一、题目重述 二、解题思路 1.现有信息 PIE保护——程序可能被加载到任意位置&#xff0c;所以位置是可变的。程序返回…

聚观早报 | 英伟达推「AI」超算;中国2030年前载人登月

今日要闻&#xff1a;英伟达推「AI」超算&#xff1b;中国2030年前载人登月&#xff1b;AI大热&#xff0c;游戏股全线大涨&#xff1b;ofo创始人二次创业项目陷入困境&#xff1b;微信视频号原创标记已对外显示 英伟达推「AI」超算 5 月 29 日&#xff0c;NVIDIA 宣布推出一款…

安捷伦E4440A 26.5G频谱分析仪Agilent e4440a 销售/回收

Agilent E4440A HP E4440A频谱分析仪&#xff0c;3 Hz - 26.5 GHz&#xff08;PSA 系列&#xff09; Agilent / Keysight PSA 系列 E4440A 高性能频谱分析仪提供强大的一键式测量、多功能功能集和前沿技术&#xff0c;可满足您的项目和需求。选项可供您选择&#xff08;详情请…

maven 项目中引入第三方jar,并且打包到项目的运行jar包中

背景说明 项目中遇到了人大金仓数据库的jar连接驱动&#xff0c;需要在maven中引入依赖信息 实践 方案1&#xff1a; 1.在官网下载jar包&#xff0c;https://www.kingbase.com.cn/zxwd/index.htm 下载地址。在项目文件中创建libs目录。 修改pom文件的配置信息 <depende…

如何在 Windows 中检查打开的TCP/IP端口

每当应用程序想要通过网络访问自己时,它都会声明一个TCP/IP端口,这意味着该端口不能被其他任何东西使用。那么,如何检查打开的端口以查看哪个应用程序已经在使用它呢? 检查打开的TCP/IP端口 查看端口使用和进程名称查看端口使用和进程标识符查看端口使用和进程名称 首先,你…

【完全揭秘】Traefik云原生网关——助力你的业务破万QPS

Traefik 是一款开源的反向代理和负载均衡软件&#xff0c;可以自动地为多个微服务实例进行负载均衡&#xff0c;并提供 HTTP/HTTPS/TCP/UDP 等协议支持。 Traefik 具有简单易用、自动发现服务、动态配置、可插拔的中间件等特点&#xff0c;被广泛应用于云原生和容器化场景中&am…