hadoop2.2的分布式环境需要配置的参数更多。但是需要安装的系统软件和单节点环境是一样的。
运行hadoop在非安全环境
hadoop的配置文件有两类:
1:只读的默认配置文件: core-default.xml,hdfs-default.xml,yarn-default.xml mapred-default.xml
2: 可配置的配置文件: core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml
除此之外,还可以修改bin目录下面的shell脚本,或者是hadoop-env.sh,yarn-env.sh。
为了配置集群,需要配置hadoop进程运行需要的环境参数。hadoop的守护进程为NameNode/DataNode和ResourceManager
配置hadoop进程的环境参数
管理员需要使用conf/hadoop-env.sh和conf/yarn-env.sh脚本来定制化hadoop进程的环境。最少也要配置JAVA_HOME环境。大多数情况下需要制定HADOOP_PID_DIR和HADOOP_SECURE_DIR来指定目录,改目录是启动hadoop进程的用户可以写入的。
例如:export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC ${HADOOP_NAMENODE_OPTS}"
如果我们想通过调试的方式来了解系统的运行价格可以在这个里面配置调试参数,配置参数如下:
-agentlib:jdwp=transport=dt_socket,address=localhost:${JVM_DEBUG_PORT},server=y,suspend=${JVM_SUSPEND} -jvm_args={JVM_ARGS}
除了这些参数我们可以配置别的参数
1:HADOOP_LOG_DIR YARN_LOG_DIR 指定日志文件的保存目录。
2:HADOOP_HEAPSIZE YARN_HEAPSIZE 用来配置进程使用的堆的大小,单位是MB
提示:堆大小=young+old
配置hadoop进程的配置参数
1:core-site.xml
fs.defaultFS 指定namenode的URL
io.file.buffer.size 读写SequenceFile的大小
2:hdfs-site.xml
dfs.namenode.name.dir 指定一个本地文件系统路径来存储命名空间和日志。如果多个目录用逗号分隔,那么保存多个副本到这些目录中
dfs.namenode.hosts/dfs.namenode.hosts.excude 允许和排除的datanode的主机名
dfs.blocksize datanode的数据块大小
dfs.namenode.handler.count 100 设置namenode的线程数据来出路datanode的rpc调用
dfs.datanode.data.dir 数据块的存储目录,用逗号分隔,通常是每个硬盘做为一个目录。加快数据读写
3:yarn-site.xml
配置ResourceManager和NodeManager
yarn.acl.anable 是否允许acl,默认是false ACL:访问控制列表 表现为rwxrwxrwx
yarn.admin.acl 管理员的acl控制。
yarn.log-aggregation-enable 配置是否允许日志合并。
配置RescourceManger
yarn.resourcemanager.address ResourceManager host:port ,客户端通过它来提交任务
yarn.resourcemanager.scheduler.address ResourceManager host:port ,ApplicationMaster告诉scheduler来获得资源
yarn.resourcemanager.resource-tracker.address ResourceManager host:port ,NodeManager通过该URL来连接ResourceManager
yarn.resourcemanager.webapp.address ResourceManager host:port web-ui的host:port
yarn.resourcemanager.admin.address ResourceManager 的host:port 用来接收管理员的命令参数
yarn.resourcemanger.scheduler.class ResourceManager协调类 。 CapacityScheduler (recommended), FairScheduler (also recommended), or FifoScheduler、
yarn.resourcemanager.minimum-allocation-mb 作业最小可申请的内存大小。
yarn.resourcemanager.maximum-allocation-mb 作业最大可申请的内存大小
yarn.resourcemanager.nodes.include-path/
yarn.resourcemanager.nodes.exclude-path 许可和排除的NodeManager的列表。
配置NodeManger
yarn.nodemanager.resource.memeory-mb
yarn.nodemamager.vmem-pmem-ration 虚拟内存使用可以超过物理内存的最大比例 ,有点像虚拟内存空间。
yarn.nodemanager.local-dirs 逗号分隔的本地文件路径,用来写入中间文件。多个文件可以扩展磁盘的io
yarn.nodemanager.log-dirs 逗号分隔的本地文件路径,用来写入日志
yarn.nodemanager.log.retain-seconds 如果log-aggregation为false那么设置该值表示日志最大的保留时间 单位是秒
yarn.nodemanager.remote-app-log-dir
yarn.nodemanager.remote-app-log-dir-suffix
yarn.nodemanager.aux-services 默认值mapreduce_shuffle
4:mapred-site.xml
mapreduce.framework.name yarn
mapreduce.map.memory.mb 1536
mapreduce.map.java.opts -Xms1024M
mapreduce.reduce.memory.mb 3072
mapreduce.reduce.java.opts -Xms2560M
mapreduce.task.io.sort.mb 用来数据的排序的最大内存
mapreduce.task.io.sort.factor 当排序的可以一次合并多少个流
mapreduce.reduce.shuffle.parallelcopies 当运行reduce的时候并行复制map任务输出的最大个数。
配置MapReduce jobhistory
mapreduce.jobhistory.address MapReduce jobhistory的服务
mapreduce.jobhistory.webapp.address
mapreduce.jobhistory.intermediate-done-dir 用些写入MapReduce作业历史文件的目录
mapreduce.jobhistory.done-dir MapReduce JobHistory服务器管理的目录
HADOOP的机架感知
HDFS和YARN都是机架感知的
NameNode和ResourceManager通过调用一个resolve的API(管理配置模块)获取到集群中slaver的机架信息。该api能解析DNS的名称到机架ID.
用户可以配置topology.node.switch.mapping.impl。该配置默认的实现运行了一个脚本使用了topology.script.file.name的配置参数,如果该配置参数未设置。将返回一个默认的机架ID.
检测NodeManager的健康
hadoop提供了一种机制,管理员可以配置一个NodeManager周期性来运行一个管理员提供的脚本来决定这个节点的是否健康。
脚本打印一个error日志,然后NodeManager检测到这个日志发送一个不健康的心跳到ResourceManager,ResourceManger接受到之后把它拉黑。如果后面后没出现error,就拉百。
在yarn-site.xml需要配置如下的参数
Slavers File
通常是选择集群中一个机器作为NameNode。一个机器最为ResourceManager,剩下的机器作为DataNode和NodeManager。他们被归类为slavers.
在conf/slaves中列出所有slave的主机名,每个一行。
配置集群
如果上面都配置好了,分发这些配置文件到集群所有机器的HADOOP_CONF_DIR目录中去。
HADOOP集群启动
1:格式化分布式文件系统: hdfs namenode -format
2: 启动HDFS的namenode hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs start namenode
3: 启动HDFS的所有的datanode hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs start datanode
4: 启动YARN的ResourceManager $HADOOP_YARN_HOME/sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR start resourcemanager
5: 启动YARN的所有的NodeManager $ $HADOOP_YARN_HOME/sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR start nodemanager
6:启动的webappproxy服务器 $HADOOP_YARN_HOME/sbin/yarn-daemon.sh start proxyserver --config $HADOOP_CONF_DIR
7: 启动MapReduce JobHistory $ $HADOOP_PREFIX/sbin/mr-jobhistory-daemon.sh start historyserver --config $HADOOP_CONF_DIR
- Hadoop-2.4.1完全分布式环境搭建
Hadoop-2.4.1完全分布式环境搭建 Hadoop-2.4.1完全分布式环境搭建 一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop ...
- Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程
一.修改hosts文件 在主节点,就是第一台主机的命令行下; vim /etc/hosts 我的是三台云主机: 在原文件的基础上加上; ip1 master worker0 namenode ip2 ...
- Hadoop2.5.0伪分布式环境搭建
本章主要介绍下在Linux系统下的Hadoop2.5.0伪分布式环境搭建步骤.首先要搭建Hadoop伪分布式环境,需要完成一些前置依赖工作,包括创建用户.安装JDK.关闭防火墙等. 一.创建hadoo ...
- hadoop学习(三)----hadoop2.x完全分布式环境搭建
今天我们来完成hadoop2.x的完全分布式环境搭建,话说学习本来是一件很快乐的事情,可是一到了搭环境就怎么都让人快乐不起来啊,搭环境的时间比学习的时间还多.都是泪.话不多说,走起. 1 准备工作 开 ...
- 攻城狮在路上(陆)-- hadoop分布式环境搭建(HA模式)
一.环境说明: 操作系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 ...
- Hadoop学习笔记1:伪分布式环境搭建
在搭建Hadoop环境之前,请先阅读如下博文,把搭建Hadoop环境之前的准备工作做好,博文如下: 1.CentOS 6.7下安装JDK , 地址: http://blog.csdn.net/yule ...
- 【转】Hadoop HDFS分布式环境搭建
原文地址 http://blog.sina.com.cn/s/blog_7060fb5a0101cson.html Hadoop HDFS分布式环境搭建 最近选择给大家介绍Hadoop HDFS系统 ...
- 【Hadoop】伪分布式环境搭建、验证
Hadoop伪分布式环境搭建: 自动部署脚本: #!/bin/bash set -eux export APP_PATH=/opt/applications export APP_NAME=Ares ...
- 大数据:Hadoop(JDK安装、HDFS伪分布式环境搭建、HDFS 的shell操作)
所有的内容都来源与 Hadoop 官方文档 一.Hadoop 伪分布式安装步骤 1)JDK安装 解压:tar -zxvf jdk-7u79-linux-x64.tar.gz -C ~/app 添加到系 ...
随机推荐
- Google网站遭到域名劫持
今天晚上,包括Google.com在内的绝大多数Google国际网站,例如Google.com.Gmail.Google Reader.Google Docs等,在中国部分省市均出现无法访问的情况. ...
- 学习动态性能表(3)--v$sql&v$sql_plan
学习动态性能表 第三篇-(1)-v$sq 2007.5.25 V$SQL中存储具体的SQL语句. 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1).如果有多个cur ...
- C#处理不规范的时间字符串
这样的一个情景,数据中 出生日期 是存的时间方便计算,但是前台来的数据五花八门 20170101 2017.01 2017-01-01 2017年01月1日 由于特殊原因现在确实没办法规范用户输入 ...
- Swift-ScrollView轮播图的简易封装和使用
不多说,轮播图是开发中必要一项技能,直接上代码: 先说我的思路:首次继承于UIScrollView类自定义MyScrollView,在MyScrollView里自定制方法,func creatMySc ...
- org.springframework.beans.factory.config.MethodInvokingFactoryBean的使用
它有两种用法:一个是调用类的静态方法,一个是调用已在IOC容器中的bean的方法.调用结果也分两种,一种是有返回,那么也会作为bean注册到IOC容器中,另一种是没有返回值,那么实际上就是为了在启动时 ...
- 【转】jmeter压力测试
jmeter压力测试 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域, 是压力测试的首选软件 ...
- ByteBuf 类——Netty 的数据容器
1.堆缓冲区 2.直接缓冲区 3.复合缓冲区 —CompositeByteBuf——实现了这个模式,它提供了一 个将多个缓冲区表示为单个合并缓冲区的虚拟表示 适用于 JDK 所使用的一种称为分散/收集 ...
- oracle 11g r2 使用rman进行迁移rac到rac
源端服务器主机名 rac05 rac06公共IP地址(eth0) 10.15.8.15 10.15.8.16 虚拟IP地址(eth0) 10.15.8.17 10.15.8.18私有IP地址(eth1 ...
- 五 搭建kafka集群
1 下载 wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.0.0/kafka_2.12-2.0.0.tgz 2 tar -zxv ...
- sysfs文件系统
3 sysfs文件系统 sysfs是一个基于内存的文件系统,它的作用是将内核信息以文件的方式提供给用户程序使用.该文件系统的目录层次结构严格按照内核的数据结构组织.除了二进制文件外(只有特殊场合才使用 ...