• 大数据基础之hdfs3


    1、hdfs的副本的配置

    修改hdfs-site.xml文件

    <!-- 注释配置数据块的冗余度,默认是3 -->
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    <!--注释配置HDFS的权限检查,默认是true-->
    <property>
    <name>dfs.permissions</name>
    <value>false</value>
    </property>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hsiehchou122:50090</value>
    </property>

    需要同步到其它机器:

    scp hdfs-site.xml hsiehchou122:$PWD
    scp hdfs-site.xml hsiehchou123:$PWD
    scp hdfs-site.xml hsiehchou124:$PWD

    这里我划重点(亲自经历)
    如果原来的分布式hadoop集群的主节点有Secondary NameNode,需要配置到其他节点,因为如果主节点挂了,其也是挂了,它的作用是在HDFS中提供一个检查点,相当于NameNode的助手节点
    职责是:合并NameNode的edit logs到fsimage文件中

    2、hadoop启动方式

    1)启动hdfs集群
    start-dfs.sh
    2)启动yarn集群
    start-yarn.sh
    3)启动hadoop集群
    start-all.sh

    3、大数据干什么的

    1)海量数据的存储(mysql/oracle)
    分布式文件系统hdfs
    dfs->Hdfs
    mapreduce->mapreduce
    bigtable->hbase
    分而治之!

    2)海量数据的计算
    分布式计算框架mapreduce
    配置checkpoint时间

    <property>
    <name>dfs.namenode.checkpoint.period</name>
    <value>7200</value>
    </property>

    systemctl set-default graphical.target由命令行模式更改为图形界面模式
    systemctl set-default multi-user.target由图形界面模式更改为命令行模式

    4、hdfs-namenode工作机制

    0、加载编辑日志与镜像文件到内存(NameNode)
    edits_0001
    edits_0002
    fsimage fsimage fsimage
    1、客户端发起命令(client)
    hdfs dfs -ls /
    2、滚动正在写的edits(NameNode)
    3、记录操作日志更新 滚动日志(NameNode)
    4、拷贝到Secondary NameNode
    NameNode请求是否需要checkpoint

    Secondary NameNode
    触发checkpoint条件:
    1、定时的时间
    2、edits中数据已满
    Secondary NameNode请求执行checkpoint
    5、加载内存进行合并
    6、生成镜像fsimage.checkpoint
    7、拷贝到NameNode
    8、NameNode对fsimage.checkpoint重命名成fsimage

    hadoop2.8.4

    安装部署
    1)准备工作
    设置主机名:vi /etc/hostname
    注意:需要重启 reboot
    设置映射:vi /etc/hosts
    设置免密登录:ssh-keygen
    ssh-copy-id hd-01

    2)安装jdk
    上传安装包
    CRT:alt+p
    解压
    tar -zxvf .tar.gz
    配置环境变量

    export JAVA_HOME=/root/hd/jdk1.8.0_192
    export PATH=$JAVA_HOME/bin:$PATH

    注意:需要source /etc/profile
    分发jdk
    scp jdk hd-02:/root/hd
    scp /etc/profile hd-02:/etc/
    source /etc/profile

    3)安装hadoop
    上传安装包
    alt + p
    解压
    tar -zxvf .tar.gz
    修改配置文件
    core-site.xml

    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hsiehchou121:9000</value>
    </property>

    hdfs-site.xml

    <property>
    <name>dfs.namenode.name.dir</name>
    <value>/root/hd/dfs/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>/root/hd/dfs/data</value>
    </property>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hsiehchou122:50090</value>
    </property>

    mapred-site.xml

    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>

    yarn-site.xml

    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hsiehchou121</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
    </property>
    <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
    </property>

    配置环境变量

    export HADOOP_HOME=/root/hd/hadoop-2.8.4
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

    修改slaves文件加入从节点
    格式化namenode
    hadoop namenode -format
    启动:start-all.sh

    hadoopMapReduce

    官方:Apache™Hadoop®项目开发了用于可靠,可扩展的分布式计算的开源软件
    Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式处理
    大型数据集。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和
    存储。该库本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用层的故
    障,从而在计算机集群之上提供高可用性服务,每个计算机都可能容易出现故障
    阿里的Flink(9000万欧元) Blink

    MapReduce分布式计算程序的编程框架。基于hadoop的数据分析的应用
    MR优点:
    1)框架易于编程
    2)可靠容错(集群)
    3)可以处理海量数据(1T+ PB+) 1PB = 1024TB
    4)拓展性,可以通过动态的增减节点来拓展计算能力

    MapReduce的思想

    数据:海量单词
    hello reba
    hello mimi
    hello liya
    mimi big
    需求:对每个单词出现的次数统计出来
    思想:分而治之!
    解决方式:
    1)每个单词记录一次(map阶段)
    <hello,1> <reba,1> <hello,1> <mimi,1>
    2)相同单词的key不变,value累加求和即可(reduce阶段)
    <hello,1+1+1>
    对数据进行计算

    对wordcount例子程序分析

    1)整个wordcount分为几个阶段?
    三个
    2)有哪几个阶段?
    mapper
    reducer
    driver
    3)每个阶段有什么作用
    mapper:对数据进行打散<hello,1><mimi,1>
    reducer:对数据进行聚合<hello,1+1+1>
    driver:提交任务
    4)详解

    Mapper阶段

    将数据转换为String
    对数据进行切分处理
    把每个单词后加1
    输出到reducer阶段

    Reducer阶段

    根据key进行聚合
    输出key出现总的次数

    Driver阶段

    创建任务
    关联使用的Mapper/Reducer类
    指定mapper输出数据的kv类型
    指定reducer输出的数据的kv类型
    指定数据的输入路径与输出路径
    提交

    hadoop数据类型

    我们看到的wordcount程序中的泛型中的数据类型其实是hadoop的序列化的数据类
    型。
    为什么要进行序列化?用java的类型行不行?(可以)
    Java的序列化:Serliazable太重。
    hadoop自己开发了一套序列化机制。Writable,精简高效。海量数据。
    hadoop序列化类型与Java数据类型

    Java数据类型 Hadoop序列化类型
    int IntWritable
    long LongWritable
    boolean BooleanWritable
    byte ByteWritable
    float FloatWritable
    double DoubleWritable
    String Text

    wordcount测试

    1)本地模式
    2)集群模式
    hadoop jar .jar wordcount /wc/in /wc/out

    hadoop jar mapreduce-1.0-SNAPSHOT.jar 全类名 /wc/in /wc/out

  • 相关阅读:
    Loadrunner的Tuxedo脚本分析,基本流程和基本函数介绍
    安装ArcGIS Server 9.2的一些建议
    .obj,.lib,.dll,.h之间的相互关系
    中国Albers 投影参数设置参考资料
    投影常识
    vc++2005环境中静态调用DLL(隐式)
    设置GDAL_DATA环境变量
    开源代码搜索利器Koders
    更正GDAL_DATA设置一文错误
    2007年的元宵节
  • 原文地址:https://www.cnblogs.com/hsiehchou/p/10403445.html
Copyright © 2020-2023  润新知