Hadoop组件学习(一) —— 单点与集群的配置

一、Hadoop核心组件

    1.分布式文件存储系统HDFS(Hadoop Distributed File System)

    2.资源管理系统YARN(Yet Another Resource Negotiator)

    3.分布式计算框架MapReduce

二、Hadoop安装

    支持平台 : Windows也是受支持的平台,但以下步骤仅适用于Linux

    Linux所需要的软件包括

        1. 必须安装java,Hadoop的2.7版(含2.7)和更高版本需要Java7,早期版本(2.6和更早版本)支持Java6

        2. 如果要使用可选的启动和停止脚本,则必须安装ssh且sshd必须运行才能使用Hadoop脚本远程管理Hadoop守护进程。另外,建议也安装pdsh以便更好地进行ssh资源管理

    下载地址 : 要获得Hadoop发行版,请从Apache下载镜像,下载最新的稳定版本。

    单节点安装

    1. 解压缩下载的hadoop发行版,在发行版中,编辑文件etc/hadoop/hadoop-env.sh,如下

#设置java安装的根目录

export JAVA_HOME=/usr/local/jdk1.8.0_181

    2.编辑文件 etc/hadoop/core-site.xml

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

    3.编辑文件 etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

    4.设置ssh免密码登录

       首先检查是否可以在没有密码的情况下SSH到本地主机

$ ssh localhost

        成功则显示

       若不可以ssh到本地主机,会提示输入密码,则执行以下命令

  $ ssh-keygen -t rsa -P''-f〜/ .ssh / id_rsa 
  $ cat〜/ .ssh / id_rsa.pub >>〜/ .ssh / authorized_keys 
  $ chmod 0600〜/ .ssh / authorized_keys

    5.运行服务

        首先,格式化文件系统:

 $ bin/hdfs namenode -format

       启动NameNode守护程序、DataNode守护程序、ResourceManager守护程序;

  $ sbin/start-dfs.sh
  $ sbim/start-yarn.sh

        浏览Web界面以查看NameNode 和 ResourceManager

        停止守护程序命令

  $ sbin/stop-dfs.sh
  $ sbin/stop-yarn.sh

    启动遇到的问题

    1.未配置core-site.xml文件

    2.未设置ssh时

     集群安装

      安装Hadoop集群通常涉及在集群中的所有计算机上解压缩软件,或通过适用与你的操作系统的打包组件进行安装。通常,将集群中的一台机器专门指定为NameNode,将另一台机器指定为ResourceManager。其他服务(例如Web App代理服务器和MapReduce作业历史服务器)通常根据负载在专门硬件或共享基础结构上运行,集群中的其余计算机同时充当DataNode和NodeManager。

     Hadoop的Java配置由两种重要的配置文件驱动

  • 只读默认配置: core-default.xml, hdfs-default.xml, yarn-default.xml, mapred-default.xml.
  • 特定于站点的配置:etc/hadoop/core-site.xml, etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml, etc/hadoop/mapred-site.xml.

     要配置Hadoop集群,你将需要配置Hadoop守护程序执行的环境以及Hadoop守护程序的配置参数,HDFS守护程序是NameNode,SecondaryNameNode和DataNode;YARN守护程序是ResourceManager,NodeManager和WebAppProxy;如果要使用MapReduce,则MapReduce作业历史服务器也将运行。对于大型安装,它们通常在单独的主机上运行。

     Hadoop守护程序的配置环境

     在etc/hadoop/hadoop-env.sh以及可选的etc/hadoop/mapred-env.sh和etc/hadoop/yarn-env.sh文件中对环境进行自定义的配置,可自定义配置的有用参数如下:

        JAVA_HOME :系统中jdk的根目录,必须指定

        HADOOP_PID_DIR :守护程序的进程ID文件的存储目录

        HADOOP_LOG_DIR :守护程序的日志文件存储目录,如果日志文件不存在,则会自动创建

        HADOOP_HEAPSIZE_MAX :用于Java堆大小的最大内存量。如果不存在任何单位,则默认该数字以兆字节单位。可以使用下面列出的配置选项中的变量来覆盖此值,例如,设置HADOOP_HEAPSIZE_MAX = 1G 和 HADOOP_NAMENODE_OPTS="-Xmx5g" 将为NameNode配置5G的堆大小。

    在大多数情况下,应该配置HADOOP_PID_DIR和HADOOP_LOG_DIR参数,指定两者的目录。           

    也可以使用下表中显示的配置选项来配置各个守护程序

守护进程环境变量
NameNodeHDFS_NAMENODE_OPTS
DataNodeHDFS_DATANODE_OPTS
Secondary NameNodeHDFS_SECONDARYNAMENODE_OPTS
ResourceManagerYARN_RESOURCEMANAGER_OPTS
NodeManagerYARN_NODEMANAGER_OPTS
WebAppProxyYARN_PROXYSERVER_OPTS
Map Reduce Job History ServerMAPRED_HISTORYSERVER_OPTS

     例如,要将NameNode配置为使用parallelGC和4GB Java heap,则可以在hadoop-env.sh中添加以下语句

  export HDFS_NAMENODE_OPTS="-XX:+UseParallelGC -Xmx4g"

     在系统环境配置中配置HADOOP_HOME也是传统的做法,例如,在/etc/profile.d中做如下配置

  HADOOP_HOME=/path/to/hadoop
  export HADOOP_HOME

    配置Hadoop守护程序

    etc/hadoop/core-site.xml文件的配置

参数说明/默认值备注
fs.defaultFSNameNode URIhdfs://主机:端口
io.file.buffer.size131072SequenceFiles中使用的读/写缓冲区的大小。

    etc/hadoop/hdfs-site.xml文件的配置

  • NameNode的配置
参数说明/默认值备注
dfs.namenode.name.dirNameNode永久存储名称空间和事务日志的本地文件系统上的路径。如果这是用逗号分隔的目录列表,则将名称表复制到所有目录中,以实现冗余。
dfs.hosts / dfs.hosts.exclude允许/排除的数据节点列表。如有必要,请使用这些文件来控制允许的数据节点列表。
dfs.blocksize268435456大型文件系统的HDFS块大小为256MB。
dfs.namenode.handler.count100更多的NameNode服务器线程可处理来自大量DataNode的RPC。
  •  DataNode的配置
参数说明/默认值备注
dfs.datanode.data.dir逗号分隔的DataNode本地文件系统上应存储其块的路径列表。如果这是逗号分隔的目录列表,则数据将存储在所有命名的目录中,通常在不同的设备上。

    etc/hadoop/yarn-site.xml文件的配置

  • ResourceManager和NodeManager的共有配置
参数说明/默认值备注
yarn.acl.enabletrue / false是否启用ACL,默认为false
yarn.admin.acl管理员ACL用于在群集上设置管理员的ACL。ACL适用于逗号分隔的用户空间逗号分隔的组。默认为特殊值*,表示任何人。仅有空间的特殊价值意味着没有人可以使用。
yarn.log-aggregation-enablefalse启用或禁用日志聚合的配置
  •  ResourceManager的配置
参数说明/默认值备注
yarn.resourcemanager.address供客户端提交作业。 主机:端口。如果已设置,则将覆盖yarn.resourcemanager.hostname中设置的主机名。
yarn.resourcemanager.scheduler.address主程序的端口,可与Scheduler进行对话以获取资源。 主机:端口。如果已设置,则将覆盖yarn.resourcemanager.hostname中设置的主机名。
yarn.resourcemanager.resource-tracker.addressNodeManager的资源管理器 主机:端口。主机:端口。如果已设置,则将覆盖yarn.resourcemanager.hostname中设置的主机名。
yarn.resourcemanager.admin.address资源管理器 主机:端口,用于管理命令。主机:端口。如果已设置,则将覆盖yarn.resourcemanager.hostname中设置的主机名。
yarn.resourcemanager.webapp.address资源管理器 网页用户界面主机:端口。主机:端口。如果已设置,则将覆盖yarn.resourcemanager.hostname中设置的主机名。
yarn.resourcemanager.hostname资源管理器主机名。主机  可以设置单个主机名,以代替设置所有yarn.resourcemanager * address资源。生成ResourceManager组件的默认端口。
yarn.resourcemanager.scheduler.classResourceManager Scheduler类。CapacityScheduler(推荐),FairScheduler(也推荐)或FifoScheduler。使用完全限定的类名称,例如org.apache.hadoop.yarn.server.res ourcemanager.scheduler.fair.FairScheduler。
yarn.scheduler.minimum-allocation-mb在资源管理器中分配给每个容器请求的最小内存限制。以MB为单位
yarn.scheduler.maximum-allocation-mb资源管理器中分配给每个容器请求的最大内存限制。以MB为单位
yarn.resourcemanager.nodes.include-path /yarn.resourcemanager.nodes.exclude-path允许/排除的NodeManager列表。如有必要,请使用这些文件来控制允许的NodeManager列表。
  •  NodeManager的配置
参数说明/默认值备注
yarn.nodemanager.resource.memory-mb资源,即给定NodeManager的可用物理内存(以MB为单位)定义NodeManager上的总可用资源以供运行中的容器使用
yarn.nodemanager.vmem-pmem-ratio任务的虚拟内存使用率可能超过物理内存的最大比率每个任务的虚拟内存使用量可能超过此物理内存限制的比率。NodeManager上的任务使用的虚拟内存总量可能超过其物理内存使用量达此比率。
yarn.nodemanager.local-dirs逗号分隔的本地文件系统上写入中间数据的路径列表。多个路径有助于传播磁盘I / O。
yarn.nodemanager.log-dirs逗号分隔的本地文件系统上写入日志的路径列表。多个路径有助于传播磁盘I / O。
yarn.nodemanager.log.retain-seconds10800在NodeManager上保留日志文件的默认时间(以秒为单位)仅在禁用日志聚合时适用。
yarn.nodemanager.remote-app-log-dir/logs应用程序完成时将应用程序日志移动到的HDFS目录。需要设置适当的权限。仅在启用日志聚合的情况下适用。
yarn.nodemanager.remote-app-log-dir-suffix日志后缀附加到远程日志目录。日志将汇总到$ {yarn.nodemanager.remote-app-log-dir} / $ {user} / $ {thisParam},仅在启用日志汇总的情况下适用。
yarn.nodemanager.aux-servicesmapreduce_shuffle需要为Map Reduce应用程序设置洗牌服务。
yarn.nodemanager.env-whitelist容器从NodeManagers继承的环境属性对于mapreduce应用程序,除了默认值之外,还应添加HADOOP_MAPRED_HOME。属性值应为JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME 
  • History Server的配置(需要移植其他位置)
参数说明/默认值备注
yarn.log-aggregation.retain-seconds-1删除聚合日志前要保留多长时间。-1禁用。请注意,将此值设置得太小,您将向名称节点发送垃圾邮件。
yarn.log-aggregation.retain-check-interval-seconds-1检查聚合日志保留之间的时间。如果设置为0或负值,则该值将被计算为聚合日志保留时间的十分之一。请注意,将此值设置得太小,您将向名称节点发送垃圾邮件。

    etc/hadoop/mapre-site.xml文件的配置

  • MapReduce应用程序的配置
参数说明/默认值备注
mapreduce.framework.nameyarn执行框架设置为Hadoop YARN。
mapreduce.map.memory.mb1536较大的地图资源限制。
mapreduce.map.java.opts-Xmx1024M地图的子jvm的较大堆大小。
mapreduce.reduce.memory.mb3072较大的资源限制用于减少。
mapreduce.reduce.java.opts-Xmx2560M减少子jvm的堆大小。
mapreduce.task.io.sort.mb512更高的内存限制,同时对数据进行排序以提高效率。
mapreduce.task.io.sort.factor100排序文件时,更多的流一次合并。
mapreduce.reduce.shuffle.parallelcopies50减少运行的并行副本数量,可以从大量映射中获取输出。
  • MapReduce JobHistory服务器的配置
参数说明/默认值笔记
mapreduce.jobhistory.addressMapReduce JobHistory Server host:post默认端口为10020。
mapreduce.jobhistory.webapp.addressMapReduce JobHistory Server Web UI host:port默认端口是19888。
mapreduce.jobhistory.intermediate-done-dir/mr-history/tmpMapReduce作业在其中写入历史文件的目录。
mapreduce.jobhistory.done-dir/mr-history/done历史记录文件由MR JobHistory服务器管理的目录。

     监视NodeManager的运行状况

     Hadoop提供了一种机制,管理员可以通过该机制将NodeManager配置为定期运行管理员提供的脚本,以确定节点是否正常。以下参数可用于控制etc/hadoop/yarn-site.xml中的节点运行状况监视脚本

参数说明/默认值备注
yarn.nodemanager.health-checker.script.path节点运行状况脚本用于检查节点的健康状态的脚本。
yarn.nodemanager.health-checker.script.opts节点运行状况脚本选项用于检查节点运行状况的脚本选项。
yarn.nodemanager.health-checker.interval-ms节点运行状况脚本间隔运行状况脚本的时间间隔。
yarn.nodemanager.health-checker.script.timeout-ms节点运行状况脚本超时间隔运行状况脚本执行超时。

    如果仅某些本地磁盘变坏,则运行状况检查器脚本不应给出错误。NodeManager能够定期检查本地磁盘的运行状况(特别是检查nodemanager-local-dirs和nodemanager-log-dirs),并且在达到config目录属性yarn.nodemanager设置的值的坏目录数量阈值之后.disk-health-checker.min-healthy-disks,整个节点被标记为不正常,并且此信息也发送到资源管理器。启动磁盘被搜查,或者运行状况检查程序脚本标识了启动磁盘中的故障。

    Slaves File

    在你的etc / hadoop / workers文件中列出所有工作者主机名或IP地址,每行列出一个。帮助程序脚本将使用etc / hadoop / workers文件在多个主机上一次运行命令。它不用于任何基于Java的Hadoop配置。为了使用此功能,必须为用于运行Hadoop的帐户建立ssh信任(通过无密码ssh或其他某种方式,例如Kerberos)

    完成所有必要的配置后,将文件分发到所有计算机上的HADOOP_CONF_DIR目录,在所有计算机中,该目录应该是相同的目录。建议HDFS和YARN以单独的用户身份运行。在大多数安装中,HDFS进程以“hdfs”执行,YARN通常使用“yarn”账号

    Hadoop集群启动

    要启动Hadoop集群,您将需要同时启动HDFS和YARN集群。

    首次启动HDFS时,必须对其进行格式化。将新的分布式文件系统格式化为hdfs

  [hdfs]$ $HADOOP_HOME/bin/hdfs namenode -format <cluster_name>

    如果配置了etc / hadoop / workers和ssh可信访问权限(请参阅单节点安装),则可以使用实用程序脚本启动所有HDFS进程。作为hdfs

  [hdfs]$ $HADOOP_HOME/sbin/start-dfs.sh

    如果配置了etc / hadoop / workers和ssh信任访问权限(请参阅单节点安装),则可以使用实用程序脚本启动所有YARN进程。作为yarn

  [yarn]$ $HADOOP_HOME/sbin/start-yarn.sh

使用以下命令启动MapReduce JobHistory服务器,以mapred在指定的服务器上运行:

  [mapred]$ $HADOOP_HOME/bin/mapred --daemon start historyserver

    Hadoop关闭

    如果配置了etc / hadoop / workers和ssh信任访问权限(请参阅单节点安装),则可以使用实用程序脚本停止所有HDFS进程。作为hdfs:

  [hdfs]$ $HADOOP_HOME/sbin/stop-dfs.sh

    如果配置了etc / hadoop / workers和ssh信任访问权限(请参阅单节点安装),则可以使用实用程序脚本停止所有YARN进程。作为yarn:

  [yarn]$ $HADOOP_HOME/sbin/stop-yarn.sh

    使用以下命令停止MapReduce JobHistory服务器,以mapred在指定服务器上运行:

  [mapred]$ $HADOOP_HOME/bin/mapred --daemon stop historyserver

    Web界面

    Hadoop集群启动并运行后,如下所述检查组件的Web UI:

守护进程网页界面备注
NameNodehttp://nn_host:port/默认的HTTP端口是9870。
ResourceManagerhttp://rm_host:port/默认的HTTP端口为8088。
MapReduce JobHistory Serverhttp://jhs_host:port/默认的HTTP端口是19888。

                                                                          

                                                    分享大数据学习历程,坚持一周一篇原创,欢迎一起关注学习

                                                                           我现在坚持一定会有收获

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值