(一)基本集群配置

共8个配置文件

  • hadoop-env.sh
  • yarn-env.sh
  • mapred-env.sh
  • core-site.xml
  • hdfs-site.xml
  • yarn-site.xml
  • mapred-site.xml
  • slaves
  • ssh免密登录

修改JAVA_HOME为绝对路径

  • hadoop-env.sh
  • yarn-env.sh
  • mapred-env.sh

core-site.xml

(NameNode地址,Hadoop运行产生文件存储地址)

core-cite.xml  # 设置后本地模式不可用,因为namenode地址修改为Hdfs了,默认是file:///

<!-- 指定HDFS 中NameNode 的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost102:9000</value>
</property> <!-- 指定Hadoop 运行时产生文件的存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

hdfs-site.xml

(SecondaryNameNode地址,副本数)

 <!-- 指定HDFS 副本的数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property> <!-- 指定Hadoop 辅助名称节点主机配置-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>localhost104:50090</value>
</property>

yarn-site.xml

(ResourceManager地址,Reducer获取数据方式,历史服务器的日志聚集)

 <!-- Reducer 获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property> <!-- 指定YARN 的ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost103</value>
</property> <!-- 日志聚集功能使能-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property> <!-- 日志保留时间设置7 天-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

mapred-site.xml

(JobHistory Server配置,MR运行在Yarn上)

<!-- 指定MR 运行在YARN 上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property> <!-- 历史服务器端地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>localhost103:10020</value>
</property> <!-- 历史服务器web 端地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>localhost103:19888</value>
</property>

配置slaves

  • 配置etc/hadoop/slaves,文件中是所有DataNode节点主机,注意:该文件中添加的内容结尾不允许有空格,不允许有空行。

配置SSH免密登录(为了群起集群,使用系统自带的脚本)

  • 用法:ssh 主机IP
  • 原理:主机1生成私钥和公钥,公钥发送给主机2,主机1发送主机2的信息用公钥解密,主机2发送给主机1的信息用私钥解密,主机1就可以在本机上登录主机2与其进行通信
    • 生成公钥和私钥:cd,cd .ssh/,ssh-keygen -t rsa,三次回车生成私钥id_rsa和公钥id_rsa.pub
    • 拷贝公钥到目标主机上:ssh-copy-id localhost102,103,104,自己主机也要拷贝,NameNode要和每一个主机通信
  • 102(运行NameNode)、102root(很多操作需要root用户完成)、103(运行ResourceManager)都需要设置ssh免密登录
  • xsync etc/hadoop 分发脚本,其他脚本
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi #2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname #3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir #4 获取当前用户名称
user=`whoami` #5 循环
for((host=103; host<105; host++)); do
echo ------------------- localhost$host --------------
rsync -rvl $pdir/$fname $user@localhost$host:$pdir
done

(二)项目经验配置

HDFS 存储多目录

## 配置hdfs-site.xml 注意新挂载磁盘的访问权限问题
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/data1,file:///hd2/dfs/
data2,file:///hd3/dfs/data3,file:///hd4/dfs/data4</value>
</property> ## 开启数据均衡命令 参数10表示各个磁盘利用率相差不超过10%
bin/start-balancer.sh –threshold 10 ## 停止数据均衡命令
bin/stop-balancer.sh

支持LZO 压缩配置

hadoop 本身并不支持lzo 压缩,故需要使用twitter提供的hadoop-lzo开源组件进行编译,使用编译后的hadoop-lzo.jar

## 将编译后的jar拷贝到hadoop-2.7.2/share/hadoop/common/目录

## 配置core-site.xml支持lzo压缩
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec,
com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec
</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property> ## 注意分发jar包和配置文件 生效需要重启集群 ## lzo创建索引 lzo可切片特性依赖于索引文件 故需要手动创建索引
hadoop jar /path/to/your/hadoop-lzo.jar com.hadoop.compression.lzo.DistributedLzoIndexer /path/to/file.lzo

HDFS基准测试

  • HDFS读写性能测试:10个文件,每个128M
## hdfs写性能测试
hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MB ## hdfs读性能测试
hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -read -nrFiles 10 -fileSize 128MB ## 删除测试数据
hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -clean
  • 使用Sort 程序评测MapReduce,每个节点10个Map,每个Map大约1G数据
## 使用RandomWriter来产生随机数,每个节点运行10 个Map任务,每个Map产生大约1G 大小的二进制随机数
hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar randomwriter random-data ## 执行sort程序
hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar sort random-data sorted-data ## 验证数据是否真正排好序了
hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar testmapredsort -sortInput random-data -sortOutput sorted-data

Hadoop参数调优

  • HDFS参数调优
  • NameNode工作线程池,用来处理不同DataNode并发心跳及客户端并发元操作。对于大集群或者有大量客户端的集群来说,需要增大默认值10为 20 * logN,N为集群大小
## hdfs-site.xml
dfs.namenode.handler.count
  • YARN参数调优
  • 数据统计主要用HiveSQL,没有数据倾斜,小文件已经做了合并处理,开启的JVM 重用,而且IO 没有阻塞,内存用了不到50%。但是还是跑的非常慢,而且数据量洪峰过来时,整个集群都会宕掉。
    • 内存利用率不够,一般是Yarn 的2个配置造成的,可以根据Map任务和Reduce任务调整
## yarn-site.xml
yarn.nodemanager.resource.memory-mb # 单节点yarn可使用的物理内存 默认8G
yarn.scheduler.maximum-allocation-mb # 单个任务可申请的物理内存 默认8G
  • Hadoop宕机

    • MR造成宕机:控制Yarn同时运行的任务数和每个任务申请的最大内存
    • 写入文件过量造成NameNode宕机:调高kafka存储大小,控制kafka写入速度,高峰时使用kafka进行缓存

Hadoop配置文件汇总的更多相关文章

  1. hadoop记录-Hadoop参数汇总

    Hadoop参数汇总 linux参数 以下参数最好优化一下: 文件描述符ulimit -n 用户最大进程 nproc (hbase需要 hbse book) 关闭swap分区 设置合理的预读取缓冲区 ...

  2. Hadoop配置文件解析

    Hadoop源码解析 2 --- Hadoop配置文件解析 1 Hadoop Configuration简介    Hadoop没有使用java.util.Properties管理配置文件, 也没有使 ...

  3. hadoop分布式安装部署详细视频教程(网盘附配好环境的CentOS虚拟机文件/hadoop配置文件)

    参考资源下载:http://pan.baidu.com/s/1ntwUij3视频安装教程:hadoop安装.flvVirtualBox虚拟机:hadoop.part1-part5.rarhadoop文 ...

  4. hadoop分布式安装部署具体视频教程(网盘附配好环境的CentOS虚拟机文件/hadoop配置文件)

    參考资源下载:http://pan.baidu.com/s/1ntwUij3视频安装教程:hadoop安装.flvVirtualBox虚拟机:hadoop.part1-part5.rarhadoop文 ...

  5. hadoop配置文件详解系列(二)-hdfs-site.xml篇

    上一篇介绍了core-site.xml的配置,本篇继续介绍hdfs-site.xml的配置. 属性名称 属性值 描述 hadoop.hdfs.configuration.version 1 配置文件的 ...

  6. hadoop配置文件的参数含义说明

    #hadoop version 查看版本号 1 .获取默认配置 hadoop2系列配置文件一共包括6个,分别是hadoop-env.sh.core-site.xml.hdfs-site.xml.map ...

  7. Hadoop配置文件详解

    1       获取默认配置 配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以很难知 ...

  8. Hadoop学习(二) Hadoop配置文件参数详解

    Hadoop运行模式分为安全模式和非安全模式,在这里,我将讲述非安全模式下,主要配置文件的重要参数功能及作用,本文所使用的Hadoop版本为2.6.4. etc/hadoop/core-site.xm ...

  9. hadoop配置文件加载顺序(转)

    原文  http://www.cnblogs.com/wolfblogs/p/4147485.html 用了一段时间的hadoop,现在回来看看源码发现别有一番味道,温故而知新,还真是这样的 在使用h ...

随机推荐

  1. linux 创建用户 用户组,sudo,禁止root远程ssh登录

    创建用户  useradd hanli 为新用户设置密码(在root下可以为普通用户重置密码)  passwd hanli 创建用户组  groupadd  op 将用户添加到用户组  usermod ...

  2. python26day

    内容回顾 多态: ​ 一个类表现出的多种形态,实际上是通过继承来完成的 今日内容 super,调用父类的同名方法 按照mro顺序来寻找当前类的下一个类 封装 广义上的封装 方法属性名字前加了__,就变 ...

  3. Working hard to know your neighbor's margins:Local descriptor learning loss论文笔记

    Abstract 论文提出了一种新的训练方法,受到了 Lowe's matching criterion for SIFT的启发.这种新的loss,要比负责的正则方法更好.把这个新的loss方法结合L ...

  4. 如何在 VS Code 中为 Java 类生成序列化版本号

    前言 IDEA 提供自动生成序列化版本号的功能,其实 VS Code 也可以,只是默认关闭了这个功能,下面就来看看如何开启这个功能吧. 配置过程 首先需要保证 VS Code 上安装了提供 Java ...

  5. Atcoder ARC-104

    D 可以发现,从整体上来看这个式子是不好计数的,可以考虑反过来将贡献拆到单个的每个数上: \[\sum\limits_{i = 1} ^ n a_i \times (i - x) = 0 \] 于是每 ...

  6. 微信h5下拉隐藏网页,还有取消页面滑动

    需求: 网页下拉太丑了,如下 度娘了一下, 发现一篇相关文档 基本解决了问题 https://juejin.cn/post/6844903940190896135#heading-2 加入如下代码即可 ...

  7. 关于在 Linux 下多个不相干的进程互斥访问同一片共享内存的问题

    转载请注明来源:https://www.cnblogs.com/hookjc/ 这里的"不相干",定义为: 这几个进程没有父子关系,也没有 Server/Client 关系 这一片 ...

  8. Java数组3种创建方式

    public static void main(String[] args){ /** * 1. 固定大小的空数组, 动态创建 */ String[] strArr1 = new String[3]; ...

  9. Ansible 自动化运维管理工具

    Ansible 自动化运维管理工具 1.Ansible概述 2.Ansible部署 3.Ansible模块 1.Ansible概述: Ansible是一个基于Python开发的配置管理和应用部署工具, ...

  10. js实现用按钮控制网页滚动、以及固定导航栏效果

    实现效果如下: 页面内有三个按钮,分别控制页面向上.向下移动,以及暂停,并设置有导航栏,在滚动到某一位置时显示.且当用户主动控制鼠标滑轮时,滚动效果自动关闭.本页面只是演示如何实现,进行了简单的布局, ...