Hadoop学习笔记

Hadoop学习笔记,第1张

Hadoop学习笔记

前期搭建准备:

vim /etc/hosts 将IP地址和主机名加入在最后

**免密登录的设置

https://www.cnblogs.com/wenxingxu/p/9597307.html

  • 进入主目录 h1m1 下/root
  • ls -a 查看.ssh .ssh是放密匙的地方,cd进入.ssh/
  • .ssh/文件夹下,ssh-keygen -t rsa 三次回车(即默认)

ssh-keygen 生成密匙 -t rsa 使用rsa算法进行加密

-------------------------------------------------------------------------------------------------

下面直接融合scp id_rsa.pub h1s2:/root/.ssh/authorized_keys

  • scp id_rsa.pub h1s2:/home/ 即h1m1登录h1s2无密码 拷贝到/home文件夹 任意
  • 然后ssh h1s2 进入h1s2
  • cd /home/ 进入h1s2的家目录
  • cat id_rsa.pub >> /root/.ssh/authorized_keys 完成

-------------------------------------------------------------------------------------------------

命令行 *** 作举例: 

scp C:/Users/Administrator/Desktop/xx.txt [email protected]:~/auto-bin

ssh root@虚拟机ip地址 //win进入linux

基础知识梳理:

对应关系

        ARP(IP-MAC)

        DNS(域名DNS-IP)

>和>>的区别、<

        1、输入输出的区别:

        >>和>都属于输出重定向,<属于输入重定向。

        2、文件内容的区别:

        >会覆盖目标的原有内容。当文件存在时会先删除原文件,再重新创建文件,然后把内容写入该文件;否则直接创建文件。

        >>会在目标原有内容后追加内容。当文件存在时直接在文件末尾进行内容追加,不会删除原文件;否则直接创建文件。

slaves: nodemanager——datanode 主机 需要大量硬盘

master: resourcemanager——namenode 需要大量内存

——所以配置HDFS集群的成本主要在于内存和硬盘

HDFS: namenode——datanode 是基于主从结构(slaves/master)构建

YARN: resourcemanager——nodemanager

数据:管理数据的数据。存在namenode里。

HDFS:即把很多硬盘变成一个硬盘

磁盘的存储时间=定位时间+传输时间

题目:

1.800个400M文件,存放到30个HDFS的DATANODE节点,每节点传输速度20M/S,每个文件定位时间1.5S,分配800个文件到30个节点的调度时间为3S.

问:最快完成存储时间?

800个400M文件 ↓ 20M/S 分配时间3S 30节点 800/30=26……20

一个文件传到一个结点:400/20=20S 定位+传输:20+1.5=21.5

26次传输21.5*26=559

剩下一次559+21.5=580.5

580.5+3=583.5S

分布式文件抽象的优势:

1.一个文件可以大于每个磁盘

2.文件不用全在一个磁盘上

3.简化了存储子系统的设计

遇到问题:

1.Datanode无法启动——

因为每一次启动sh,都会格式化,但因为current已经存在,便无法建立此文件夹,导致Namenode和DataNode的ID不一致,从而使DataNode无法启动。

删除current文件夹,查到文件夹在/user/lib/hadoop/dfs/data/current

查找命令 find / name current //查找全局中name为current

数据流

先启动集群

hadoop fs -mkdir /2ban

在hdfs集群中创建2ban文件夹

hadoop fs -put /home/wangke/1.txt /2ban/

将本地文件传到集群中

cd -回到上一个目录

使用grep查找文件内容

查询当前时间 echo "date" | ssh h1m1

设置当前时间 date -s "0:0:0"

HDFS

HDFS中文件是一次性写入,并任意时候只能有一个写入。

心跳信号:证明是否还存在。即该datanode节点工作正常。

块状态报告:证明是否运行正常。即该datanode上所有数据块的列表。

namenode全权管理数据块的复制,它周期性地从集群中每个datanode接受心跳信号和块状态报告。

HDFS的基本存储单元——BLOCK

私网IP:50070 即Hadoop管理界面 :8042 节点情况

冷备份:在数据库关闭后进行备份,适用于所有模式的数据库

热备份:在数据库仍处于工作状态时践行备份,针对归档模式的数据库

遇到问题:

1.在current文件夹中找不到subdir0文件夹

因为hdfs是分布式,所以存在哪一块硬盘(datanode)不一定。在每一块硬盘上都找一下。

2.文件传到集群之后找不到

传到集群上之后,文件名会变化。

3.将副本数改成3后,若节点共3个,那么三台机器是否都有?

**4.datanode中磁盘挂了怎么办

Datanode正常服务

坏掉的磁盘上的数据尽快通知NameNode

**5.datanode所在机器挂了怎么办

5.1 namenode怎么知道datanode挂了

datanode每3秒向namenode发送心跳,若10分钟未发送,则namenode人该该datanode已dead,namenode将取出该datanode上对应的block,并对其进行复制。

**6.namenode挂了怎么办

持久化元数据

*** 作日志 edit log:记录文件创建、删除、修改文件属性等 *** 作

Fsimage(HDFS元数据镜像文件):

包含完整的命名空间

File->BLOCK的映射关系

文件属性(ACL,quota,修改时间等)

Secondary Namenode

将Namenode的fsimage(HDFS元数据镜像文件)与edit log(HDFS文件改动日志)从namenode复制到临时目录

将fsimage同edit log合并,并产生新的fsimage(减少启动时间)

将产生的心fsimage上传给namenode

清除namenode中的edit log

注意:Secondary Namenode仅对namenode中元数据提供冷备份方案。

**7.client挂了怎么办

一致性问题。 

( lease recovery 自我释放)

MapReduce分布计算

是一种简单易用的软件框架。以一种可靠容错方式并行处理数据集(TB字节级的数据)

Map 并行计算 Reduce 汇总

MAP/REDUCE 数据流程:

1 Input 将票拿来 (不可缺省)

2 Split 将票分出一堆给别人(由namenode自己/系统完成)

3 recordreader 读票的把票捡起来(比如按颜色捡起票)(由namenode自己/系统完成)

4 mapper 把票分类摆到一起(比如蓝色的票放在一起)(不可缺省)

5 combiner

6 shuffler

7 sort 排序(比如都将蓝色票放在第一位)

8 reducer 汇总

9 output 输出 (不可缺省)

实 *** :统计wk.txt文件中的xxxx个数

1.hadoop jar /usr/lib/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar

wordcount /data/wk.txt /2ban

2.hadoop fs -ls /2ban/

3.找到文件是part-r-00000打开即是统计数据

hadoop fs -cat 2ban/part-r-00000

        学习资料搜集:

Linux下如何在不解压jar包查看或修改配置文件_woshixianlaid的博客-CSDN博客_linux查看jar包文件内容

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4008114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-22
下一篇 2022-10-22

发表评论

登录后才能评论

评论列表(0条)

保存