• hadoop


    前置条件:

    Linux + JDK

    master-slave架构:

    masters: NameNode + ResourceManager

    slaves: DataNode/NodeManager

    守护进程:

    HDFS: NameNode, SecondaryNameNode, DataNode

    YARN: ResourceManager, NodeManager, WebAppProxy

    MapReduce: Map Reduce Job History Server

    适合一次写入多次读取

    客户端联系Namenode以获取文件的元数据或修饰属性,而真正的文件I/O操作是直接和Datanode进行交互的。

    周期心跳和块状态报告

    状态监控:

    NodeManager周期执行管理员定制脚本,当脚本检测到unhealthy state,会输出ERROR。

    NodeManager检查到输出ERROR,则上报unhealthy,并被ResourceManager加入黑名单。

    脚本继续执行,自动恢复。

    通过在etc/hadoop/yarn-site.xml配置脚本路径、选项、周期、超时、硬盘健康最小阈值。

    配置管理:

    只读配置:core-default.xml, hdfs-default.xml, yarn-default.xml and mapred-default.xml.

    Site配置:etc/hadoop/core-site.xml, etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml and etc/hadoop/mapred-site.xml.

    配置守护进程的运行环境:

    etc/hadoop/hadoop-env.sh:

    export JAVA_HOME=${JAVA_HOME}

    export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC"

    HADOOP_PID_DIR
    HADOOP_LOG_DIR
    HADOOP_HEAPSIZE / YARN_HEAPSIZE
    HADOOP_PREFIX

    etc/hadoop/mapred-env.sh
    etc/hadoop/yarn-env.sh

    配置守护进程:

     etc/hadoop/core-site.xml
    <name>fs.defaultFS</name>  //NameNode URI
    <value>hdfs://localhost:9000</value>
    etc/hadoop/hdfs-site.xml
    <name>dfs.replication</name>
    <value>1</value>

    etc/hadoop/mapred-site.xml
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    etc/hadoop/yarn-site.xml
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>

    其他:

    etc/hadoop/slaves

    etc/hadoop/log4j.properties

    在默认配置下NameNode的首页地址是http://namenode-name:50070/

    YARN服务ResourceManager默认地址是http://localhost:8088/

    MapReduce JobHistory Server默认地址是http://localhost:19888/

    bin/hadoop fs -help 命令列出所有Hadoop Shell支持的命令。

    bin/hadoop fs -help command-name 命令能显示关于某个命令的详细信息。

    bin/hadoop dfsadmin -help 命令能列出所有当前支持的命令。比如:-report:报告HDFS的基本统计信息。-safemode:手动让NameNode进入或离开安全模式。

    启动:

    启动HDFS服务:

    • 格式化文件系统:

    $ bin/hdfs namenode -format

    • 启动NameNode和DataNode:

    $sbin/hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs start namenode
    $sbin/hadoop-daemons.sh --config $HADOOP_CONF_DIR --script hdfs start datanode

    or

    $ sbin/start-dfs.sh

    • 在HDFS上创建目录:

    $ bin/hdfs dfs -mkdir /user
    $ bin/hdfs dfs -mkdir /user/<username>

    • 将文件拷贝到分布式文件系统上:

    $ bin/hdfs dfs -put etc/hadoop input

    • 执行示例程序:读取输入文件显示匹配正则表达式的字符串

    $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar grep input output 'dfs[a-z.]+'

    • 将文件在分布式文件系统上取出:

    $ bin/hdfs dfs -get output output
    $ cat output/*

    • 直接查看分布式文件系统上的文件:

    $ bin/hdfs dfs -cat output/*

    • 停止HDFS服务:

    $sbin/hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs stop namenode
    $sbin/hadoop-daemons.sh --config $HADOOP_CONF_DIR --script hdfs stop datanode

    or

    $ sbin/stop-dfs.sh

    启动YARN:

    • 启动ResourceManager和NodeManager服务:

    $sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR start resourcemanager
    $sbin/yarn-daemons.sh --config $HADOOP_CONF_DIR start nodemanager
    or

    $ sbin/start-yarn.sh

    • 启动WebAppProxy:

    $sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR start proxyserver

    • 启动MapReduce JobHistory Server:

    $sbin/mr-jobhistory-daemon.sh --config $HADOOP_CONF_DIR start historyserver

    • 停止YARN服务:

    $sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR stop resourcemanager
    $sbin/yarn-daemons.sh --config $HADOOP_CONF_DIR stop nodemanager

    or

    $ sbin/stop-yarn.sh

    • 停止WebAppProxy:

    $sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR stop proxyserver

    • 停止MapReduce JobHistory Server:

    $sbin/mr-jobhistory-daemon.sh --config $HADOOP_CONF_DIR stop historyserver

    NameNode将对文件系统的改动追加保存到本地文件系统上的一个日志文件(edits)。当一个NameNode启动时,它首先从一个映像文件(fsimage)中读取HDFS的状态,接着应用日志文件中的edits操作。然后它将新的HDFS状态写入(fsimage)中,并使用一个空的edits文件开始正常操作。

    安全模式下,namenode等待datanode上报数据块状态,防止过早复制数据。

    secondary namenode检查点:

    fs.checkpoint.period

    fs.checkpoint.size

    读写:

    副本数目可以在创建文件的时候指定,也可以后面更改。副本存放,两机架三副本。

    通信协议TCP clientprotocol datanodeprotocol

    创建文件时,先在客户端本地缓存,大小达到数据块时,namenode返回datanode的标识和目标数据块,客户端上传临时文件到数据块,文件关闭时,namenode提交到日志进行存储。流水线复制

    文件操作:

    create path permition

    mkdir path permission

    chmod

    chgroup

    chown

    ls

    lsr

  • 相关阅读:
    1040 Longest Symmetric String (25 分)
    1087 All Roads Lead to Rome (30 分)
    数据结构与算法(十三)——红黑树1 Craftsman
    数据结构与算法(十三)——红黑树2 Craftsman
    Java基础(十一)——反射 Craftsman
    docker 安装fastdfs
    ubuntu新建用户
    pytorch函数zero_grad(),step()作用
    ubuntu挂载新硬盘并分区
    使用pytorch求梯度
  • 原文地址:https://www.cnblogs.com/aaroncnblogs/p/8629622.html
Copyright © 2020-2023  润新知