zoukankan      html  css  js  c++  java
  • Hadoop op 1)

    设置yarn.scheduler.fair.user-as-default-queue =fasle, 就会阻止每一个用户使用自己默认的队列。

    设置yarn.scheduler.fair.allow-underclared-pools =true 就允许用户在执行任务的时候创建指定的不存在的队列。

    存储在sequencefile中的key value不一定需要是实现writable接口的类,所有的类似均可以序列化和反序列化。

    Hive 尝试使用基于列的存储,可以提高hive的存储与执行效率?

    HIve使用spark或tez这样的计算框架,可以提高查询返回的效率?

    Crunch 是一个高级次的mapreduce pipe line的封装api,可以提高代码的利用率,使用java scala来写代码和udf,

    可以称为是java版本的pig.

    Which yarn daemon or service monitors a controller's per-application resource using (e.g. memory Cpu)?

    Nodemanager or ApplicationMaster?

    查看集群中可用的hdfs资源空间方法命令

    Hdfs dfs -df / 就会显示当前可用的空间与已用空间

    Hdfs dfsadmin -report 也会显示空间使用情况与每一个数据节点的健康与使用情况

    HDFS应该可以寄生在任何可以的linux文件系统上,Ext3和4只是推荐的文件系统

    CDH packing do what in KERBOS installation?

    Create users or keytab files?

    在小集群上,可以把nn和rm配置在一个节点上,在大的集群上,有足够的理由建议他们分开到不同的节点上。

    原因1,主服务都对资源有一定的要求,避免在同一个节点上对资源进行争用。

    原因2也是主要原因,考虑到集群的高可用,分部到不同的节点,减少了因同一个节点故障造成的问题。

    网络机架感知hadoop框架默认的实现是使用基于脚本的映射,大部分情况下,我们不需要自己去实现那个接口,直接

    使用这个基于脚本映射的接口即可。

    Net.topology.script.file.name 这个脚本接口一个或多个主机名或ip列表,返回它们的机架信息。

    机架感知技术对hadoop的影响

    1 HDFS

    hdfs在选择块副本的时候选择的策略与机架配置有关,先在某一节点(若在本节点上传,则是本节点存一份)存一

    份,然后在这一节点的同机架存一份,第三份是存到此机架外,为了提高可用性。(以三个副本为例)

    2。MR

    MR在进行作业分配的时候也会考虑到尽可能使用机架内的网络资源,减少使用机架外的资源,来选择执行MR的任务

    hadoop的控制脚本依赖ssh来执行集群范围的操作,例如登录到某节点启动相关进程。

    所以ssh并不是必须的,你可以使用其他并行ssh的工具,如pdsh等

    在使用hdfs的时候,fs.defaultFS有两个用途,一个是指定了hdfs集群的namenode的地址和端口。

    另一个用途是指定了hdfs访问的默认路径。

    由于第二个用途,客户端或或个用户可以为自己方便起见,使用自己的配置,不必要和其他节点保存一致。

    给dfs.namenode.name.dir 配置多个目录,会自动生成多份的元数据作为备份,有机会做个测试。

    同样的原理适用于dfs.namenode.checkpoint.dir属性,(不适用 于datanode.dir)

    Yarn.nodemanager.aux-services = mapreduce_shuffle

    clip_image001

    yarn调度器根据配置来分配容器,yarn.scheduler.minimum-allocation-mb(默认1024M)和

    Yarn.scheduler.maximum-allocation-mb (默认8192mb)。

    对于yar.nodemanager.resource.cpu-vcores属性的设置,使用机器上总的核数,减去该节点上长服进程的数量。

    如(datanode,nodemanager 和其他长服进程)

    cpu的使用问题,nodemanager并不限制运行的container使用的cpu的核数,可能会出现滥用的情况。

    一种解决方案是使用linux cgroups,需要配置 yarn.nodemanager.contain-executor.class 为LinuxContainerExecutor类。

    对于IO操作,hadoop使用的默认4k的缓存,对于现在的机器来说,这个配置有一点低,可以调整 core-site.xml

    中配置io.file.buffer.size属性,调整为128k是一个通用的选择。

    Hadoop的安全机制中kerbos到底起到了哪些作用?

    clip_image002

    Hadooop.security.authentication=kerberos (core-site.xml)

    Hadoop.security.authrozation=true

    配置acls在hadoop-policy.xml指定哪些用户和组可以访问hadoop的服务。

    为了减少集群的rpc调用,hadoop使用代理token的方式来减少对kdc的压力。同时保持安全性。

    这种代理是由服务端来做的,如namenode和resourcemanager.

    如果作业需要访问多个hdfs 集群,在kerberos的情况下,需要设置mapreduce.job.hdfs-servers 给一个逗号分开的列表。

    HDFS Encrypted Transport

    1。启用kerberos安全机制

    2。Hadoop.rpc.protection=privacy in core-site.xml 在客户端和服务器端的配置。

    1. Set dfs.encrypt.data.transfer=true in hdfs-site.xml 在的有服务器端的配置。
    2. 重启所有进程
    1. 如果要配置shuffle的加密,配置mapreduce.shuffle.ssl.enabled 在mapred-site.xml
  • 相关阅读:
    ant-design中日历之自定义头部加上返回今日
    centos7(虚拟机)下安装nginx
    centos7(虚拟机)下安装redis
    log4net
    Autofac
    Utilities
    实体转换类
    CG——Possion Image Editing
    CSC3002学习笔记
    serving 源码
  • 原文地址:https://www.cnblogs.com/huaxiaoyao/p/5250252.html
Copyright © 2011-2022 走看看