实验五 其他工具实践


来自博主卷毛迷你猪的授权,来自我们老师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(梁老师博客
配置截图在这里插入图片描述

【具体操作】

  1. 进入有权限的目录,并创建配置文件avro.conf(名字自取)

  2. 启动Flume agent,例如:
    flume-ng agent --conf ./ --conf-file avro.conf --name a1 Dflume.root.logger=INFO,console
    注意:(1)标红处的路径和配置文件名字,有需要请更变为自己的;
    (2)agent 的代号此处配置为a1,有需要请更变为自己的;
    (3)其他配置可以参考白皮书,请先弄懂命令再下手。

  3. 打开新的终端(重要),并创建新文件夹,例如testFlume

  4. 向新文件夹下写入一个log文件,例如: echo “hello world” > ~/testFlume/log.00

  5. 使用avro-client发送文件,例如:flume-ng avro-client -c ./ -H 0.0.0.0 -p 4141 -F testFlume/log.00
    注意:-c为conf所在目录,-H为主机, -p为端口号 -F为要发送文件所在的路径

  6. 在监听终端(启动Flume agent命令的终端)看到监听日志文件的内容。

  7. 结果图像
    在这里插入图片描述

项目2:Sqoop常用功能的使用

【参考链接】https://blog.csdn.net/qq_42881421/article/details/84783600(梁老师博客
安装配置截图:
在这里插入图片描述

【具体操作】
9. 在MySQL中创建数据库,并准备EMP表和DEPT表
在这里插入图片描述

  1. MySQL与HDFS数据互导,并查看数据迁移结果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. MySQL与Hive数据互导,并查看数据迁移结果
    在这里插入图片描述
    MySQL—导入到–>Hive
    在这里插入图片描述
    Hive—导出到–> MySQL在这里插入图片描述

  3. MySQL与HBase数据互导,并查看数据迁移结果(2023年选做)
    HBase安装配置:
    在这里插入图片描述

MySQL —导入到–> HBase
在这里插入图片描述
实验心得:

在 Flume 的实践部分,创建配置文件并启动 Flume agent,在测试环境下使用 avro-client 发送数据,然后从监听终端查看数据接收情况。通过这样的实践,熟悉 Flume 的功能和命令行操作,进而掌握日志采集、聚合和传输的知识。

在 Sqoop 的实践部分,将 MySQL 数据库中的数据导入到 HDFS 、Hive 或 HBase 中,或将 Hive 中的数据导出到 MySQL 中。通过这样的实践,熟悉 Sqoop 的数据导入、导出和迁移的功能,掌握数据存储和管理的方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 实验是关于MapReduce初级编程实践实验。MapReduce是一种分布式计算框架,可以用于处理大规模数据集。在这个实验中,我们将学习如何使用MapReduce框架来处理数据。 在实验中,我们将使用Hadoop作为MapReduce框架的实现。我们将学习如何编写MapReduce程序,包括Mapper和Reducer函数。我们还将学习如何使用Hadoop的命令行工具来运行MapReduce程序。 在实验中,我们将使用一个简单的例子来说明如何使用MapReduce框架。我们将使用一个包含单词的文本文件作为输入数据,并计算每个单词在文件中出现的次数。我们将使用MapReduce框架来实现这个功能,并输出每个单词的出现次数。 通过这个实验,我们将学习如何使用MapReduce框架来处理大规模数据集,并了解MapReduce框架的基本原理和使用方法。 ### 回答2: MapReduce初级编程实践是一门非常重要的课程,它是大数据处理领域的基础课程。该课程旨在通过让学生实践MapReduce编程,让学生掌握分布式计算框架的使用和数据处理的方法。 在实验中,开发者需要完成以下任务: 1. 实现一个WordCount任务:将一个文本文件中所有单词的出现次数计算出来,并按照单词出现的次数从高到低排序输出。 2. 实现一个InvertedIndex任务:将一个文本文件中所有单词所在的行数记录下来,并按照单词从A到Z的顺序输出。 在实现任务时,需要使用Hadoop作为分布式计算框架,使用Java作为编程语言。MapReduce框架将输入数据分成若干个小块,每个节点对每个小块进行数据处理,并将处理结果汇总到一起。开发者需要编写Map和Reduce函数,Map函数将每个小块的数据进行处理,将处理结果以键值对的形式输出。Reduce函数将所有Map输出的键值对进行汇总,生成最终的结果。 实验的目的是让学生了解MapReduce的工作原理和使用方法,同时提高学生的编码能力和数据处理能力。学生需要自己思考如何实现任务,并且在实现过程中要解决一些问题,比如如何进行输入输出,如何对文本进行分词,如何进行排序等等。通过解决这些问题,学生可以深入理解MapReduce的运行机制,并掌握大数据处理的方法和技巧。 总之,实验MapReduce初级编程实践是一门非常有价值的课程,它可以让学生掌握分布式计算框架的使用和数据处理的方法,具有重要的实践意义。 ### 回答3: MapReduce是一种分布式计算框架,用于处理海量数据。它的基本思想是将大问题分解成小问题,分发到不同的计算机上进行并行处理,最后将结果合并起来。MapReduce解决了并行计算中数据划分、任务调度、通信等问题,是大数据处理的重要工具。 在实验中,我们学习了MapReduce的初级编程实践。具体来说,就是编写两个程序:WordCount和InvertedIndex。WordCount的功能是统计文本中各个单词出现的次数,而InvertedIndex的功能是建立单词与文档之间的映射关系。 在WordCount中,我们需要实现map和reduce两个函数。map函数将文本分割成单词,以键值对的形式传给reduce函数。reduce函数将同一单词的键值对合并起来,并计算出该单词在文本中出现的总次数。这样,我们就能得到一个单词和其出现次数的映射关系表。 在InvertedIndex中,我们也需要实现map和reduce两个函数。map函数首先将文本的每一行分割成单词,然后以文件名(或URL)为键,以单词出现的次数为值,生成键值对。reduce函数将同一单词的键值对合并起来,并将该单词出现的文件名和次数列表作为值存入哈希表中。这样,我们就能得到一个单词和其出现的所有文件名及出现次数的映射关系表。 通过实验的学习和实践,我们了解了MapReduce的基本原理和编程方法。同时,我们也深刻认识到了分布式计算的优越性,它能够大大加速数据处理和分析过程,提高工作效率,拓展了我们的视野和思路。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值