• hadoop入门手册1:hadoop【2.7.1】【多节点】集群配置【必知配置知识1】


    问题导读



    1.说说你对集群配置的认识?
    2.集群配置的配置项你了解多少?
    3.下面内容让你对集群的配置有了什么新的认识?






    目的

    目的1:
    这个文档描述了如何安装配置hadoop集群,从几个节点到上千节点。为了学习hadoop,你可能先从单节点入手 (查看 Single Node Setup).这里有中文版hadoop2.7【单节点】单机、伪分布、分布式安装指导
    http://www.aboutyun.com/thread-12798-1-1.html
    这个文档不包括:hadoop在安全模式下配置和HA【高可用配置】,后面在更新

    目的2:
    我们看了很多集群配置文档,你是否静下心来,想集群配置到底是怎么一回事。

    准备

    1.安装Java
    2.下载hadoop包
    ##################################
    包集合:
    hadoop家族、strom、spark、Linux、flume等jar包、安装包汇总下载(持续更新)
    http://www.aboutyun.com/thread-8178-1-1.html
    ##################################
    安装

    安装hadoop集群包括:解压包,配置hadoop,划分主节点和子节点。

    集群中可以将namenode和ResourceManager分布在不同的机器上,这些称之为master。其它服务例如:Web App Proxy Server 和 MapReduce Job History server,根据负载可以共享设施或则使用专用的机器。

    集群其它机器作为 DataNode 和 NodeManager.这些是slaves


    配置hadoop【非安全模式】

    hadoop配置文件被分为两类:

    1.只读默认配置,有下列配置文件
    core-default.xml, hdfs-default.xml, yarn-default.xml and mapred-default.xml.

    2.定制配置,有下列配置文件
    etc/hadoop/core-site.xml, etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml and etc/hadoop/mapred-site.xml.

    另外你可以配置hadoop脚本,在hadoop的bin目录下,通过 etc/hadoop/hadoop-env.sh 和 etc/hadoop/yarn-env.sh来指定值。

    配置hadoop集群需要配置环境变量,Hadoop守护进程执行以及Hadoop守护进程的配置参数。如果没有配置过集群,可能对这个了解不多,具体参考
    hadoop(2.x)以hadoop2.2为例完全分布式最新高可靠安装文档
    http://www.aboutyun.com/thread-7684-1-1.html


    hdfs守护进程:
    NameNode, SecondaryNameNode, 和 DataNode

    YARN 守护进程:
    ResourceManager, NodeManager, 和 WebAppProxy

    如果运行MapReduce , MapReduce Job History Server也会运行。前提需要配置并开启。对于比较大的集群安装,他们分别运行在不同的客户端。


    配置守护进程环境变量
    管理员使用 etc/hadoop/hadoop-env.sh , etc/hadoop/mapred-env.sh 和 etc/hadoop/yarn-env.sh 脚本来定制hadoop守护进程变量。
    至少需要需要指定JAVA_HOME ,每个节点都必须指定。

    管理员可以配置单独的守护进程,使用下面的选项。

    Daemon
    Environment Variable
    NameNode
    HADOOP_NAMENODE_OPTS
    DataNode
    HADOOP_DATANODE_OPTS
    Secondary NameNode
    HADOOP_SECONDARYNAMENODE_OPTS
    ResourceManager
    YARN_RESOURCEMANAGER_OPTS
    NodeManager
    YARN_NODEMANAGER_OPTS
    WebAppProxy
    YARN_PROXYSERVER_OPTS
    Map Reduce Job History Server
    HADOOP_JOB_HISTORYSERVER_OPTS


    例如:配置Namenode 使用parallelGC,在 hadoop-env.sh 声明如下:

    [Bash shell] 纯文本查看 复制代码
    1
    export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC"




    查看 etc/hadoop/hadoop-env.sh 其它例子

    其它可定义的有用参数包括

    • HADOOP_PID_DIR - 存储守护进程id的文件目录.
    • HADOOP_LOG_DIR - 存储守护进程日志文件目录. 日志文件自动创建如果不存在。
    • HADOOP_HEAPSIZE / YARN_HEAPSIZE -heapsize内存最大配置.如果变量为1000, heap 是1000MB. 这是为守护进程配置heap. 默认值1000M.


    在大多数情况下,应该指定HADOOP_PID_DIR 和 HADOOP_LOG_DIR,他们由用户运行hadoop守护进程所写,否则可能是潜在攻击。

    传统配置HADOOP_PREFIX 在系统级环境变量配置,例如一个简单的脚本 /etc/profile.d:

    [Bash shell] 纯文本查看 复制代码
    1
    2
    HADOOP_PREFIX=/path/to/hadoop
    export HADOOP_PREFIX





    Daemon
    Environment Variable
    ResourceManager
    YARN_RESOURCEMANAGER_HEAPSIZE
    NodeManager
    YARN_NODEMANAGER_HEAPSIZE
    WebAppProxy
    YARN_PROXYSERVER_HEAPSIZE
    Map Reduce Job History Server
    HADOOP_JOB_HISTORYSERVER_HEAPSIZE



    配置hadoop守护进程

    本节涉及在给定的配置文件中指定的重要参数:

    etc/hadoop/core-site.xml

    Parameter
    Value
    Notes
    fs.defaultFS
    NameNode URI
    io.file.buffer.size
    131072
    读写序列文件缓存大小
    • etc/hadoop/hdfs-site.xml



    • 配置NameNode:

    彻底了解namenode

    Parameter
    Value
    Notes
    dfs.namenode.name.dir
    本地文件系统存储着命令空间和操作日志
    如果含有多个目录,是冗余的【多个目录以逗号隔开】
    dfs.hosts / dfs.hosts.exclude
    列出排除DataNodes.
    如何需要使用这一功能来控制datanode的访问
    dfs.blocksize
    268435456
    大文件系统HDFS blocksize  256MB
    dfs.namenode.handler.count
    100
    更多 NameNode server 线程来处理来自datanode的 RPCs请求
    • 配置 DataNode:


    Parameter
    Value
    Notes
    dfs.datanode.data.dir
    存储blocks的本地路径列表,用逗号隔开
    这是一个逗号分隔的目录列表, 数据将被存储在所有被命名的目录中,通常在不同的设备上。
    • etc/hadoop/yarn-site.xml
    • 配置ResourceManager 和 NodeManager:


    Parameter
    Value
    Notes
    yarn.acl.enable
    true / false
    是否启用ACLs,默认为false不启用
    yarn.admin.acl
    Admin ACL
    admin.acl设置YARN的集群管理员,. 值为*表示任何人都可以. 仅指定的可以访问
    yarn.log-aggregation-enable
    false
    配置启用或则禁用日志




    • 配置ResourceManager:
    Parameter
    Value
    Notes
    yarn.resourcemanager.address
    ResourceManager host:port 为客户端提交job.
    如果配置host:port , 会覆盖在yarn.resourcemanager.hostname 设置的 hostname
    yarn.resourcemanager.scheduler.address
    ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。
    如果配置host:port , 会覆盖在yarn.resourcemanager.hostname 设置的 hostname
    yarn.resourcemanager.resource-tracker.address
    ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等。
    如果配置host:port , 会覆盖在yarn.resourcemanager.hostname 设置的 hostname
    yarn.resourcemanager.admin.address
    ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等
    如果配置host:port , 会覆盖在yarn.resourcemanager.hostname 设置的 hostname
    yarn.resourcemanager.webapp.address
    ResourceManager web-ui host:port(ResourceManager访问端口)
    如果配置host:port , 会覆盖在yarn.resourcemanager.hostname 设置的 hostname
    yarn.resourcemanager.hostname
    ResourceManager 客户端.
    host Single hostname that can be set in place of setting all yarn.resourcemanager*address resources. Results in default ports for ResourceManager components.
    yarn.resourcemanager.scheduler.class
    ResourceManager 调度类 .
    CapacityScheduler (recommended), FairScheduler (also recommended), or FifoScheduler
    yarn.scheduler.minimum-allocation-mb
    单个container可申请的最小内存资源量。比如设置为1024,则运行MapRedce作业时,每个Task最少可申请1024MB内存
    In MBs
    yarn.scheduler.maximum-allocation-mb
    单个container可申请的最大内存资源量。比如设置为3072,则运行MapRedce作业时,每个Task最多可申请3072MB内存。
    In MBs
    yarn.resourcemanager.nodes.include-path /yarn.resourcemanager.nodes.exclude-path
    NodeManager黑白名单。
    NodeManager黑白名单。如果发现若干个NodeManager存在问题,比如故障率很高,任务运行失败率高,则可以将之加入黑名单中。注意,这两个配置参数可以动态生效。(调用一个refresh命令即可)
    默认值:“”
    • 配置 NodeManager:
    Parameter
    Value
    Notes
    yarn.nodemanager.resource.memory-mb
    NodeManager总的可用物理内存。
    定义了资源总量的nodemanager可用运行containers
    yarn.nodemanager.vmem-pmem-ratio
    每使用1MB物理内存,最多可用的虚拟内存数。
    每个任务的虚拟内存的使用可能会超过其物理内存的限制,这个比例。通过对nodemanager任务使用的虚拟内存总量可能超过物理内存使用的比率。
    yarn.nodemanager.local-dirs
    中间结果存放位置
    这个参数通常会配置多个目录,分摊磁盘IO负载。
    yarn.nodemanager.log-dirs
    日志存放路径
    这个参数通常会配置多个目录,分摊磁盘IO负载。
    yarn.nodemanager.log.retain-seconds
    10800
    NodeManager上日志最多存放时间(不启用日志聚集功能时有效)。
    yarn.nodemanager.remote-app-log-dir
    /logs
    当应用程序运行结束后,日志被转移到的HDFS目录(启用日志聚集功能时有效)。
    yarn.nodemanager.remote-app-log-dir-suffix
    logs
    远程日志目录子目录名称(启用日志聚集功能时有效)。
    yarn.nodemanager.aux-services
    mapreduce_shuffle
    NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序.
    • 配置 History Server (Needs to be moved elsewhere):
    Parameter
    Value
    Notes
    yarn.log-aggregation.retain-seconds
    -1
    参数解释:在HDFS上聚集的日志最多保存多长时间。
    默认值:-1
    yarn.log-aggregation.retain-check-interval-seconds
    -1
    参数解释:多长时间检查一次日志,并将满足条件的删除,如果是0或者负数,则为上一个值的1/10。
    默认值:-1
    • etc/hadoop/mapred-site.xml
    • 配置MapReduce Applications:

    mapreduce.map.memory.mb
    mapreduce.reduce.memory.mb
    说明:这两个参数指定用于MapReduce的两个任务(Map and Reduce task)的内存大小,其值应该在RM中的最大最小container之间。如果没有配置则通过如下简单公式获得:
    max(MIN_CONTAINER_SIZE, (Total Available RAM) / containers))
    一般的reduce应该是map的2倍。注:这两个值可以在应用启动时通过参数改变;



    mapreduce.map.java.opts
    mapreduce.reduce.java.opts
    说明:这两个参主要是为需要运行JVM程序(java、scala等)准备的,通过这两个设置可以向JVM中传递参数的,与内存有关的是,-Xmx,-Xms等选项。此数值大小,应该在AM中的map.mb和reduce.mb之间。


    Parameter
    Value
    Notes
    mapreduce.framework.name
    yarn
    执行框架设置为Hadoop YARN.
    mapreduce.map.memory.mb
    1536
    maps资源限制
    mapreduce.map.java.opts
    -Xmx1024M
    maps的child jvms heap-size
    mapreduce.reduce.memory.mb
    3072
    reduces资源限制
    mapreduce.reduce.java.opts
    -Xmx2560M
    reduces的child jvms heap-size
    mapreduce.task.io.sort.mb
    512
    任务内部排序缓冲区大小
    mapreduce.task.io.sort.factor
    100
    排序文件的时候一次同时最多可并流的个数,这里设置100。
    mapreduce.reduce.shuffle.parallelcopies
    50
    reuduce shuffle阶段并行传输数据的数量。
    • 配置MapReduce JobHistory Server:
    Parameter
    Value
    Notes
    mapreduce.jobhistory.address
    MapReduce JobHistory Server地址【host:port】
    默认端口号 10020.
    mapreduce.jobhistory.webapp.address
    MapReduce JobHistory Server Web UI地址【 host:port】
    默认端口号 19888.
    mapreduce.jobhistory.intermediate-done-dir
    /mr-history/tmp
    MapReduce作业产生的日志存放位置。
    mapreduce.jobhistory.done-dir
    /mr-history/done
    MR JobHistory Server管理的日志的存放位置。






    相关内容 
    hadoop入门手册1:hadoop【2.7.1】【多节点】集群配置【必知配置知识1】



    hadoop入门手册2:hadoop【2.7.1】【多节点】集群配置【必知配置知识2】




    hadoop入门手册3:Hadoop【2.7.1】初级入门之命令指南



    hadoop入门手册4:Hadoop【2.7.1】初级入门之命令:文件系统shell1



    hadoop入门手册5:Hadoop【2.7.1】初级入门之命令:文件系统shell2



    hadoop2.X使用手册1:通过web端口查看主节点、slave1节点及集群运行状态
    http://www.aboutyun.com/thread-7712-1-1.html

  • 相关阅读:
    在二元树中查找和为某一值的所有路径
    求整数的二进制表示1的个数
    Javascript AJAX 解析XML 兼容FIREFOX/IE
    DOM解析XML笔记
    Linux c 共享内存
    C Socket 发送/接收数据结构
    Linux c 获取系统内存
    7.5备忘
    linux c 唤醒进程 获取子进程结束状态
    7.1-7.2备忘
  • 原文地址:https://www.cnblogs.com/snowbook/p/5681345.html
Copyright © 2020-2023  润新知