(一)基本集群配置

共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. golang中的标准库反射

    反射 反射是指程序在运行期对程序本身访问和修改的能力 变量的内在机制 变量包含类型信息和值信息 var arr [10]int arr[0] = 10 类型信息:是静态的元信息,是预先定义好的 值信息 ...

  2. golang汇总gomodules的初始化与改变模块的依赖关系

    1. gomodules的初始化 2. 改变模块的依赖关系

  3. Go 面向对象编程应用

    #### Go 面向对象编程应用前面学习了很多的基础知识,这一节来实际写一个小案例:涉及到的知识: 1. 数组的基本使用2. 结构体3. 切片 4. 方法5. 循环6. 函数返回值(命名返回值,普通返 ...

  4. Ubuntu SVN 搭建

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subversion ...

  5. 学习JAVAWEB第十六天

    今天做了一个简单的登陆界面,HTML+CSS太不熟悉了,明天还得接着做

  6. ApacheCN Linux 译文集(二) 20211206 更新

    CentOS7 Linux 服务器秘籍 零.前言 一.安装 CentOS 二.配置系统 三.管理系统 四.用 YUM 管理包 五.管理文件系统 六.提供安全性 七.构建网络 八.使用文件传输协议 九. ...

  7. 如何将EDI报文转换为CSV格式文件?

    如果您对EDI项目实施有一定的了解,想必您一定知道,在正式开始EDI项目实施之前,都会有EDI顾问与您接洽,沟通EDI项目需求.其中,会包含EDI通信双方使用哪种传输协议,传输的报文是符合什么标准的, ...

  8. git命令log与reflog的比较

    感谢原文作者:杨鲜生 原文链接:https://blog.csdn.net/u013252047/article/details/80230781 用git命令,想看到自己的操作记录,则可以使用log ...

  9. curl: (6) Could not resolve host: mirrors.163.com; Unknown error 服务器上解析不了域名,换成ip可以

    原因是DNS域名解析问题: 添加nameserver即可解决 echo nameserver 8.8.8.8 > /etc/resolv.conf 解释一下DNS服务 DNS(Domain Na ...

  10. Webpack 多html入口、devServer、热更新配置

    一.clean-webpack-plugin: 在每次生成dist目录前,先删除本地的dist文件(每次自动删除太麻烦) 1.安装clean-webpack-plugin   npm/cnpm i c ...