zoukankan      html  css  js  c++  java
  • Hadoop 笔记1 (原理和HDFS分布式搭建)

    1. hadoop 是什么 以及解决的问题 (自行百度)

    2.基本概念的讲解

      1. NodeName  master 节点(NN)

         主节点 保存了metaData(元数据信息) 包括文件的owener和permission ,文件包换哪些block,block保存在哪个DataNode

         NameNode的metaData信息在启动时会加载 到内存

        ,操作文件的日志信息,edit文件,同时不断合并edit和fsimage 这两个文件就可以记录 HDFS 上所有文件的信息

      2.secondary NameNode (从节点)

        主要工作是帮助naneNode合并editslog,减少NN启动时间,原理如下

                  

      3. dataNode 

         实际保存存储的文件信息(Block)

         启动时dataNode线程会向NameNode汇报block信息

         像nameNode 发送心跳  如果namenode 10分钟没有收到则任务 datanode 挂了,并且copy block到其他DataNode

    4 hdfs

      文件按大小切分成固定大小的block块  存储到不同的datanode上 最少每个block块 会保存3个副本 防止数据丢失

    如下 红色色数据 分别存储待不同的机器上 保证数据不丢失

    分布式部署如下(centos 6.6 jdk 1.7 hadoop 2.5.1 )

    节点如下,四台机器
              NN     SNN     DN
    node1  1
    node2            1        1
    node3                      1
    node4                      1


    1. 主机名,防火墙,网络配置
    编辑 vi /etc/hosts 文件(保证4台机器可以通信),以下为配置域名
    192.168.109.113 node1
    192.168.109.114 node2
    192.168.109.222 node3
    192.168.109.121 node4
    关闭防火墙service iptable stop


    2 node1访问node2,3,4秘钥(不输入密码)


    Node1 ssh-keygen -t rsa 一路回车,node2,node3 node4 同样, 在家目录下执行创建秘钥对的命令,会生成.ssh目录
    scp authorized_keys root@node2:/root/.ssh/ 将node1 的秘钥拷复制到 node2,node2,node4 的/root/.ssh下即可实现免登陆
    scp authorized_keys root@node3:/root/.ssh/
    scp authorized_keys root@node4:/root/.ssh/
    ssh node2 就不用再输入密码了
    3 时间同步(保证四台机器时间一样,会有心跳检测)
    Ntp 安装 yum install ntp
    ntpdate s1a.time.edu.cn //北京大学的ntp 地址 用ntpdate选择时间服务即可
    实际中报错没有解决 ,最终在xhell中 选择全部会话 执行date –s 12:10:10 时间做了一个同步
    4 安装jdk
    Rpm –ivh jdk的rpm包,安装后默认在 /usr/java 下
    配置jdk环境的变量
    Vi /etc/profile
    export JAVA_HOME=/usr/java/jdk1.7.0_45
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$JAVA_HOME/bin:$PATH
    保存 java –version 查看是否安装成功

    5 hadoop 安装和配置
    tar –zxvf hadoop xx tar .gz

    配置文件位置/usr/local/hadoop-2.5.1/etc/hadoop
    core-site.xml
    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:9000</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/hadoopHDFS</value>
    </property>
    </configuration>

    配置hdfs-site.xml
    <configuration>
    <property>
    <name>dfs.replication</name>
    <value>3</value>
    </property>
    <!—下面已经制定snn>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node2:50090</value>
    </property>
    </configuration>

    配置hadoop_env.sh 修改java_home
    export JAVA_HOME=/usr/java/jdk1.7.0_45

    配合hadoop环境变量
    export HADOOP_HOME=/usr/local/hadoop-2.5.1
    export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

    配置master 和slaves
    vi /usr/local/hadoop-2.5.1/etc/hadoop/masters 写入node1,master 就是nameNode
    vi /usr/local/hadoop-2.5.1/etc/hadoop/slaves 写入node2,node3,node4


    统一拷贝配置文件保证每台都一样
    scp -r hadoop/ root@node4:/usr/local/hadoop-2.5.1/etc/
    scp -r hadoop/ root@node3:/usr/local/hadoop-2.5.1/etc/
    scp -r hadoop/ root@node2:/usr/local/hadoop-2.5.1/etc/

    6 格式化NN(bin下面)
    hdfs namenode –format

    7 启动
    start-dfs.sh

    查看每台的进程jps
    NN(node1)

    SNN(node2)
    DN(node2,node3,node4)
    Web 页面 http://192.168.109.113:50070/ nodeName的50070访问

      

  • 相关阅读:
    el-cascader回显问题
    nuxt + ueditor国际化
    nuxt + element + i18n 国际化element(我用的i18n@8.x版本)
    CDH| 组件的使用-Flume| Kafka| Oozie基于Hue的任务调度
    CDH| Hive| Hue| Sqoop| Impala等组件安装部署
    CDH| 组件的安装-HDFS的配置 | Flume| Kafka|
    Flink| 实时需要分析
    Flink| 状态一致性
    Flink| 容错机制
    Flink| 第一个窗口触发时间
  • 原文地址:https://www.cnblogs.com/lilefordream/p/5999838.html
Copyright © 2011-2022 走看看