1855 0

[Hadoop] Hadoop从初级到资深的必知必会35问(1) [推广有奖]

  • 0关注
  • 66粉丝

教授

55%

还不是VIP/贵宾

-

威望
1
论坛币
13016 个
通用积分
63.9349
学术水平
26 点
热心指数
25 点
信用等级
15 点
经验
8663 点
帖子
617
精华
0
在线时间
170 小时
注册时间
2016-12-6
最后登录
2017-4-8

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

1、hadoop是什么?
  适合大数据的分布式存储与计算平台
2、hadoop版本有哪些?
  ①Apache:官方版本(1.1.2)
  ②Cloudera:使用下载最多的版本,稳定,有商业支持,在Apache的基础上打上了一些patch。推进使用。
  ③Yahoo:Yahoo内部使用的版本,发不过两次,已有的版本都放到Apache上,后续不再继续发布,在集中在Apache的版本上。
3、hadoop核心项目
  ①HDFS:Hadoop Distributed File System分布式文件系统
  ②MapReduce:并行计算框架
4、HDFS的架构
  1). 主从结构
     ①主节点,只有一个:namenode
     ②从节点,有很多歌:datanodes
  2). namenode负责
     ①接收用户请求
     ②维护文件系统的目录结构
     ③管理文件与block之间关系,block与datanode之间关系。
  3). datanode负责
     ①存储文件
     ②文件被分成block存储在磁盘上
     ③为保证数据安全,文件会有多个副本
5、MapReduce的架构
  1)、主从结构
     ①主节点,只有一个:JobTracker
     ②从节点,有很多个:TaskTrackers
  2)、JobTracker负责
     ①接收客户提交的计算任务
     ②把计算任务分给TaskTrackers执行
     ③监控TaskTracker的执行情况
  3)、TaskTracker负责
     ①执行JobTracker分配的计算任务
6、hadoop的特点
  1). 扩容能力(Scalable):能可靠地存储和处理千兆字节(PB)数据
  2). 成本低(Economical):可以通过普通机器这些服务器群总计可达数千个节点。组成服务器群来分发以及处理数据。
  3). 高效率(Efficient):通过分发数据,hadoop可以在数据所在的节点上并行地处理他们,这使得处理速度非常的快速。
  4). 可靠性(Reliable):hadoop能自动地维护数据的多份副本,并且能在任务计算失败后能自动地重新部署计算任务。
7、hadoop部署方式
  1). 本地模式
  2). 伪分布模式
     搭建步骤:
       ①关闭防火墙
       ②设置IP
       ③设置主机名
       ④设置SSH免登陆模式
       ⑤主机名和IP绑定
       ⑥JDK安装与环境变量配置
       ⑦hadoop安装与环境变量配置
  3). 集群模式
     搭建步骤:
       ①确定集群环境
       ②在伪分布基础上搭建
       ③集群各节点之间必须ssh免密码登陆。ssh-copy-id -i slavenode
       ④删除hadoop中的tmp
       ⑤把JDK,hadoop负责到其他节点。scp -rq /etc/profile hadoop01:/etc/profile
       ⑥修改主节点的slaves文件

8、hadoop的目录
  1. bin目录:存储一些启动和停止文件
  2. conf目录:存放hadoop一些配置文件
  ……
9、如何运行jar包中的hadoop程序。

       hadoop jar linux中jar包的路径 jar包主类(打jar的时候选择主类就可以不写) args0 args1 ….
      
  1. 查看jar包里面的hadoop内置的程序:hadoop jar hadoop-examples-1.1.2.jar   
  2. 运行jar包里面的hadoop内置的程序:hadoop jar hadoop-examples-1.1.2.jar wordcount
  注意:MR打包运行,与一般的运行的区别,类 extends Configured implements Tool;
              job.setJarByClass(WordCountApp.class);//打包运行必须执行的秘密方法

10、HDFS的shell命令
   1. 调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式
   2. 所有的FS shell命令使用URI路径作为参数。
   3. 大多数FS Shell命令的行为和对应的Unix Shell命令类似。
   
   -help [cmd]    //显示命令的帮助信息
       -ls(r)     //显示当前目录下所有文件
       -du(s)     //显示目录中所有文件大小
       -count[-q]     //显示目录中文件数量
       -mv     //移动多个文件到目标目录
       -cp     //复制多个文件到目标目录
       -rm(r)        //删除文件(夹)
       -put     //本地文件复制到hdfs
       -copyFromLocal    //同put
       -moveFromLocal    //从本地文件移动到hdfs
       -get [-ignoreCrc]     //复制文件到本地,可以忽略crc校验
       -getmerge         //将源目录中的所有文件排序合并到一个文件中
       -cat     //在终端显示文件内容
       -text     //在终端显示文件内容
       -copyToLocal [-ignoreCrc]     //复制到本地
       -moveToLocal
       -mkdir     //创建文件夹
       -touchz     //创建一个空文件

11、Namenode文件包过
   1. fsimage:元数据镜像文件。储存某一时段NameNode内存元数据信息。
   2. edits:操作日志文件
   3. fstime:保存最近一次checkpoint的时间
   注意:以上这些文件是保存在linux的文件系统中。
   
12、Datanode
   1. 文件块(block):最基本的存储单位。HDFS默认Block大小是64MB。
   2. 不同于普通文件系统的是,如果一个文件小于一个数据块的大小,并不占用整个数据库存储空间。
   3. Replication:多副本,默认是三个。

13、SecondaryNameNode
   1. HDFS的高可用性(HA)的一个解决方案。但不支持热备。配置即可。
   2. 执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fstime,
      在本地保存,并将其推送到NameNode,同时重置NameNode的edits。
   3. 默认安装在NameNode节点上,但这样…不安全!

14、HDFS的java访问接口——FileSystem
   1. 写文件:create
   2. 读取文件:open
   3. 删除文件:delete
   4. 创建目录:mkdirs
   5. 删除文件或目录:delete
   6. 列出目录的内容:listStatus
   7. 显示文件系统的目录和文件的元数据信息:getFileStatus

15、RPC
   1. 远程过程调用协议
   2. RCP采取客户机/服务器模式。
   3. hadoop的整个体系结构就是构建在RPC之上的。
   
          ————-问答开始—————
问题:
       hdfs的组成部分有哪些,分别解释一下?
          namenode,datanode
       hdfs的高可靠如何实现?
           具体实现,借助DRBD、HeartbeatHA实现主备切换。
       使用DRBD实现两台物理机器之间块设备的同步,即通过网络实现Raid1,
       辅以Heartbeat HA实现两台机器动态角色切换,对外(DataNode、DFSClient)使用虚IP来统一配置。
       这种策略,可以很好地规避因为物理机器损坏造成的hdfs元数据丢失,
       (这里的元数据简单地说,就是目录树,以及每个文件有哪些block组成以及它们之间的顺序),
       但block与机器位置的对应关系仅会存储在NameNode的内存中,
       需要DataNode定期向NameNode做block report来构建。
       因此,在数据量较大的情况下,blockMap的重建过程也需要等待一段时间,对服务会有一定的影响。
       hdfs的常用shell命令有哪些?
       hdfs的常用java api有哪些?
       请用shell命令实现目录、文件的增删改查?
       请用java api实现目录、文件的增删改查?


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Hadoop Had Replication distributed Economical Hadoop Hadoop基础知识 Hadoop入门基础 Hadoop核心项目 Hadoop集群

本帖被以下文库推荐

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 09:09