Hadoop基础学习(一)

1.   Hadoop是适用于大数据的分布式存储与计算平台。

2.   Hadoop的两大核心组成:

a)     HDFS:分布式文件系统

b)    MapReduce:并行计算框架

3.   HDFS:是一个主从机构。Namenode主,datanodes从。

4.   HDFS的两大核心:namenode和datanode。

a)     Namenode是整个文件系统的管理节点,维护整个系统的文件目录,文件、目录的元数据和每个文件对应的数据块列表,负责接收用户的请求。

b)    Datanode负责存储数据。

5.   Hadoop的特点:

a)     扩容能力:能可靠的存储和处理千兆字节数据。

b)    成本低,可通过普通机器组成服务器群来分发以及处理数据。

c)     高效率:通过分发数据,可以在数据所在的节点上并行处理。

d)    可靠性:能自动维护数据的多份副本。

6.   SSH(secure shell):执行后启动hadoop就不需要输入密码(免密码登录):

a)     Cd ~后执行ssh-keygen -t rsa或ssh -keygen -t dsa -P ''-f ~/.ssh/id_dsa,然后回车回车再回车。

b)    执行命令cp id_rsa.pub authorized_keys或者cat~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys就行了。

c)     验证ssh localhost。

7.   SSH免密码登录对hadoop的好处是什么:免密码登录对于hadoop最大的好处就是,一台namenode服务器可以启动其他datanode服务器,无需再次花费时间去启动其他服务器。

8.   免密码登录的原理:在nadanode服务器上生成秘钥,再将秘钥远程复制到其他服务器上。

9.   安装hadoop之前首先需要先安装jdk。

10. Hadoop安装步骤:

a)     设置ip。

b)    绑定主机名和ip地址。

c)     关闭防火墙。

d)    Ssh(secure shell):安全shell

e)     安装jdk

f)      安装hadoop

11. Hadoop的伪部署步骤:

a)     修改hadoop的conf目录下的四个配置文件:

                      i.             Hadoop-env.sh:打开文件第9行修改jkd的位置。

                   ii.             Core-site.xml:修改内容如下:

<configuration>

     <property>

         <name>fs.default.name</name>

         <value>hdfs://localhost:9000</value>

         <description>改成自己的主机名:比localhost</description>

     </property>

     <property>

         <name>hadoop.tmp.dir</name>

         <value>/usr/local/hadoop/tmp</value>

     </property>

</configuration>

                iii.             Hdfs-site.xml:修改如下:

<configuration>

     <property>

         <name>dfs.replication</name>

         <value>1</value>

         <description>改成自己的主机名:比localhost</description>

     </property>

     <property>

         <name>dfs.permissions</name>

         <value>false</value>

     </property>

</configuration>

                iv.             Mapred-site.xml:修改如下:

<configuration>

     <property>

         <name>mapred.jod.tracker</name>

         <value>localhost:9001</value>

         <description>改成自己的主机名:比localhost</description>

     </property>

</configuration>

b)    执行命令:hadoop namenode -format对hadoop进行格式化。如果有/usr/local/hadoop/tmp/dfs/name has been successfully formatted.代表格式化成功。

c)     执行命令start-all.sh进行启动hadoop。

d)    验证:执行命令jps,可以发现5个java进程。Jobtracker、datanode、namenode、jps、SecondaryNameNode或者使用http://localhost:50070http://localhost:50070进行浏览器(linux浏览器)验证。

12. 如果多次格式化hadoop也是错误的,解决的方法是:删除/usr/local/hadoop/tmp文件夹,再次格式化。

13. 如何解决hadoop启动时报出的一个警告。

14. 分布式文件管理系统有很多,hdfs只是其中的一种,而且适用于一次写多次读查询的情况,也就是说,一次写完就存储,如果想再次修改或者继续写入是不行的,只能删除重新写入,而且是不适用于并行写入的。

15. Hdfs相当于寄生在操作系统上的另一个操作系统(文件管理系统),那么他在系统中的操作指令跟linux差不多,但是需要在前面加上hadoop fs xxx,例如需要查询文件管理系统的目录结构,hadoop fs -ls /就行,如果需要递归查看目录使用lsr指令。

16. 创建文件夹的指令hadoop fs –mkdir/文件夹名称。

17. 查看某个文件夹下面的内容:hadoopfs –ls /dir。

18. 如果要上传某个文件到hdfs文件管控系统上,指令如下:hadoop fs –put /需要上传文件的地址 /目标地址。(从下面开始省略hadoop fs 直接写后缀就行)。

19. –mkdir 文件夹名称,创建一个文件夹。

20. 如果重复添加同一个文件到同一个文件夹就会报错:put: Target /ceshi already exists,是不会默认覆盖操作的。

21. 如果上传文件的目的文件夹不存在,则默认上传的文件的名称就是不存在的文件夹名称。相当于把要上传的文件内容写入到新的文件中去。

22. 下载文件指令:–get 文件地址  目的地址,如果需要下载到的目的地址正好是linux的当前目录下面的时候可以用.表示。

23. 查看文件的指令:-text 文件地址。

24. 删除文件指令:-rm 文件地址。删除文件夹-rmr 文件夹地址。

25. 直接输入hadoop指令,可以查看hadoop的所有二级指令。二级指令下面还有三级指令,只需要在hadoop后面写上二级指令。

26. Hadoop fs –help 指令名称:可以解释当前指令的用法。

27. Hadoop fs –指令 /:相当于25. Hadoop fs –指令 hdfs://localhost:9000/:之前的都是简化版

28. 但是将来开发的过程中会从特定的服务器去文件,这个时候是绝对不能省略的,目前咱们的服务器是本地,所以是可以省略的。

29. 所以core-site.xml中fs.default.name设置的value就是这个默认的服务器和端口。

30. Namenode的元数据信息包括:

a)     文件owership和permission

b)    文件包括哪些块

c)     Block保存在哪个datenode上(当服务器启动的时候自动上报给namenode)

31. NameNode体系结构:namenode有两个重要的文件:fsimage、edits

a)     Fsimage:主要用于存储所有文件的元数据信息,当服务器启动时,fsimage的元数据信息会被从磁盘中读到内存中,但是不会加载block位置信息,因为会有block自动上报。

b)    Edits:主要记录了元数据信息的操作日志。比如:需要新增/删除一个文件,这个时候不会直接去把fsimage中新建/删除一个元数据信息,而是要当新增/删除完全之后,过一段时间需要由secondarynamenode去合并edits和fsimage中元数据信息,类似于关系型数据库中的事务。

32. SecondaryNameNode的作用:将edits与fsimage进行合并,并复制到本地和内存中,同时将edits进行清空。

33. SecondaryNameNode合并时机,有两种机制:

a)     通过时间进行合并,默认3600秒合并一次(可在配置文件中配置)

b)    通过edits的大小进行合并,默认当edits的大小达到64M是进行整合。

34. SecondaryNameNode的合并机制:当edits与fsimage合并时,将edits、fsimage复制到本地,同时清空edits,合并完成后讲fsimage复制一份,然后存放本地后再给namenode发送一份,替换原先的fsimage。所以SecondaryNameNode尽量不要跟namenode在同一个服务器上,一旦namenode挂机后可以通过SecondaryNameNode恢复99%的数据信息。

35. DataNode:存储、启动上报信息、发送心跳数据3s一次(将本地的fsimage文件上传到内存中去,实时更新元数据信息),如果十分钟之内不上namedate默认datanode的服务器down,然后将其他服务器的block副本复制到其他服务器。

36. Block的副本放置策略:

a)     第一个副本:存放在cpu不忙的服务器上。

b)    第二个副本:存放在不同的机架上的服务器,防止同一个机架上同一个插座。(配置文件中会配置机架的编号)

c)     第三个副本:与第二个副本同一个机架就行了。

d)    其他更多的副本就随意放置了。

37. Block大小和副本通过client上传时,文件上传成功后副本数可以改变,但是block size不可变更。

38. HDFS的读取文件的流程:

a)     Client请求通过FileSystem的open方法请求namenode,namenode将相关的元数据信息返回给client。

b)    Client获取元数据信息,通过inputstream去不同的datanode读取block,将block整合成最终的文件。

39. HDFS的写文件的流程:

a)     Client请求通过FileSystem的create方法请求nodename,namenode将该文件的元数据信息返回给client。这里的元数据是namenode计算出来的,比如:这个文件切几片、放在哪几个datanode上等等。

b)    Client获取到元数据信息,通过outputstream方法将block写进不同的datanode中去。

40. HDFS的安全模式指的是:hdfs刚启动时需要等待一段时间,这段时间就叫安全模式时间。

41. HDFS的安全模式时间做的工作:将fsimage加载到内存,datanode上报心跳数据,初始化edits等。

42. Hadoop的工作目录是由hadoop.tmp.dir的value决定的。

43. Hdfs-site的配置文件中dfs.replication配置的是datanode的副本数。默认为3。

44. Slave配置文件:在conf文件夹下面的slave文件配置datanode的ip地址或者服务器名称。

45. Masters配置文件:在conf文件夹下面的mastres文件配置SecondaryNameNode的服务器ip地址或者服务器名称。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值