Hadoop完全分布式配置
***** 全部三个节点 *****
1. 关闭防火墙
service iptables stop
chkconfig iptables off
2. 修改主机名,Hadoop主机名中不能出现_和-
vim /etc/sysconfig/network
修改其中的HOSTNAME属性的值,例如HOSTNAME=hadoop01
修改完成之后保存退出,然后需要重新生效
source /etc/sysconfig/network
3. 需要将主机名和ip进行映射
vim /etc/hosts
添加主机名 IP映射,例如:
192.168.245.130 hadoop01
192.168.245.131 hadoop02
192.168.245.132 hadoop03
注意,改完之后,三个节点中的hosts文件的内容应该是一样的
4. 重启
reboot
5. 三个节点之间配置免密互通
产生密钥
ssh-keygen
拷贝到三个节点上,注意是三个节点每一个节点都需要执行这三句话,保证任意两个节点之间能够免密互通
ssh-copy-id root@hadoop01
ssh-copy-id root@hadoop02
ssh-copy-id root@hadoop03
云主机密码:tarena2017Up;
最好三个节点都ssh连接一下看一下是否需要密码,如果连接不需要密码就能登录,那就表示免密配置成功
6. 安装JDK
7. 安装Zookeeper
***** 现在第一个节点上配置,然后拷贝给其他节点 *****
8. 将伪分布式重命名
mv hadoop-2.7.1 hadoop-standalone
9. 解压Hadoop的安装包
tar -xvf hadoop-2.7.1_64bit.tar.gz
10. 进入安装目录的子目录
cd hadoop-2.7.1/etc/hadoop/
11. 修改hadoop-env.sh
vim hadoop-env.sh
修改JAVA_HOME和HADOOP_CONF_DIR
export JAVA_HOME=/home/presoftware/jdk1.8
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
保存退出之后重新生效
source hadoop-env.sh
12. 修改core-site.xml
vim core-site.xml
添加:
<!--为集群起别名,以确定向Zookeeper注册的节点的名字-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns</value>
</property>
<!--指定Hadoop数据临时存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/software/hadoop-2.7.1/tmp</value>
</property>
<!--指定zookeeper的连接地址-->
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
13. 修改hdfs-site.xml
vim hdfs-site.xml
添加:
<!--注意要和core-site.xml中的名称保持一致-->
<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>
<!--ns集群下有两个namenode,分别为nn1, nn2-->
<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>
<!--nn1的RPC通信-->
<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>hadoop01:9000</value>
</property>
<!--nn1的http通信-->
<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>hadoop01:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>hadoop02:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>hadoop02:50070</value>
</property>
<!--指定namenode的元数据在JournalNode上存放的位置,这样,namenode2可以从journalnode集群里的指定位置上获取信息,达到热备效果-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/software/hadoop-2.7.1/tmp/journal</value>
</property>
<!-- 开启NameNode故障时自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.ns</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置隔离机制 -->
<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>
<!--配置namenode存放元数据的目录,可以不配置,如果不配置则默认放到hadoop.tmp.dir下-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/software/hadoop-2.7.1/tmp/hdfs/name</value>
</property>
<!--配置datanode存放元数据的目录,可以不配置,如果不配置则默认放到hadoop.tmp.dir下-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/software/hadoop-2.7.1/tmp/hdfs/data</value>
</property>
<!--配置复本数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--设置用户的操作权限,false表示关闭权限验证,任何用户都可以操作-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
14. 编辑mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
添加:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
15. 编辑yarn-site.xml
vim yarn-site.xml
添加:
<!--配置yarn的高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--指定两个resourcemaneger的名称-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--配置rm1的主机-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop01</value>
</property>
<!--配置rm2的主机-->
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop03</value>
</property>
<!--开启yarn恢复机制-->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!--执行rm恢复机制实现类-->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<!--配置zookeeper的地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
<!--执行yarn集群的别名-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>ns-yarn</value>
</property>
<!-- 指定nodemanager启动时加载server的方式为shuffle server -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定resourcemanager地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop03</value>
</property>
16. 编辑slaves - 这个文件是用于指定DataNode以及NodeManager的节点位置
vim slaves
添加三个节点的名字,例如
hadoop01
hadoop02
hadoop03
17. 需要将这个hadoop的安装目录拷贝给其他两个节点
scp -r hadoop-2.7.1 root@hadoop02:/home/software/
scp -r hadoop-2.7.1 root@hadoop03:/home/software/
***********************************************************
18. 三个节点需要配置环境变量
vim /etc/profile
在文件最后添加:
export HADOOP_HOME=/home/software/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存退出之后需要重新生效
source /etc/profile
19. 三个节点都需要启动Zookeeper
cd /home/software/zookeeper-3.4.7/bin
sh zkServer.sh start
sh zkServer.sh status
20. 在第一个节点上格式化Zookeeper - 实际上就是在Zookeeper上去注册节点
hdfs zkfc -formatZK
21. 在全部三个节点上启动JournalNode
hadoop-daemon.sh start journalnode
22. 在第一个节点上格式化NameNode
hadoop namenode -format
23. 在第一个节点上启动NameNode
hadoop-daemon.sh start namenode
24. 在第二个节点上格式化NameNode
hdfs namenode -bootstrapStandby
25. 在第二个节点上启动NameNode
hadoop-daemon.sh start namenode
26. 在全部三个节点上启动DataNode
hadoop-daemon.sh start datanode
27. 在第一个节点以及第二节点上来启动故障切换进程
hadoop-daemon.sh start zkfc
28. 在第三个节点上来启动yarn
start-yarn.sh
29. 在第一个节点上来单独启动resourcemanager
yarn-daemon.sh start resourcemanager
30. 从第二次启动开始,只需要用start-all.sh即可
如果启动成功,则各个节点的进程分布如下:
第一个节点8个:
Jps
NameNode
DataNode
JournalNode
ResourceManager
NodeMyarn-daemon.sh start resourcemanageranager
DFSZKFailoverController
QuorumPeerMain
第二个节点7个:
Jps
NameNode
DataNode
JournalNode
NodeManager
DFSZKFailoverController
QuorumPeerMain
第三个节点6个:
Jps
DataNode
JournalNode
ResourceManager
NodeManager
QuorumPeerMain
如果发现少了节点,可以试着单独启动一次:
hadoop-daemon.sh start namenode/datanode/journalnode/zkfc
yarn-daemon.sh start resourcemanager/nodemanager
Hadoop完全分布式配置的更多相关文章
- Data - Hadoop伪分布式配置 - 使用Hadoop2.8.0和Ubuntu16.04
系统版本 anliven@Ubuntu1604:~$ uname -a Linux Ubuntu1604 4.8.0-36-generic #36~16.04.1-Ubuntu SMP Sun Feb ...
- Hadoop伪分布式配置
一步一步来: 安装VMWARE简单,安装CentOS也简单 但是,碰到了一个问题:安装的虚拟机没有图形化界面 最后,我选择了CentOS-7-x86_64-DVD-1503-01.iso镜像 配置用户 ...
- Hadoop伪分布式配置:CentOS6.5(64)+JDK1.7+hadoop2.7.2
java环境配置 修改环境变量 export JAVA_HOME=/usr/java/jdk1.7.0_79 export PATH=$PATH:$JAVA_HOME/bin export CLASS ...
- 转载:Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
原文 http://www.powerxing.com/install-hadoop/ 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到, ...
- Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
摘自: http://www.cnblogs.com/kinglau/p/3796164.html http://www.powerxing.com/install-hadoop/ 当开始着手实践 H ...
- Hadoop安装教程_单机/伪分布式配置
环境 本教程使用 CentOS 6.4 32位 作为系统环境,请自行安装系统(可参考使用VirtualBox安装CentOS).如果用的是 Ubuntu 系统,请查看相应的 Ubuntu安装Hadoo ...
- 新手推荐:Hadoop安装教程_单机/伪分布式配置_Hadoop-2.7.1/Ubuntu14.04
下述教程本人在最新版的-jre openjdk-7-jdk OpenJDK 默认的安装位置为: /usr/lib/jvm/java-7-openjdk-amd64 (32位系统则是 /usr/lib/ ...
- 在Linux(Centos7)系统上对进行Hadoop分布式配置以及运行Hadoop伪分布式实例
在Linux(Centos7)系统上对进行Hadoop分布式配置以及运行Hadoop伪分布式实例 ...
- Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04(转)
http://www.powerxing.com/install-hadoop/ http://blog.csdn.net/beginner_lee/article/details/6429146 h ...
随机推荐
- TS-接口
接口 TS的核心原则之一是对值所具有的结构进行类型检测 接口初探 function printLabel(labelledObj: { label: string }) { console.log(l ...
- leetcood学习笔记-101-对称二叉树
题目描述: 方法一:递归: class Solution: def isSymmetric(self, root: TreeNode) -> bool: if not root: return ...
- JAVA javah
{ 用法: javah [options] <classes>其中, [options] 包括: -o <file> 输出文件 (只能使用 - ...
- 更强大的实时数仓构建能力!分析型数据库PostgreSQL 6.0新特性解读
阿里云 AnalyticDB for PostgreSQL 为采用MPP架构的分布式集群数据库,完备支持SQL 2003,部分兼容Oracle语法,支持PL/SQL存储过程,触发器,支持标准数据库事务 ...
- django入门 -- 简单流程
django入门 -- 简单流程 简介 通过简单示例,使用django完成基本流程的开发,学习django的主要的知识点,在后续课程中会逐个知识点进行深入讲解 以“图书-英雄”管理为示例 主要知识点介 ...
- 源码安装zabbix-oracle
源码安装zabbix_agent4.0.3 1.源码包下载地址:https://www.zabbix.com/download_sources 2.下载完后上传在任意目录用root用户创建以下脚本 ...
- D 语言学习感受
胃抽动!特想吐!不过,还是很佩服写这种语言的人,不是大拿,怎么可能开发一门语言!
- 4 丑数 Ⅱ-找出第n个丑数
原题网址:http://www.lintcode.com/zh-cn/problem/ugly-number-ii/ 设计一个算法,找出只含素因子2,3,5 的第 n 小的数. 符合条件的数如:1, ...
- docker实用参数
docker images:查看docker镜像docker ls:查看运行中的docker 镜像docker run -d -p 80:80 -v /home/xxxxx/nginx-conf/ht ...
- KNN 实战
KNN算法很简单,大致的工作原理是:给定训练数据样本和标签,对于某测试的一个样本数据,选择距离其最近的k个训练样本,这k个训练样本中所属类别最多的类即为该测试样本的预测标签.简称kNN.通常k是不大于 ...