2023.8.7-2023.8.14暑假第五周博客

Arkiya / 2023-08-12 / 原文

2023.8.7 今天人在外,因此博客休息一天 图片如下

 2023.8.8

今天对hive有了进一步的了解

首先要明确一个流程

当我打开三台虚拟机,用final shell连接上后

首先要使用如下命令

1.su - hadoop

切换到hadoop用户,大部分操作都必须在hadoop用户中完成,而千万不要再root中,因为root用户一旦启动了一些进程,会产生一些只有root能使用的日志文件

这就导致后续再使用hadoop的时候无法启动,会很麻烦

2.start-dfs.sh

启动hdfs文件管理系统

3.start-yarn.sh

启动yarn

4.cd /export/server

cd hive

到hive文件夹后启动元数据服务

bin/hive --service metastore

这里我不太清楚为什么直接启动会报一个奇怪的问题 且无法成功启动 

但是后台启动就可以

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

所以一般采用这种方法

启动后Runjar就是metastore服务

5.输入jps查看当前正在运行的进程

 上图是完全运行后的截图

之后若要使用直接在hive文件夹输入

bin/hive即可启动hive进程

今天所学的是在hive中使用sql语句

例如创建表格、数据插入等等

和sql语句的语法都是一样的

但是存在一个问题 我发现执行语句的速度很慢很慢,像是插入语句,以前用mysql基本上不到一秒钟就完成了

但是在hive中却要运行很久

查询后发现是因为hive底层还是mapreduce,他是把sql语句翻译成了mapreduce能够执行的语句进行运行

当数据量特别庞大的时候,它会体现出优势,但是当前运行的语句和数据量很小,因此无法体现他的优势

另外 使用mysql

同样输入

mysql -uroot -p

输入密码

输入的时候一定要保证小键盘开着 而且在linux中经常会出现退格键变成奇怪符号的问题,因此容易出现密码错误的情况

 2023.8.9

今天了解了hive内置的beeline

HiveServer2 Hive 置的一个 ThriftServer 服务,提供 Thrift 端口供其它客户端
可以 ThriftServer 的客户端有:
Hive 置的 beeline 客户端工具(命令行工具)
方的形化 SQL 工具,如 DataGrip DBeaver Navicat

# 先启 metastore 服务 hiveserver2 服务
nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &
nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 &
 hiveserver2更像是一个操作间,外来或者内置的beeline通过hiveserver2对hive数据库进行操作,今天主要了解了beeline,是内置的
当启动了metastore和hiveserver2之后
直接cd到hive文件夹
通过hive/beeline就可以直接使用了
然后他需要连接到端口上
连接语法:
!connect jdbc:hive2://node1:10000
然后需要输入用户名和密码
用户名为hadoop
密码未设置直接回车即可
启动完成后就同样可以执行sql语句了
2023.8.10
今天主要复习了一下之前所学的内容 包括hdfs、hive、mapreduce等,对大数据内容有了进一步的了解
 
2023.8.11
今天下载了DataGrip,他是一个图形化的客户端,比起命令行来说操作更加方面,也更加直观
它是基于hiveserver2向外的端口来实现的,具体流程在启动相关服务之后,只需要打开DataGrip设置一下用户名即可

 连接很简单,软件本身需要激活,我这里把链接也放在这里,参考的教程一并放上

2023.2 DataGrip安装激活教程(永久激活至2099年,附激活码,亲测有效) - 知乎 (zhihu.com)

但是不知道为什么 我的激活只到2025年

2023.8.12

今天主要开始学习hive数据库的sql内容 今日所学的内容的语法和mysql出入不大,主要还是用beeline和hiveserver2进行创建数据库和表

值得一提的是在昨天使用的客户端中只需要可视化即可,感觉可视化的客户端还是十分方便的

提到了内部表和外部表 内部表看可以看作是公司的正式员工,储存位置是默认的

/user/hive/warehouse,是Hive管理表,持久使用

外部表是临时的员工,存储位置是随意的,由LOCATION关键字指定,只是临时链接

外部数据使用

创建的时候 若使用关键字external 则为外部表 如果没有基本上都是内部表