首页 > 其他分享 >大数据学习之Hadoop

大数据学习之Hadoop

时间:2022-11-28 21:57:56浏览次数:32  
标签:node2 xxx Hadoop hadoop 学习 node1 序列化 数据

Hadoop是一个支持海量数据的分布式存储和分布式计算的平台     包含:         HDFS         YARN         MapReduce     分布式管理系统(HDFS)         主要就是把数据存放在多态服务器上         是MapReduce的基础     文件切分         文件存放在一个磁盘上效率是最低的             读取效率低             文件特别大会超出单击的存储范围         文件磁盘上以字节数组的方式存储         数组可以进行拆分和组装 源文件不会受到影响         还可以将切分后的数据按照数组的偏移量拼接到一起                 数据存储的原理:             不管文件的大小,所有的文件都是由字节数组构成             如果我们要切分文件,就是将一个字节数组分成多份             我们将切分后的数据拼接到一起,数据还可以继续使用             我们需要根据数据的偏移量将他们重新拼接到一起  

前期准备
    准备好三台虚拟机 master node1 node2
    同步时间:
    调整时区:
    检查java环境是否正常:java-version
    修改主机名:vim /etc/hostname
    关闭防火墙:
    配置网络:
    免密登陆
        ssh-keygen -t rsa 三次回车
        ssh-copy-id master
        ssh-copy-id node1
        ssh-copy-id node2
    配置好映射文件:
        vim /etc/hosts
        192.168.100.100:master
        192.168.100.110:node1
        192.168.100.120:node2

搭建Hadoop环境
    1、上传Hadoop安装包到、usr/local/soft/解压
    2、配置系统环境变量
        export HADOOP_HOME=/usr/local/soft/hadoop-2.7.6
        export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin
        加载环境变量使其生效 source /etc/profile
    3、修改hadoop配置文件(可以根据实际的需求来配置自定义文件)
        在/usr/local/soft/hadoop-2.7.6/etc/hadoop目录下存放着与Hadoop相关的配置文件
        1)hadoop-env.sh
            export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
        2)core-site.xml
        3)hdfs-site.xml
        4)mapared-site.xml
        5)yarn-site.xml
        6)slaves

    4、将配置好的hadoop分发到node1 node2节点上
        scp -r hadoop-2.7.6/ node1:`pwd`
        scp -r hadoop-2.7.6/ node2:`pwd`
    5、格式化NameNode
        hdfs namenode -format
    6、启动hadoop集群检查各个节点是否正确
        start-all.sh
        master:namenode ResourceManager secondarynamenode
        node1,node2:datanode nodemanager
    

 Hadoop序列化的问题

序列化
    把内存中的对象转化为字节序列(或者其他传输协议)以便于存储到磁盘(持久化)和网络传输
反序列化
    将收到的字符序列或者是次磁盘的持久化数据 转化为内存中的对象

特点:
    紧凑、快速、可扩展、互操作

自定义bean对象实现序列化接口
    在Hadoop框架内传递一个bean对象 那么该对象就需要实现序列化接口(Writable)
    步骤:
        1、实现Writable接口
        2、反序列化的时候需要调用空参构造函数,所以必须有空参构造方法
            public FlowBean(){
                super();
            }
        3、重写序列化方法
            public void write(DataOutPut out) throw Exception{
                out.writexxx(xxx);
                out.writexxx(xxx);
                out.writexxx(xxx);
            }
        4、重写反序列化方法
         public void readFields(DataInput in) throw Exception{
            xxx=in.readxxx();
            xxx=in.readxxx();
            xxx=in.readxxx();
         }
         注意反序列化的顺序和和序列化顺序要一致
        5、要把结果显示在文件中,需要重写toString方法 可用"\t"分开
        6、如果想要把自定义的bean放入key中传输,则需要实现Comparable接口,因为MapReduce框架中的Shuffle过程要求对key进行排序

 

标签:node2,xxx,Hadoop,hadoop,学习,node1,序列化,数据
From: https://www.cnblogs.com/lkd0910/p/16933735.html

相关文章