大数据Hadoop之分布式模式

资料

  • Hadoop集群常用端口 Hadoop集群常用端口

  • Q:NameNode是什么?

    A:NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。 它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。NameNode本身不可避免地具有SPOF(Single Point Of Failure)单点失效的风险,主备模式并不能解决这个问题,通过Hadoop Non-stop namenode才能实现100% uptime可用时间。

  • Q:DataNode如何理解?

    A:DataNode 也是一个通常在 HDFS实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。
    DataNode 响应来自 HDFS 客户机的读写请求。它们还响应来自 NameNode 的创建、删除和复制块的命令。NameNode 依赖来自每个 DataNode 的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode 可以根据这个报告验证块映射和其他文件系统元数据。如果 DataNode 不能发送心跳消息,NameNode 将采取修复措施,重新复制在该节点上丢失的块。

  • Q:如何理解Google集群系统原型?

    A:Google的数据中心使用廉价的Linux PC机组成集群,在上面运行各种应用。核心组件是3个:
    (a) GFS(Google File System)。一个分布式文件系统,隐藏下层负载均衡,冗余复制等细节,对上层程序提供一个统一的文件系统API接口。Google根据自己的需求对它进行了特别优化,包括:超大文件的访问,读操作比例远超过写操作,PC机极易发生故障造成节点失效等。GFS把文件分成64MB的块,分布在集群的机器上,使用Linux的文件系统存放。同时每块文件至少有3份以上的冗余。中心是一个Master节点,根据文件索引,找寻文件块。详见Google的工程师发布的GFS论文。
    (b) MapReduce。Google发现大多数分布式运算可以抽象为MapReduce操作。Map是把输入Input分解成中间的Key/Value对,Reduce把Key/Value合成最终输出Output。这两个函数由程序员提供给系统,下层设施把Map和Reduce操作分布在集群上运行,并把结果存储在GFS上。
    (c) BigTable。一个大型的分布式数据库,这个数据库不是关系式的数据库。像它的名字一样,就是一个巨大的表格,用来存储结构化的数据。

  • 配置

    如果不能查看,看如下帖子处理
    http://www.cnblogs.com/zlslch/p/6604189.html

伪分布式模式

Hadoop运行模式

Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式

启动HDFS并运行MapReduce程序

伪分布式只有一台 ,且按照完全分布式的流程来搭建的。

  • 配置:core-site.xml

    <!-- 指定HDFS中NameNode的地址 -->
    <property>
    <name>fs.defaultFS</name><!--本地的文件系统-->
      <value>hdfs://cznczaihadoop101:9000</value><!--默认是本地的,然后将其改成hdfs-->
    </property>
    <!-- 指定Hadoop运行时产生文件的存储目录 -->
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/opt/module/hadoop-2.10.0/data/tmp</value>
    </property><!--改到了hadoop目录下-->
  • 配置:hadoop-env.sh

    如果没法获取路径 就要 source etc/profile
    root@cznczaihadoop101:/opt/module/hadoop-2.10.0# java -version
    java version "1.8.0_241"
    Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
    Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
    root@cznczaihadoop101:/opt/module/hadoop-2.10.0# echo $JAVA_HOME
    /opt/module/jdk1.8.0_241
  • hadoop集群上的副本有3
    我们修改为2 只要添加立即备份 原来只有一份

  • 配置:hdfs-site.xml

    <!-- 指定HDFS副本的数量 -->
    <property>
      <name>dfs.replication</name>
      <value>1</value>
    </property>
  • 格式化NameNode(第一次启动时格式化,以后就不要总格式化)

    root@cznczaihadoop101:/opt/module/hadoop-2.10.0# bin/hdfs namenode -format
  • 启动NameNode

    root@cznczaihadoop101:/opt/module/hadoop-2.10.0# sbin/hadoop-daemon.sh start namenode
  • 启动DataNode

    root@cznczaihadoop101:/opt/module/hadoop-2.10.0# sbin/hadoop-daemon.sh start datanode
  • 查看进程

    JPS

    图片说明

  • 查看是否运行

    http://192.168.47.101:50070/

    图片说明

  • 使用
    图片说明

  • 创建路径

    root@cznczaihadoop101:/opt/module/hadoop-2.10.0# bin/hdfs dfs -mkdir -p /user/cznczai/input

    图片说明

    图片说明

  • 上传文件HDFS

    root@cznczaihadoop101:/opt/module/hadoop-2.10.0# bin/hdfs dfs -put wcinput/wc.input /user/cznczai/input

    图片说明
    权限 所有者 组 大小 时间 副本数 块大小【溢出为新块】

  • 测试运行

    # bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount  /user/cznczai/input/wc.input /user/cznczai/ouput

    图片说明

伪分布式 Log日志查看和NN格式化

格式化NameNode

  • 查看进程有没有关掉 jps
  • 删除 data logs 目录
  • 格式化

为什么不能一直格式化NameNode,格式化NameNode,要注意什么

  • data记录的是实实在在集群上的数据
    name文件夹 namenode的数据
    图片说明
    有相同的集群id 如果其中一个对不上对面 就会出错
    图片说明

    图片说明

    原因
    图片说明

启动YARN并运行MapReduce程序

  • 配置yarn-env.sh
    配置一下JAVA_HOME
  • 配置yarn-site.xml
    vim etc/hadoop/yarn-site.xml
    <!-- Reducer获取数据的方式 shuffle-->
    <property>
           <name>yarn.nodemanager.aux-services</name>
           <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定YARN的ResourceManager的地址 服务器地址-->
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>cznczaihadoop101</value>
    </property>
  • 配置:mapred-env.sh
  • 配置: (用mv命令 对mapred-site.xml.template重新命名为) mapred-site.xml
    <!-- 指定MR运行在YARN上 -->
    <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
    </property>
  • 启动集群[namenode 和 datanode 已经启动了]
    root@cznczaihadoop101:/opt/module/hadoop-2.10.0# sbin/yarn-daemon.sh  start resourcemanager
    root@cznczaihadoop101:/opt/module/hadoop-2.10.0# sbin/yarn-daemon.sh  start nodemanager
全部评论

相关推荐

孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务