(一)基本集群配置

共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. POSIX之共享内存

    shm_write.c: #include<stdio.h> #include<stdlib.h> #include <stdlib.h> #include < ...

  2. gin框架中的会话控制

    Cookie介绍 Http协议是无状态的,服务器不能记录浏览器的访问状态,也就是说服务器不能判断请求的客户端是否已经登录 Cookie就是解决http协议无状态的方案之一 Cookie实际上就是服务器 ...

  3. go get失败解决办法

    go get时由于防火墙的原因,会导致失败.目前可以通过修改GOPROXY的方法解决该问题. 无论是在win下还是linux,macos下,只需要将环境变量GOPROXY设置成https://gopr ...

  4. lsof恢复误删文件

    用 lsof 恢复 误删除文件实验: 先模拟一个进程: [tiger@root:/home/tiger]$ echo "hello deletede" >> test. ...

  5. Kubernetes 证书默认1年过期时间修改

    使用过的kubeadm搭建K8s集群的朋友知道,默认自动生成的证书有效期只有 1 年,因此需要每年手动更新一次证书,这种形式显然对实际生产环境来说很不友好:因此下面教给大家修改这个过期时间的终极方法. ...

  6. Docker常用命令速查

    docker pull ${CONTAINER NAME} #拉取镜像 docker images #查看本地所有镜像 docker ps #查看所有正在运行的容器,加-q返回id docker ps ...

  7. 字节跳动Web Infra发起 Modern.js 开源项目,打造现代 Web 工程体系

    10 月 27 日举办的稀土开发者大会上,字节跳动 Web Infra 正式发起 Modern.js 开源项目,希望推动现代 Web 开发范式的普及,发展完整的现代 Web 工程体系,突破应用开发效率 ...

  8. python16day

    昨日回顾 自定义模块 模块的两种执行方式:脚本方式.调用方式 name 模块导入的方式 相对导入 random:获取随机数相关 今日内容 常用模块的介绍 time:和时间相关 datetime os ...

  9. Java高并发下多线程编程

    1.创建线程 Java中创建线程主要有三种方式: 继承Thread类创建线程类: 定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此也把run方法称为 ...

  10. 有关OPenCV的几个库函数的使用

    转载请注明来源:https://www.cnblogs.com/hookjc/ 1) IplImage* cvCreateImage( CvSize size, int depth, int chan ...