来自博主卷毛迷你猪的授权,来自我们老师PPT,我只是写自己的操作过程
- 实验五 其他工具实践
- 1.实验目的
- 2.实验原理
- 3.实验准备
- 4.实验内容
时长:3次课(3周)
实验目的
- 掌握Flume的安装、配置和简单使用。
- 掌握Sqoop的安装、配置和简单使用。
实验原理
- 两个工具在大数据一般处理流程中的岗位和作用
实验原理-Flume
- Flume
- Flume是apache的一个顶级项目,是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力。
- 本实验实现Avro Source + Memory Channel + Logger Sink的组合。使用apache-flume-1.8.0自带的例子:
• 使用Avro Source接收外部数据源
• Logger作为sink
• 通过Avro RPC调用,将数据缓存在channel中,然后通过Logger打印出调用发送的数据
实验原理-Sqoop
- Sqoop
- Sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。
- 核心的功能有两个:
• 数据的导入、迁入 ,例如:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统
• 数据的导出、迁出:从 Hadoop 的文件系统中导出数据到关系数据库 MySQL - Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并没有什么高深的理论。
- Sqoop和Hive的区别:
• Sqoop:本质就是迁移数据, 迁移的方式是把迁移命令转换成MR程序
• Hive:本质就是执行计算,依赖于HDFS存储数据,把HiveQL转换成MR程序
3.实验准备 - 完成实验四,已经搭建好Hive环境
实验内容
【实验项目】
- 项目1:Flume的配置与使用
- 项目2:Sqoop常用功能的使用(HBase相关操作选做)
项目1:Flume的配置与使用
【参考链接】https://blog.csdn.net/qq_42881421/article/details/84782509(梁老师博客)
配置截图
【具体操作】
-
进入有权限的目录,并创建配置文件avro.conf(名字自取)
-
启动Flume agent,例如:
flume-ng agent --conf ./ --conf-file avro.conf --name a1 Dflume.root.logger=INFO,console
注意:(1)标红处的路径和配置文件名字,有需要请更变为自己的;
(2)agent 的代号此处配置为a1,有需要请更变为自己的;
(3)其他配置可以参考白皮书,请先弄懂命令再下手。 -
打开新的终端(重要),并创建新文件夹,例如testFlume
-
向新文件夹下写入一个log文件,例如: echo “hello world” > ~/testFlume/log.00
-
使用avro-client发送文件,例如:flume-ng avro-client -c ./ -H 0.0.0.0 -p 4141 -F testFlume/log.00
注意:-c为conf所在目录,-H为主机, -p为端口号 -F为要发送文件所在的路径 -
在监听终端(启动Flume agent命令的终端)看到监听日志文件的内容。
-
结果图像
项目2:Sqoop常用功能的使用
【参考链接】https://blog.csdn.net/qq_42881421/article/details/84783600(梁老师博客)
安装配置截图:
【具体操作】
9. 在MySQL中创建数据库,并准备EMP表和DEPT表
-
MySQL与HDFS数据互导,并查看数据迁移结果
-
MySQL与Hive数据互导,并查看数据迁移结果
MySQL—导入到–>Hive
Hive—导出到–> MySQL -
MySQL与HBase数据互导,并查看数据迁移结果(2023年选做)
HBase安装配置:
MySQL —导入到–> HBase
实验心得:
在 Flume 的实践部分,创建配置文件并启动 Flume agent,在测试环境下使用 avro-client 发送数据,然后从监听终端查看数据接收情况。通过这样的实践,熟悉 Flume 的功能和命令行操作,进而掌握日志采集、聚合和传输的知识。
在 Sqoop 的实践部分,将 MySQL 数据库中的数据导入到 HDFS 、Hive 或 HBase 中,或将 Hive 中的数据导出到 MySQL 中。通过这样的实践,熟悉 Sqoop 的数据导入、导出和迁移的功能,掌握数据存储和管理的方法。