hadoop-2.3.0-cdh5.1.0完全分布式集群配置HA配置
一、安装前准备:操作系统:CentOS 6.5 64位操作系统环境:jdk1.7.0_45以上,本次采用jdk-7u55-linux-x64.tar.gzmaster01 10.10.2.57 namenode 节点master02 10.10.2.58 namenode 节点slave01:10.10.2.173 datanode 节点slave02:10.10.2.59 datanode 节点slave03: 10.10.2.60 datanode 节点注:Hadoop2.0以上采用的是jdk环境是1.7,Linux自带的jdk卸载掉,重新安装下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html软件版本:hadoop-2.3.0-cdh5.1.0.tar.gz, zookeeper-3.4.5-cdh5.1.0.tar.gz下载地址:http://archive.cloudera.com/cdh5/cdh/5/开始安装:二、jdk安装1、检查是否自带jdkrpm -qa | grep jdkjava-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.i686 2、卸载自带jdkyum -y remove java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.i6863、安装jdk-7u55-linux-x64.tar.gz在usr/目录下创建文件夹java,在java文件夹下运行tar –zxvf jdk-7u55-linux-x64.tar.gz解压到java目录下[root@master01 java]# lsjdk1.7.0_55三、配置环境变量远行vi /etc/profile# /etc/profile# System wide environment and startup programs, for login setup# Functions and aliases go in /etc/bashrcexport JAVA_HOME=/usr/java/jdk1.7.0_55export JRE_HOME=/usr/java/jdk1.7.0_55/jreexport CLASSPATH=/usr/java/jdk1.7.0_55/libexport PATH=$JAVA_HOME/bin: $PATH保存修改,运行source /etc/profile 重新加载环境变量运行java -version[root@master01 java]# java -versionjava version "1.7.0_55"Java(TM) SE Runtime Environment (build 1.7.0_55-b13)Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)Jdk配置成功四、系统配置预先准备5台机器,并配置IP关闭防火墙chkconfig iptables off(永久性关闭)配置主机名和hosts文件[root@master01 java]# vi /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain610.10.2.57 master0110.10.2.58 master0210.10.2.173 slave0110.10.2.59 slave0210.10.2.60 slave03按照不同机器IP配置不同的主机名3、SSH无密码验证配置因为Hadoop运行过程需要远程管理Hadoop的守护进程,NameNode节点需要通过SSH(Secure Shell)链接各个DataNode节点,停止或启动他们的进程,所以SSH必须是没有密码的,所以我们要把NameNode节点和DataNode节点配制成无秘密通信,同理DataNode也需要配置无密码链接NameNode节点。在每一台机器上配置:vi /etc/ssh/sshd_config打开RSAAuthentication yes # 启用 RSA 认证,PubkeyAuthentication yes # 启用公钥私钥配对认证方式Master01:运行:ssh-keygen-t rsa -P ""
不输入密码直接enter默认存放在 /root/.ssh目录下,cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys[root@master01 .ssh]# lsauthorized_keys id_rsa id_rsa.pub known_hostsslave01执行相同的操作,然后将master01 /root/.ssh/目录下的id_rsa.pub放到 slave01 相同目录下的authorized_keys这样slave01就持有了master01的公钥 然后直接ssh slave01测试是否可以无密码连接到slave01上,然后将slave01 上的id_rsa.pub 追加到master01的authorized_keys中,测试ssh master01 是否可以直接连上slave01.[root@master01 ~]# ssh slave01Last login: Tue Aug 19 14:28:15 2014 from master01[root@slave01 ~]# Master01-master02Master01-slave01Master01-slave02Master01-slave03Master02-slave01Master02-slave02Master02-slave03执行相同的操作。 五、安装Hadoop建立文件目录 /usr/local/cloud 创建文件夹data,存放数据、日志文件,haooop原文件,zookeeper原文件[root@slave01 cloud]# lsdata hadoop tar zookeeper5.1、配置hadoop-env.sh进入到/usr/local/cloud/hadoop/etc/hadoop目录下配置vi hadoop-env.sh hadoop运行环境加载export JAVA_HOME=/usr/java/jdk1.7.0_555.2、配置core-site.xml<!—hadoop.tmp.dir:hadoop很多路径都依赖他,namenode节点该目录不可以删除,否则需要重新格式化--><property> <name>hadoop.tmp.dir</name> <value>/usr/local/cloud/data/hadoop/tmp</value></property><!—这个配置文件描述了集群的namenode节点的url,这里采用HA代表默认逻辑名,集群中的每个datanode节点都需要知道namenode的地址,数据才可以被使用--><property> <name>fs.defaultFS</name> <value>hdfs://zzg</value></property><!-- zookeeper集群的地址和端口,最好保持基数个至少3台--> <property> <name>ha.zookeeper.quorum</name> <value>master01:2181,slave01:2181,slave02:2181</value></property> (2)hdfs-site.xml配置<!—hadoop namenode数据的存储目录,只是针对与namenode,包含了namenode的系统信息元数据信息--><property> <name>dfs.namenode.name.dir</name> <value>/usr/local/cloud/data/hadoop/dfs/nn</value></property><!—datanode 要存储到数据到本地的路径,不必每一台机器都一样,但是为了方便管理最好还是一样--><property> <name>dfs.datanode.data.dir</name> <value>/usr/local/cloud/data/hadoop/dfs/dn</value></property><!—系统中文件备份数量,系统默认是3分--><property> <name>dfs.replication</name> <value>3</value></property><!-- dfs.webhdfs.enabled 置为true,否则一些命令无法使用如:webhdfs的LISTSTATUS --><property> <name>dfs.webhdfs.enabled</name> <value>true</value></property><!—可选,关闭权限带来一些不必要的麻烦--><property> <name>dfs.permissions</name> <value>false</value></property><!—可选,关闭权限带来一些不必要的麻烦--><property> <name>dfs.permissions.enabled</name> <value>false</value></property><!—HA配置--><!—设置集群的逻辑名--><property> <name>dfs.nameservices</name> <value>zzg</value></property><!—hdfs联邦集群中的namenode节点逻辑名--><property> <name>dfs.ha.namenodes.zzg</name> <value>nn1,nn2</value></property><!—hdfs namenode逻辑名中RPC配置,rpc 简单理解为序列化文件上传输出文件要用到--><property> <name>dfs.namenode.rpc-address.zzg.nn1</name> <value>master01:9000</value></property><property> <name>dfs.namenode.rpc-address.zzg.nn2</name> <value>master02:9000</value></property><!—配置hadoop页面访问端口端口--><property> <name>dfs.namenode.http-address.zzg.nn1</name> <value>master01:50070</value></property><property> <name>dfs.namenode.http-address.zzg.nn2</name> <value>master02:50070</value></property><!—建立与namenode的通信--><property> <name>dfs.namenode.servicerpc-address.zzg.nn1</name> <value>master01:53310</value></property><property> <name>dfs.namenode.servicerpc-address.zzg.nn2</name> <value>master02:53310</value></property><!—journalnode 共享文件集群--><property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://master01:8485;slave01:8485;slave02:8485/zzg</value></property> <!—journalnode对namenode的进行共享设置--><property> <name>dfs.journalnode.edits.dir</name> <value>/usr/local/cloud/data/hadoop/ha/journal</value></property><!—设置故障处理类--><property> <name>dfs.client.failover.proxy.provider.zzg</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><!—开启自动切换--><property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value></property><property> <name>ha.zookeeper.quorum</name> <value>master01:2181,slave01:2181,slave02:2181</value></property><!—使用ssh方式进行故障切换--><property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value></property><!—ssh通信密码通信位置--><property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_rsa</value></property>5.3 配置maped-site.xml<property> <name>mapreduce.framework.name</name> <value>yarn</value></property>5.4配置yarn HA 配置yarn-en.sh java环境# some Java parameters export JAVA_HOME=/usr/java/jdk1.7.0_555.5配置yarn-site.xml <!—rm失联后重新链接的时间--> <property> <name>yarn.resourcemanager.connect.retry-interval.ms</name> <value>2000</value> </property> <!—开启resource manager HA,默认为false--> <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <!—开启故障自动切换--> <property> <name>yarn.resourcemanager.ha.automatic-failover.enabled</name> <value>true</value> </property> <!—配置resource manager --> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> <!—在master01上配置rm1,在master02上配置rm2,--> <property> <name>yarn.resourcemanager.ha.id</name> <value>rm1</value> <description>If we want to launch more than one RM in single node, we need this configuration</description> </property> <!—开启自动恢复功能--> <property> <name>yarn.resourcemanager.recovery.enabled</name> <value>true</value> </property> <!—配置与zookeeper的连接地址--> <property> <name>yarn.resourcemanager.zk-state-store.address</name> <value>localhost:2181</value> </property> <property> <name>yarn.resourcemanager.store.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value> </property> <property> <name>yarn.resourcemanager.zk-address</name> <value>localhost:2181</value> </property> <property> <name>yarn.resourcemanager.cluster-id</name> <value>yarn-cluster</value> </property> <!—schelduler失联等待连接时间--> <property> <name>yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms</name> <value>5000</value> </property> <!—配置rm1--> <property> <name>yarn.resourcemanager.address.rm1</name> <value>master01:23140</value> </property> <property> <name>yarn.resourcemanager.scheduler.address.rm1</name> <value>master01:23130</value> </property> <property> <name>yarn.resourcemanager.webapp.address.rm1</name> <value>master01:23188</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address.rm1</name> <value>master01:23125</value> </property> <property> <name>yarn.resourcemanager.admin.address.rm1</name> <value>master01:23141</value> </property> <property> <name>yarn.resourcemanager.ha.admin.address.rm1</name> <value>master01:23142</value> </property> <!—配置rm2--> <property> <name>yarn.resourcemanager.address.rm2</name> <value>master02:23140</value> </property> <property> <name>yarn.resourcemanager.scheduler.address.rm2</name> <value>master02:23130</value> </property> <property> <name>yarn.resourcemanager.webapp.address.rm2</name> <value>master02:23188</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address.rm2</name> <value>master02:23125</value> </property> <property> <name>yarn.resourcemanager.admin.address.rm2</name> <value>master02:23141</value> </property> <property> <name>yarn.resourcemanager.ha.admin.address.rm2</name> <value>master02:23142</value> </property> <!—配置nodemanager--> <property> <description>Address where the localizer IPC is.</description> <name>yarn.nodemanager.localizer.address</name> <value>0.0.0.0:23344</value> </property> <!—nodemanager http访问端口--> <property> <description>NM Webapp address.</description> <name>yarn.nodemanager.webapp.address</name> <value>0.0.0.0:23999</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.nodemanager.local-dirs</name> <value>/usr/local/cloud/data/hadoop/yarn/local</value> </property> <property> <name>yarn.nodemanager.log-dirs</name> <value>/usr/local/cloud/data/logs/hadoop</value> </property> <property> <name>mapreduce.shuffle.port</name> <value>23080</value> </property> <!—故障处理类--> <property> <name>yarn.client.failover-proxy-provider</name> <value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value> </property>六、配置zookeeper集群在zookeeper目录下建立data目录 和logs目录,配置zoo.cnfdataDir=/usr/local/cloud/zookeeper/datadataLogDir=/usr/local/cloud/zookeeper/logs# the port at which the clients will connectclientPort=2181server.1=master01:2888:3888server.2=master02:2888:3888server.3=slave01:2888:3888server.4=slave02:2888:3888server.5=slave03:2888:3888在data目录下创建myid文件,并在对应的机器上填写数字,如上配置master01 server01 的myid写入1,master02 中的data的myid写入2,依次在其他机子上执行相同操作。在各个机器下zookeeper目录下的bin目录下执行zkServer.sh start命令再运行zkServer.sh status如果出现leader 或fllower 则说明集群配置正确。 到此各个配置文件配置完毕七、启动Hadoop集群严格按照以下顺序执行(第一次)(1)各个节点启动zookeeper,在zookeeper/bin/zkServer.sh start(2) 在hadoop/bin/hdfs zkfc –formatZK 进行格式化创建命名空间(3)在配置了journalnode的节点启动,master01,slave01,slave02 在hadoop/sbin/hadoop-daemon.sh journalnode(4)在主namenode节点执行格式化./bin/hadoop namenode -format zzg 主机器上启动namenode hadoop/sbin/ hadoop-daemon.sh start namenode(5)将主namenode节点格式化的目录拷贝到从主namenode节点上hadoop/bin/hdfs namenode –bootstrapStandbyhadoop/sbin/hadoop-daemon.sh start namenode(6) 在两个namenode节点都执行以下命令./sbin/hadoop-daemon.sh start zkfc(7) 在所有datanode节点都执行以下命令启动datanode./sbin/hadoop-daemon.sh start datanode(8)在主namenode节点启动yarn,运行yarn-start.sh命令jps可以看到namenode节点[root@master01 ~]# jps38972 JournalNode38758 NameNode39166 DFSZKFailoverController37473 QuorumPeerMain39778 ResourceManager42620 Jpsdatanode节点[root@slave01 ~]# jps33440 DataNode35277 Jps32681 QuorumPeerMain33568 JournalNode34231 NodeManagerhadoop-2.3.0-cdh5.1.0完全分布式集群配置HA配置的更多相关文章
- 通过tarball形式安装HBASE Cluster(CDH5.0.2)——HBASE 真分布式集群配置
一.应该先配置好zookeeper并成功启动,否则hbase无法启动 二.配置HBASE集群 1,配置hbase-env.sh,下面是最少配置项目 [hadoop@zk1 conf]$ vim hba ...
- 生产环境elasticsearch5.0.1和6.3.2集群的部署配置详解
线上环境elasticsearch5.0.1集群的配置部署 es集群的规划: 硬件: 7台8核.64G内存.2T ssd硬盘加1台8核16G的阿里云服务器 其中一台作为kibana+kafka连接查询 ...
- Hadoop实战4:MapR分布式集群的安装配置及shell自动化脚本
MapR的分布式集群安装过程还是很艰难的,远远没有计划中的简单.本人总结安装配置,由于集群有很多机器,手动每台配置是很累的,编写了一个自动化配置脚本,下面以脚本为主线叙述(脚本并不完善,后续继续完善中 ...
- Hadoop学习之路(十二)分布式集群中HDFS系统的各种角色
NameNode 学习目标 理解 namenode 的工作机制尤其是元数据管理机制,以增强对 HDFS 工作原理的 理解,及培养 hadoop 集群运营中“性能调优”.“namenode”故障问题的分 ...
- spark2.4.0+hadoop2.8.3全分布式集群搭建
集群环境 hadoop-2.8.3搭建详细请查看hadoop系列文章 scala-2.11.12环境请查看scala系列文章 jdk1.8.0_161 spark-2.4.0-bin-hadoop2. ...
- Hadoop(三)手把手教你搭建Hadoop全分布式集群
前言 上一篇介绍了伪分布式集群的搭建,其实在我们的生产环境中我们肯定不是使用只有一台服务器的伪分布式集群当中的.接下来我将给大家分享一下全分布式集群的搭建! 其实搭建最基本的全分布式集群和伪分布式集群 ...
- Hadoop(三)搭建Hadoop全分布式集群
原文地址:http://www.cnblogs.com/zhangyinhua/p/7652686.html 阅读目录(Content) 一.搭建Hadoop全分布式集群前提 1.1.网络 1.2.安 ...
- Hadoop(二)CentOS7.5搭建Hadoop2.7.6完全分布式集群
一 完全分布式集群(单点) Hadoop官方地址:http://hadoop.apache.org/ 1 准备3台客户机 1.1防火墙,静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略,参考 ...
- Hadoop上路-01_Hadoop2.3.0的分布式集群搭建
一.配置虚拟机软件 下载地址:https://www.virtualbox.org/wiki/downloads 1.虚拟机软件设定 1)进入全集设定 2)常规设定 2.Linux安装配置 1)名称类 ...
- hadoop搭建伪分布式集群(centos7+hadoop-3.1.0/2.7.7)
目录: Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本2.查看IP地址3.修改主机名为hadoop4.修改 /etc/hosts5.关闭防火墙6.关闭SE ...
随机推荐
- [原创]java WEB学习笔记10:GenericServlet
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Fermat’s Chirstmas Theorem (素数打表的)
Fermat’s Chirstmas Theorem ...
- min/max优化,count ,group by
min/max优化 在表中,一般都是经过优化的. 如下地区表 id area pid 1 中国 0 2 北京 1 ... 3115 3113 我们查min(id), id是主键,查Min(id)非常快 ...
- tp导出excel
//数据导出 protected function dao($db,$where,$join,$field){ $data = M($db)->join($join)->where($wh ...
- Spark持久化策略
spark持久化策略_缓存优化persist.cache都是持久化到内存缓存策略 StorageLevel_useDisk:是否使用磁盘_useMemory:是否使用内存_useOffHeap:不用堆 ...
- Javascript两个数的比较
Strict equality using === 比较之前不转换类型, 如果不同类型,不相等, 如果相同类型:如果两个都不是numbers,只有自己和自己比较才相等,其他都不相等: 如果两个都是nu ...
- C#中在内容页获取其模板页中的变量,或者值
在CSDN的博文中看到了 muziduoxi 的文章:http://blog.csdn.net/muziduoxi/article/details/5386543 虽然里面提到的方法没有解决我的难题, ...
- 学习完Spring MVC体会
学习完spring mvc感觉很不错,万事开头难,付出定有回报,坚持必将成功
- IronPython 源码剖析系列(1):IronPython 编译器
自 IronPython 正式发布以来,由于对 Python 语言的喜爱所驱使,同时我想藉此去了解一下编程语言的编译器,分析器等程序是什么原理,如何运作的,所以我开始了对 IronPython 源代码 ...
- Redo Log File(inactive、active)损坏,处理恢复对策
redolog的生命周期中共有四种状态:current -> 正在使用的active -> 非正在使用的,对应的Dirty Block还没有完全写入到数据文件中inactive -> ...