【大数据技术原理与应用】复习

在这里插入图片描述

一、填空(10X2)

请添加图片描述
请添加图片描述

在这里插入图片描述

请添加图片描述请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述
请添加图片描述请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述
请添加图片描述

请添加图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、问答(3)

1、第二名称节点的作用

  1. 完成EditLog与FsImage的合并
    第二名称节点将名称节点中的文件拉到本地,然后加载到内存,对二者进行合并操作,即在内存条里一条一条执行EditLog里的操作,使得FsImage保持最新。合并结束后将EditLog new和FsImage new发送给名称节点。以防止EditLog过大,导致名称节点失败恢复时消耗过多时间。
  2. 作为名称节点的“检查点”
    周期性的备份名称节点中的元数据信息,但并不能直接替代主NameNode起到热备份的作用。如果主NameNode发生故障,HDFS需要通过其他手段(例如使用HA,High Availability)来实现主备份切换,以确保系统的连续性。

2、给一个文件怎么存储、设置、存储原理

  1. 切分为块

在这里插入图片描述
2、设置
在这里插入图片描述
3、存取策略
在这里插入图片描述
ect/fe8e80727d714b5a8faac3e9b87993d3.png)

3、MapReduce工作流程(P132、7-2)

工作流程概述
在这里插入图片描述
MapReduce各个执行阶段

在这里插入图片描述
在这里插入图片描述

三、分析题(2X10)

1、Scala代码(spark实验四核心代码)

package org.zkpk.lab
import org.apache.spark.rdd.RDD
import org.apache.spark.{
   SparkConf,SparkContext}
class ScalaWordCount {
   }
object ScalaWordCount{
   
  def main(args: Array[String]): Unit = {
   
    val list = List("hello hi hi spark",
    "hello spark hello hi sparksql",
    "hello hi hi sparkstreaming",
    "hello hi sparkgraphx")
    val sparkConf = new SparkConf().setAppName("word-count").setMaster("local[*]")
    val sc = new SparkContext(sparkConf)
    val lines : RDD[String] = sc.parallelize(list)
    val words : RDD[String] = lines.flatMap((line:String) =>{
   line.split(" ")})
    val wordAndOne : RDD[(String, Int)] =
      words.map((word : String) => {
   (word, 1)})
    val wordAndNum : RDD[(String, Int)] =
      wordAndOne.reduceByKey((count1 : Int, count2 : Int) => {
   count1+count2})
    val ret = wordAndNum.sortBy(kv => kv._2,false)
    println(ret.collect().mkString(","))
    ret.saveAsTextFile(args(0))
    sc.stop()
  }
}

思考题

  1. 本实验中RDD对象lines的flatMap方法是按照什么来切分RDD中的字符串元素的?

  2. 试解释下面语句的意思?

3.本实验中这句语句中的args(0)在运行配置参数arguments时是什么?

2、修改代码(第五章ppt代码)

在这里插入图片描述

四、应用题(40)

1、HDFS常用命令(实验二)

命令基本格式:

hadoop fs -cmd < args >

1.ls

hadoop fs -ls /

列出hdfs文件系统根目录下的目录和文件

hadoop fs -ls -R /

列出hdfs文件系统所有的目录和文件

2.put
将本地文件上传到HDFS

hadoop fs -put < local file > < hdfs file >
hdfs file的父目录一定要存在,否则命令不会执行
hadoop fs -put < local file or dir >…< hdfs dir >
hdfs dir 一定要存在,否则命令不会执行
hadoop fs -put - < hdsf file>
从键盘读取输入到hdfs file中,按Ctrl+D结束输入,hdfs file不能存在,否则命令不会执行

2.1.moveFromLocal

hadoop fs -moveFromLocal < local src > … < hdfs dst >

与put相类似,命令执行后源文件 local src 被删除,也可以从从键盘读取输入到hdfs file中

2.2.copyFromLocal

hadoop fs -copyFromLocal < local src > … < hdfs dst >

与put相类似,也可以从从键盘读取输入到hdfs file中

3.get
将HDFS中的文件复制到本地

hadoop fs -get < hdfs file > < local file or dir>

local file不能和 hdfs file名字不能相同,否则会提示文件已存在,没有重名的文件会复制到本地

hadoop fs -get < hdfs file or dir > … < local dir >

拷贝多个文件或目录到本地时,本地要为文件夹路径 注意:如果用户不是root, local 路径要为用户文件夹下的路径,否则会出现权限问题,

3.1.copyToLocal

hadoop fs -copyToLocal < local src > … < hdfs dst >

与get相类似

4.rm

hadoop fs -rm < hdfs file > …

hadoop fs -rm -r < hdfs dir>…

每次可以删除多个文件或目录

5.mkdir

hadoop fs -mkdir < hdfs path>

只能一级一级的建目录,父目录不存在的话使用这个命令会报错

hadoop fs -mkdir -p < hdfs path>

所创建的目录如果父目录不存在就创建该父目录

6.getmerge

hadoop fs -getmerge < hdfs dir > < local file >

将hdfs指定目录下所有文件排序后合并到local指定的文件中,文件不存在时会自动创建,文件存在时会覆盖里面的内容

hadoop fs -getmerge -nl < hdfs dir > < local file >

加上nl后,合并到local file中的hdfs文件之间会空出一行

7.cp

hadoop fs -cp < hdfs file > < hdfs file >

目标文件不能存在,否则命令不能执行,相当于给文件重命名并保存,源文件还存在 hadoop fs -cp < hdfs file or dir

… < hdfs dir >

目标文件夹要存在,否则命令不能执行

8.mv

hadoop fs -mv < hdfs file > < hdfs file >

目标文件不能存在,否则命令不能执行,相当于给文件重命名并保存,源文件不存在

hadoop fs -mv < hdfs file or dir >… < hdfs dir >

源路径有多个时,目标路径必须为目录,且必须存在。 注意:跨文件系统的移动(local到hdfs或者反过来)都是不允许的

9.count

hadoop fs -count < hdfs path >

统计hdfs对应路径下的目录个数,文件个数,文件总计大小 显示为目录个数,文件个数,文件总计大小,输入路径

10.du

hadoop fs -du < hdfs path>

显示hdfs对应路径下每个文件夹和文件的大小

hadoop fs -du -s < hdfs path>

显示hdfs对应路径下所有文件的大小

hadoop fs -du - h < hdfs path>

显示hdfs对应路径下每个文件夹和文件的大小,文件的大小用方便阅读的形式表示,例如用64M代替67108864

11.text

hadoop fs -text < hdfs file>

将文本文件或某些格式的非文本文件通过文本格式输出

12.setrep

hadoop fs -setrep -R 3 < hdfs path >

改变一个文件在hdfs中的副本个数,上述命令中数字3为所设置的副本个数,-R选项可以对一个人目录下的所有目录+文件递归执行改变副本个数的操作

13.stat

hdoop fs -stat [format] < hdfs path >

返回对应路径的状态信息
[format]可选参数有:%b(文件大小),%o(Block大小),%n(文件名),%r(副本个数),%y(最后一次修改日期和时间)
可以这样书写hadoop fs -stat %b%o%n < hdfs path >,不过不建议,这样每个字符输出的结果不是太容易分清楚

14.tail

hadoop fs -tail < hdfs file >

在标准输出中显示文件末尾的1KB数据

15.archive

hadoop archive -archiveName name.har -p < hdfs parent dir > < src >* <
hdfs dst >

命令中参数name:压缩文件名,自己任意取;
< hdfs parent dir > :压缩文件所在的父目录;
< src >:要压缩的文件名;
< hdfs dst >:压缩文件存放路径
示例:hadoop archive -archiveName hadoop.har -p /user 1.txt 2.txt /des
示例中将hdfs中/user目录下的文件1.txt,2.txt压缩成一个名叫hadoop.har的文件存放在hdfs中/des目录下,如果1.txt,2.txt不写就是将/user目录下所有的目录和文件压缩成一个名叫hadoop.har的文件存放在hdfs中/des目录下
显示jar的内容可以用如下命令:

hadoop fs -ls /des/hadoop.jar

显示jar压缩的是那些文件可以用如下命令

hadoop fs -ls -R har:///des/hadoop.jar

注意:jar文件不能进行二次压缩。如果想给.jar加文件,只能找到原来的文件,重新创建一个。jar文件中原来文件的数据并没有变化,jar文件真正的作用是减少NameNode和DataNode过多的空间浪费。

16.balancer

hdfs balancer

如果管理员发现某些DataNode保存数据过多,某些DataNode保存数据相对较少,可以使用上述命令手动启动内部的均衡过程

17.dfsadmin

hdfs dfsadmin -help

管理员可以通过dfsadmin管理HDFS,用法可以通过上述命令查看 hdfs dfsadmin -report

显示文件系统的基本数据

hdfs dfsadmin -safemode < enter | leave | get | wait >

enter:进入安全模式;leave:离开安全模式;get:获知是否开启安全模式; wait:等待离开安全模式

18.distcp

用来在两个HDFS之间拷贝数据

2、基于sogo日志文件的分析(实验十、十七核心代码)

实验十MapReduce编程:检索特定群体搜索记录
代码清单org.zkpk.hadoop.mov

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Maria

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值