黑马大数据学习笔记4-Hive部署和基本操作

news2024/11/15 18:16:47

目录

  • 思考
  • 规划
  • 安装MySQL数据库
  • 修改root用户密码
  • 配置Hadoop
  • 下载解压Hive
  • 提供MySQL Driver包
  • 配置Hive
  • 初始化元数据库
  • 启动Hive(使用Hadoop用户)
  • Hive体验
  • HiveServer2
    • HiveServer2服务
    • 启动
  • Beeline

p48、51、52
https://www.bilibili.com/video/BV1WY4y197g7/?p=48

思考

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

Hive是单机工具,只需要部署在一台服务器即可。
Hive虽然是单机的,但是它可以提交分布式运行的MapReduce程序运行。

规划

我们知道Hive是单机工具后,就需要准备一台服务器供Hive使用即可。
同时Hive需要使用元数据服务,即需要提供一个关系型数据库,我们也选择一台服务器安装关系型数据库即可。

所以:

服务机器
Hive本体部署在node1
元数据服务所需的关系型数据库(课程选择最为流行的MySQL)部署在node1

为了简单起见,都安装到node1服务器上。

安装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

mysql -uroot -p

然后输入密码,回车。

如果你想设置简单密码,需要降低Mysql的密码安全级别
密码安全级别低

set global validate_password_policy=LOW;

密码长度最低4位即可

set global validate_password_length=4;

然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样)

修改root本机登录密码为123456

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

/usr/bin/mysqladmin -u root password ‘root’
修改远程登录密码,打开root用户从任意地方的主机远程登录的权限

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

刷新权限

flush privileges;

在这里插入图片描述
ctrl+D退出mysql。
重新进入mysql验证密码是否修改完成。

mysql -uroot -p

在这里插入图片描述

配置Hadoop

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

切换到hadoop用户

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

添加如下内容在Hadoop的core-site.xml的<configuration></configuration>之间,并分发到其它节点,且重启HDFS集群。

<property>
	<name>hadoop.proxyuser.hadoop.hosts</name>
	<value>*</value>
</property>

<property>
	<name>hadoop.proxyuser.hadoop.groups</name>
	<value>*</value>
</property>

下载解压Hive

下载Hive安装包:
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

在这里插入图片描述

提供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/apache-hive-3.1.3-bin/lib/

配置Hive

在Hive的conf目录内,新建hive-env.sh文件,填入以下环境变量内容:

cd /export/server/hive/conf
mv hive-env.sh.template hive-env.sh
vim 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文件,填入以下内容:

vim hive-site.xml
<configuration>
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;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>

初始化元数据库

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

mysql -uroot -p
show databases;
CREATE DATABASE hive CHARSET UTF8;
show databases;

在这里插入图片描述
退出mysql

exit

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

cd /export/server/hive/bin
./schematool -initSchema -dbType mysql -verbos

初始化成功后,会在MySQL的hive库中新建74张元数据管理的表。

mysql -uroot -p
show databases;
use hive
show tables;

在这里插入图片描述
退出mysql

exit

启动Hive(使用Hadoop用户)

修改文件权限

chown -R hadoop:hadoop apache-hive-3.1.3-bin hive

在这里插入图片描述

  • 确保Hive文件夹所属为hadoop用户
  • 创建一个hive的日志文件夹:
su - hadoop
mkdir /export/server/hive/logs
cd /export/server/hive
  • 启动元数据管理服务(必须启动,否则无法工作)

前台启动:

bin/hive --service metastore 

后台启动:

nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &

查看日志

tail -f  metastore.log

在这里插入图片描述

  • 启动客户端,二选一(当前先选择Hive Shell方式)
    确保metastore、hdfs和yarn都已经启动
    Hive Shell方式(可以直接写SQL):
bin/hive

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

bin/hive --service hiveserver2

在这里插入图片描述

Hive体验

首先,确保启动了Metastore服务、hdfs和yarn集群。

start-dfs.sh
start-yarn.sh
mapred --daemon start historyserver
nohup /export/server/hive/bin/hive --service metastore >> /export/server/hive/logs/metastore.log 2>&1 &

可以执行:

cd /export/server/hive
bin/hive

进入到Hive Shell环境中,可以直接执行SQL语句。
创建表

CREATE TABLE test(id INT, name STRING, gender STRING);
show tables;

插入数据

insert into test values(1,'mm','nan');
INSERT INTO test VALUES(2,'王力红','男'),(3,'李华','女');

会执行得有点慢。。。

查询数据

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

在这里插入图片描述

验证SQL语句启动的MapReduce程序
打开YARN的WEB UI页面查看任务情况:http://node1:8088
在这里插入图片描述

ctrl+c退出hive。

验证Hive的数据存储
Hive的数据存储在HDFS的:/user/hive/warehouse中
在这里插入图片描述

HiveServer2

在启动Hive的时候,除了必备的Metastore服务外,有2种方式使用Hive:

  • 方式1:
bin/hive

即Hive的Shell客户端,可以直接写SQL

  • 方式2:
bin/hive --service hiveserver2

后台执行脚本:

nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 &

bin/hive --service metastore,启动的是元数据管理服务
bin/hive --service hiveserver2,启动的是HiveServer2服务

HiveServer2是Hive内置的一个ThriftServer服务,提供Thrift端口供其它客户端链接
可以连接ThriftServer的客户端有:

  • Hive内置的 beeline客户端工具(命令行工具)
  • 第三方的图形化SQL工具,如DataGrip、DBeaver、Navicat等

HiveServer2服务

Hive的客户端体系如下
在这里插入图片描述

启动

在hive安装的服务器上,首先启动metastore服务,然后启动hiveserver2服务。

nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &
nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 &
ps -ef|grep 32094
ps -ef|grep 32429

在这里插入图片描述
在这里插入图片描述
hiveserver2监听了10000端口,金对外提供的thrift端口,默认10000

netstat -anp|grep 10000

在这里插入图片描述

Beeline

在node1上使用beeline客户端进行连接访问。需要注意hiveserver2服务启动之后需要稍等一会才可以对外提供服务。
Beeline是JDBC的客户端,通过JDBC协议和Hiveserver2服务进行通信,协议的地址是:jdbc:hive2://node1:10000

/export/server/hive/bin/beeline
! connect jdbc:hive2://node1:10000

输入用户名和密码

show databases;

在这里插入图片描述

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

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

相关文章

《合成孔径雷达成像算法与实现》Figure3.9

代码复现如下&#xff1a; clc clear close all% 参数设置 TBP 100; % 时间带宽积 T 7.2e-6; % 脉冲持续时间 t_0 1e-6; % 脉冲回波时延% 参数计算 B TBP/T; …

计网实验第三章:TCP

问题集一 问题一 客户端计算机(源)使用的IP地址和TCP端口号是什么&#xff1f;将文件传输到gaia.cs.umass.edu? 图1 答&#xff1a;如图1中所示&#xff1a;192.168.31.7 &#xff0c;80 问题二 gaia.c.s.umass.edu的IP地址是什么?发送的端口号是什么并接收此连接的TCP段…

VR内容定制 | VR内容中控管理平台可以带来哪些价值?

随着科技的不断发展&#xff0c;虚拟现实(VR)技术已经逐渐渗透到各个领域&#xff0c;其中教育领域也不例外。通过VR技术&#xff0c;学生可以身临其境地参与到各种场景中&#xff0c;获得更加直观、生动的学习体验。为了让教师更好地进行VR教学的设计和管理&#xff0c;提高教…

Mac电脑如何把照片以文件格式导出?

在Mac电脑上&#xff0c;我们经常会拍摄、保存和编辑各种照片。有时候&#xff0c;我们可能需要将这些照片以文件形式导出&#xff0c;以便与他人共享、打印或备份。无论您是要将照片发送给朋友、上传到社交媒体&#xff0c;还是保存到外部存储设备&#xff0c;导出照片为文件是…

Wlan——射频和天线基础知识

目录 射频的介绍 射频和Wifi 射频的相关基础概念 射频的传输 信号功率的单位 射频信号传输行为 天线的介绍 天线的分类 天线的基本原理 天线的参数 射频的介绍 射频和Wifi 什么是射频 从射频发射器产生一个变化的电流&#xff08;交流电&#xff09;&#xff0c;通过…

Java后端开发需要学什么课程,能够帮助就业

Java后端开发需要学什么课程&#xff0c;学习内容对于想要在Java就业的同学来说非常重要。以下是一些关键的学习内容&#xff0c;可以帮助他们在Java领域获得就业机会&#xff1a; Java核心知识&#xff1a;掌握Java编程语言的基本语法、面向对象编程、异常处理、集合框架等核心…

[保研/考研机试] KY102 计算表达式 上海交通大学复试上机题 C++实现

描述 对于一个不存在括号的表达式进行计算 输入描述&#xff1a; 存在多组数据&#xff0c;每组数据一行&#xff0c;表达式不存在空格 输出描述&#xff1a; 输出结果 示例1 输入&#xff1a; 6/233*4输出&#xff1a; 18思路&#xff1a; ①设立运算符和运算数两个…

并发——synchronized 关键字

文章目录 1.说一说自己对于 synchronized 关键字的了解2. 说说自己是怎么使用 synchronized 关键字3. 构造方法可以使用 synchronized 关键字修饰么&#xff1f;4. 讲一下 synchronized 关键字的底层原理4.1. synchronized 同步语句块的情况4.2. synchronized 修饰方法的的情况…

多用户跨境电商商品库系统快速搭建(全开源)

搭建一个多用户跨境电商商品库系统需要以下步骤&#xff1a; 1. 确定系统需求&#xff1a;首先&#xff0c;需要明确系统的功能需求&#xff0c;包括商品管理、订单管理、用户管理、支付管理等。根据具体需求确定系统的功能和界面设计。 2. 确定技术栈&#xff1a;选择合适的…

Redis简单学习

Redis是一个基于内存的key-value结构数据库 linux上面安装&#xff1a; Redis存储的是key-value结构的数据&#xff0c;其中key是字符串&#xff0c;value有常见的5中数据类型&#xff1a; 字符串 string哈希 hash列表 list集合 set有序集合 sorted set 字符串常用操作&am…

Jmeter压测实战:Jmeter二次开发之自定义函数

目录 1 前言 2 开发准备 3 自定义函数核心实现 3.1 新建项目 3.2 继承实现AbstractFunction类 3.3 最终项目结构 4 Jmeter加载扩展包 4.1 maven构建配置 4.2 项目打包 4.3 Jmeter加载扩展包 5 自定义函数调用调试 5.1 打开Jmeter函数助手&#xff0c;选择自定义函数…

linux文件I/O之 open() 函数用法

#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> typedef unsigned int mode_t ; int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); 函数功能 打开或创建一个文件 返回值 成功…

4.2、Flink任务怎样读取文件中的数据

目录 1、前言 2、readTextFile&#xff08;已过时&#xff0c;不推荐使用&#xff09; 3、readFile&#xff08;已过时&#xff0c;不推荐使用&#xff09; 4、fromSource(FileSource) 推荐使用 1、前言 思考: 读取文件时可以设置哪些规则呢&#xff1f; 1. 文件的格式(tx…

上海震坤行工业超市入选胡润百富“中国产业互联网30强”

上海震坤行工业超市入选胡润百富“中国产业互联网30强” &#xff08;2023年6月27日&#xff0c;广州&#xff09;全面提供全球最具潜力创业企业榜单的胡润研究院今日发布《2023胡润中国产业互联网30强》&#xff08;Hurun China IIoT Top 30 2023&#xff09;&#xff0c;榜…

利用Ettercap进行DNS欺骗攻击

一、域名系统&#xff08;DNS&#xff09; 域名系统DNS是Internet上使用的命名系统&#xff0c;用于将系统名称转换为人们易于使用的IP地址。域名系统是基于互联网的前身ARPANET开发的&#xff0c;在ARPANET时代&#xff0c;主机名和对应的IP地址是通过HOST.TXT文件集中管理的…

IPO观察丨困于门店扩张的KK集团,还能讲好增长故事吗?

KK集团发起了其IPO之路上的第三次冲击。 近日&#xff0c;KK集团更新了招股书&#xff0c;继续推进港交所上市进程&#xff0c;此前两次上市搁置后终于有了新动向。从更新内容来看&#xff0c;KK集团招股书披露了公司截至2023年一季度的最新业绩&#xff0c;交出一份不错的“成…

你怎么看这MyBatis-flex框架 ?(入门篇)

1、简介 在国内目前使用最多的ORM框架就是Mybatis-Plus&#xff0c;也不得不承认&#xff0c;Mybatis-Plus相对于JPA而言&#xff0c;也确实好用一些&#xff08;就个人而言&#xff09;&#xff0c;但是在国外JPA框架还是挺火的&#xff0c;因为JPA是一个完全的ORM框架&#x…

等了10年,工信部的APP备案终于来了

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 2005年3月&#xff0c;工信部要求所有境内网站都要进行网站备案、公安备案。 2023年8月&#xff0c;工信部要求所有的APP、小程序进行备案。否则…… 这绝对是一个移动互联网创业分水岭&#xff0…

希尔排序——C语言andPython

前言 步骤 代码 C语言 Python 总结 前言 希尔排序&#xff08;Shell Sort&#xff09;是一种改进的插入排序算法&#xff0c;它通过将数组分成多个子序列进行排序&#xff0c;逐步减小子序列的长度&#xff0c;最终完成整个数组的排序。希尔排序的核心思想是通过排序较远距…

重温HashMap底层原理

目录 1.HashMap概述 2.JDK7与JDK8的HashMap区别 3.HashMap的主要方法分析 4.常见问题分析总结 1.HashMap概述 HashMap是使用频率最高的用于映射键值对(key和value)处理的数据类型。随着JDK版本的跟新&#xff0c;JDK1.8对HashMap底层的实现进行了优化&#xff0c;列入引入…