深刻Hadoop

一、HDFS架构、启动过程node

  1)开发环境的准备apache

    a.安装Maven(用于管理项目依赖包)编程

      将apache-maven-3.0.5.tar.gz解压到/opt/models目录下缓存

      配置/etc/profile增长MAVEN_HOME和PATH,source /etc/profile服务器

      退出从新登陆mvn -version架构

      建立仓库目录~/.m2eclipse

      将repository.tar.gz上传到/opt/softwares目录下ssh

      解压到~/.m2目录下maven

      cp /opt/modules/apache-maven-3.0.5/conf/settings.xml .tcp

    b.安装Eclipse

      将tools中的Eclipse压缩包解压

      打开虚拟机进入eclipse目录运行./eclipse

      配置maven为本身的maven目录

    c.配置Eclipse与Maven插件

    d.设置Linux下Eclipse快捷键

二、HDFS Java API 使用

  1)获取文件系统

    a.Configuration类  -->Configuration conf = new Configuration();

    b.FileSystem类  -->FileSystem fileSystem = FileSystem.get(conf);  return fileSystem;

  2)获取输入流

    a.定义文件名  -->String fileName = "文件路径";

    b.Path类  -->Path readPath = new Path(fileName);  获取该文件的路径

    c.FSDataInputStream inStream = fileSystem.open(readPath);  获取输入流(从文件系统中)

    d.FileInputStream inStream = new FileInputStream("文件路径");  获取本地文件输入流

  3)获取输出流

    定义文件名putFileName并获取路径writePath

    FSDataInputStream outStream = fileSystem.create(writePath);  获取输出流

  4)读和写流

    try(

      IOUtils.copyBytes(inStream,outStream,4096,false);

    }catch(Exception e){

        e.printStackTrace();

     }final{

       IOUtils.closeStream(inStream);

       IOUtils.closeStream(outStream);

      }

三、YARN架构、应用监控

  1)safemode,namenode启动后进入safemode,等待datanode发送block report,等到达到阈值0.999后过30s退出safemode

    手动进入safemode模式:bin/hdfs dfsadmin -safemode enter(leave)

四、MapReduce编程模型

  1)一种分布式计算模型,MapReduce将整个并行计算过程抽象到两个函数

    a.Map:对一些独立元素组成的列表的每个元素进行指定的操做,能够高度并行

    b.Reduce:对一个列表元素进行合并

    c.数据的流向input-->map-->reduce-->output,以<key,value>对的形式流动

  2)

   3)MapReduce中的数据类型:  -->都要实现Writable接口,以便序列化进行传输,key要继承WritableComparable

      a.Text

      b.LongWritable

      c.IntWritable

      d.NullWritable  当key或value值为空时使用

      e.定义变量-->get,set方法-->构造方法-->重写equals,hashcode,tostring方法

        -->实现WritableComparable接口中write,readFields,compareTo方法

五、MapReduce Shuffle过程

六、集群搭建

七、集群基准测试  --》测试集群的性能

    a.吞吐量,namenode存储元数据的性能,yarn跑多个小做业时性能,

    b.监控集群  cloudera

八、使用ntp配置内网时间同步

    a.以一台机器做为时间服务器  -->rpm -qa | grep 'ntp'

      vi /etc/ntp.conf  修改三处

      vi /etc/sysconfig/ntpd  添加一行SYNC_HWCLOCK=yes

      service ntpd start

      chkconfig ntpd on

    b.其余机器定时同步  -->切换到root用户写脚本

      0-59/10 * * * * /usr/sbin/ntpdate localhost

 九、Zookeeper

十、HDFS HA    -->高可用性

    NameNode  Active

    NameNode  Standby

    核心:保证两个NameNode中的文件系统元数据同步  -->Shared Edits-->jornal node

        时刻知道DataNode的BLock Report    -->同时向两个NameNode发送报告

    client经过Proxy代理来选择Namenode,经过Zookeeper实现自动故障转移

    工做:1)Shared Edits

        2)standby Namenode

        3)proxy        

        4)两个Namenode的隔离性  -->同时只能有一个Namenode向client提供服务

            使用sshfence的方式须要配置两个namenode的无密码登陆

    依赖于zookee来实现自动故障转移

       a,将namenode从standby转换为active

          选举

      b.监控    -->ZKFC(failure Contronner):是Zookeeper的一个客户端

十一、中高级特性

  1)federation    -->联盟,不用应用可使用不一样的namenode进行数据管理

    多个namenode分别管理各自文件的元数据,数据都存储在全部的datanode上

  2)Snapshots    -->快照,只读的基于时间点的文件系统拷贝,只有元数据,没有数据的快照

  3)集中式缓存管理  -->容许用户将一部分目录或文件房子缓存中

  4)Distributed Copy  -->集群间的数据拷贝  bin/hadoop distcp

      不一样版本间的Hadoop集群拷贝走hftp协议

十二、YARN HA

相关文章
相关标签/搜索