hadoop-1

1.hadoop日志目录配置

hadoop-env.sh进行配置 

2.Hadoop配置文件


 1. core.site.xml : 配置namenode相关的主机和端口
     <property>
         <name>fs.default.name</name>
         <value>hdfs://master:9000</value>
    </property>
 2.mapred.site.xml : 配置JobTracker的主机和端口
    <property>
        <name>mapred.job.tracker</name>
        <value>master:9001</value>
    </property>
    <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
hadoop2支持第三方 MapReduce 开发框架以支持如 SmartTalk/DGSG 等非 Yarn 架构,
注意通常情况下这个配置的值都设置为 Yarn,如果没有配置这项,那么提交的 Yarn job 只会运行在 locale 模式,
而不是分布式模式.
 3.slave : 配置DataNode 和 TaskTracker 的信息

 4.hdfs.site.xml : 配置HDFS 的相关信息

3.hadoop Shell脚本


 1. start-all.sh : 只在master节点上运行,当使用该脚本时,会先调用 start-dfs.sh,
     再调用start-yarn.sh
 2. start.dfs.sh : 在master 节点上运行.
     在启动时,先启动namenode,再启动datanode,最后启动secondaryNamenode
     调用的是hadoop-daemons.sh(start namenode,start datanode,
     --hostname start secondarynamenode) 脚本.
 3. 在启动服务时候 start.dfs.sh --config CONFIG_DIR:
     该选项方便升级使用,

4.HDFS 架构


 1. 文件:文件切分为块(64M),以块为单位,存放在不同的主机上,默认副本数为3.
 2. NameNode : 是主节点
      1).存放文件的的元数据(文件名,文件属性,文件的块列别及其所在的位置等信息).
      2).负责处理文件内容的读写请求(告诉客户端文件的位置及其他信息),相关的数据流不会经过NameNode 节点.
      3).副本的存放位置由NameNode决定,读取文件数据时先读取用户最近的副本.
      4).NameNode 周期性的收集DataNode发送的心跳信号和块状态报告
      (心跳:表明DataNode正常工作|块状态报告:表明DataNode都有哪些数据块,**安全模式下检测**).
 3. DataNode : 存放数据
      1).在本地文件系统存储文件块数据以及数据的校验和和时间戳.
      2).周期性的向NameNode发送块报告(一小时).
      3).周期性发送心跳信号(3秒),心跳返回结果带有NameNode给该DataNode的命令(比如复制数据库到另一台机器),
          若10分钟没有收到DataNode的心跳信号,则认为该DataNode不可用.
 4. 权限中的 x 对于文件是忽略的,对于目录表示是否可以访问.
 5. 集群在运行的过程中可以安全的加入或退出一些机器.
 6. 副本存放策略:
     副本1:同client的节点上.
     副本2:和副本1不同的机架上.
     副本3:和副本2同机架的不同机器上.
 7. 数据损坏:NameNode 标记该块已经损坏,赋值块达到预期的备份数.DataNode在文件创建三周后验证checksum.

5.HDFS文件读写


 1. 文件的读取: 
     1).Client通过FileSystem.open()方法从NameNode获取文件块(部分block或全部block)所在的位置
     2).选取离Client最近的一个DataNode建立连接,并且返回一个FSDataInputStrean流.
     3).Client开始读取block信息,当读取到block的结尾时,FSDataInputStream关闭与当前DataNode的连接,
         并为读取下一个block做准备(仍然选取最近的).
     4).若block读取完之后文件还没有结束,则会再次通过NameNode获取下一批的block.
     5).Client在读取block时会进行checksum验证,若有错,会报告到NameNode,换下一个block继续读取.
 2.文件的写入:
     1).通过FSFileSystem的create方法向NameNode发出请求,在NameNode中创建新的文件,
         但是并不关联任何数据块. 
     2).NameNode检查文件是否存在/操作权限,如果通过,NameNode记录新文件信息,
         并在某一DataNode上创建数据块.
     3).返回FSDataOutputStream,由Client执行write操作.
     4).FSDataOutputStream将数据写到第一个DataNode上,然后由DataNode进行复制到其他的节点.
     5).block完成复制后,NameNode返回成功消息.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值