hadoop1.1.2分布式安装---集群动态增减节点
0 关于配置机器别名,配置IP和别名映射,设置IP,关闭防火墙和自启动,单机下配置ssh请参考
hadoop1.1.2伪分布式安装(单机版)的文章, 链接:
http://chengjianxiaoxue.iteye.com/admin/blogs/2093575
1 先安装好一台单机版的hadoop, 别名为master
2 准备另外两台虚拟机, 这里分别命令为 sliver103, sliver104,
可以通过vmware下安装iso文件方式准备这两台虚拟机,
也可以通过将master机器关闭后,右键master,在管理中选择拷贝虚拟器,选择完全拷贝方式来创建
这里是通过第一种方式准备的。
3 sliver103, sliver104机器上配置好机器别名,关闭防火墙,在hosts里配置上这三台机器
各机器配置好hosts如下(以sliver103举例)
[root@sliver103 .ssh]# more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.1.103 sliver103
192.168.1.104 sliver104
192.168.1.105 master
4 master, sliver103,sliver104各自机器上生成rsa密钥对,
并生成各自机器的公钥文件(ssh默认的公钥文件是用户home/.ssh/authorized_keys),
可以通过 cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys 实现生成公钥文件,这样每台机器中的公钥文件就含有各自机器的信息,在实现多机器互通执行ssh-copy-id -i下,直接会将别的机器内公钥信息拷贝到本机中
生成后查看如下:
查看各自节点的公共key:
[root@sliver103 .ssh]# cat authorized_keys
......mMlwpVtEEGTQ== root@sliver103[root@sliver104 .ssh]# cat authorized_keys
......mMlwpVtEEGTQ== root@sliver104[root@master .ssh]# cat authorized_keys
......mMlwpVtEEGTQ== root@master
5 实现三台机器ssh通:
先将两台机器的公钥key拷贝到第三个节点上:
[root@master .ssh]# ssh-copy-id -i sliver103 这样master就可以无密码下访问 sliver103
[root@sliver104 .ssh]# ssh-copy-id -i sliver103 这样sliver104就可以无密码下访问 sliver103拷贝完后 可以通过如下命令来验证是否可以免密码登陆
[root@master .ssh]# ssh sliver103
Last login: Sat Aug 30 22:08:04 2014 from localhost.localdomain查看 sliver103的公钥文件(authorized_keys):
发现会增加:
...== root@master
...== root@sliver104然后再将 sliver103的公钥文件拷贝到 master , sliver104机器上,
这样每台机器的公钥文件都包含另外两台的公钥文件内容,实现了三台机器之间免密码登陆的目的,操作如下:
[root@sliver103 .ssh]# scp /root/.ssh/authorized_keys master:/root/.ssh
[root@sliver103 .ssh]# scp /root/.ssh/authorized_keys sliver104:/root/.ssh
5.1 解释机器之间免密码ssh互通, 看下图,这也了解了为毛需要将客户端机器的公钥文件需要拷贝到目标机器才能实现ssh互通的原因:
5.2 解释 ssh-copy-id -i:可以把本地的ssh公钥文件安装到远程主机对应的账户下,是一个脚本命令
6 拷贝master机器的jdk, hadoop, 和profile到另外两台机器:
删除master的部分数据
因为以前是伪分布 所以要删除以前的信息
[root@master hadoop]# rm -rf logs/
[root@master hadoop]# rm -rf tmp/拷贝jdk到另外两台机器
[root@master hadoop]# scp -r /usr/local/jdk sliver103:/usr/local
[root@master hadoop]# scp -r /usr/local/jdk sliver104:/usr/local拷贝hadoop到另外两台机器 scp表示加密拷贝
[root@master local]# scp -r /usr/local/hadoop sliver104:/usr/local
[root@master local]# scp -r /usr/local/hadoop sliver103:/usr/local拷贝环境变量到另外两台机器
[root@master local]# scp /etc/profile sliver103:/etc/
[root@master local]# scp /etc/profile sliver104:/etc/
后重启下配置文件:
[root@sliver103 local]# source /etc/profile
[root@sliver104 local]# source /etc/profile
7 配置主从(仅仅在master节点中修改即可):
[root@master local]# cd hadoop/conf/
[root@master conf]# vi slaves // 添加从节点, 修改成如下
[root@master conf]# cat slaves
sliver103
sliver104
执行格式化 并启动
[root@master local]# hadoop namenode -format
[root@master hadoop]# sh bin/start-all.sh
starting namenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-namenode-master.out 启动namenode
sliver103: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-datanode-sliver103.out 在103上启动datanode
sliver104: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-datanode-sliver104.out 在104上启动datanode
localhost: starting secondarynamenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-secondarynamenode-master.out 启动secondarynamenode
starting jobtracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-jobtracker-master.out 启动jobtracker
sliver103: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-tasktracker-sliver103.out 在103上启动tasktracker
sliver104: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-root-tasktracker-sliver104.out 在103上启动tasktracker
[root@master hadoop]# jps // 此时namenode 上只有如下几项
11373 SecondaryNameNode
11446 JobTracker
11118 NameNode
11585 Jps[root@sliver103 local]# jps // datanode下只有datanode的信息
28217 Jps
28046 DataNode
28140 TaskTracker[root@sliver104 local]# jps
19702 TaskTracker
19615 DataNode
19814 Jps
将secondarynamenode 启动从master上剥离: ----> master的 hadoop/conf/masters下修改成:
[root@master conf]# cat masters
sliver103
重新启动后:
[root@master hadoop]# jps
17404 NameNode
17695 Jps
17597 JobTracker[root@sliver103 local]# jps
30078 SecondaryNameNode
30006 DataNode
30393 Jps
30169 TaskTracker[root@sliver104 local]# jps
20618 DataNode
20727 TaskTracker
20860 Jps
namenode:
# cat core-site.xml <name>fs.default.name</name><value>hdfs://master:9000</value> -->此处指定别名为master的机器作namenodejobtracker:
# cat mapred-site.xml <name>mapred.job.tracker</name><value>master:9001</value> -->此处指定别名为master的机器作jobtracker指定 secondnamenode:
主节点的 hadoop/conf/masters 内指定secondnamenode对应机器名指定 datanode:
主节点的 hadoop/conf/slivers 内指定datanode对应机器名
1.hadoop的分布式安装过程1.1 分布结构 主节点(1个,是hadoop0):NameNode、JobTracker、SecondaryNameNode从节点(2个,是hadoop1、hadoop2):DataNode、TaskTracker1.2 各节点重新产生ssh加密文件1.3 编辑各个节点的/etc/hosts,在该文件中含有所有节点的ip与hostname的映射信息1.4 两两节点之间的SSH免密码登陆ssh-copy-id -i hadoop1scp /root/.ssh/authorized_keys hadoop1:/root/.ssh/ 1.5 把hadoop0的hadoop目录下的logs和tmp删除1.6 把hadoop0中的jdk、hadoop文件夹复制到hadoop1和hadoop2节点scp -r /usr/local/jdk hadoop1:/usr/local/1.7 把hadoop0的/etc/profile复制到hadoop1和hadoop2节点,在目标节点中执行source /etc/profile1.8 编辑hadoop0的配置文件slaves,改为从节点的hostname,分别是hadoop1和hadoop21.9 格式化,在hadoop0节点执行hadoop namenode -format1.10 启动,在hadoop0节点执行start-all.sh****注意:对于配置文件core-site.xml和mapred-site.xml在所有节点中都是相同的内容。2.动态的增加一个hadoop节点2.1 配置新节点的环境(eg:机器名 jdk hadoop ssh 机器名和ip对应关系)2.2 把新节点的hostname配置到主节点的slaves文件中2.3 在新节点,启动进程hadoop-daemon.sh start datanodehadoop-daemon.sh start tasktracker2.4 在主节点执行脚本 hadoop dfsadmin -refreshNodes 通知nomenode(通知老大我来了)
3.动态的下架一个hadoop节点方式1: 将datanode加入黑名单并更新黑名单--> 在hdfs-site.xml上,将datanode的hostname或者ip加入配置选项 dfs.hosts.exclude指定的文件中,
- <property>
- <name>dfs.hosts.exclude</name>
- <value>/ddmap/hadoop-1.0.4/conf/hdfs_exclude</value>
- </property>
然后在主节点执行 hadoop dfsadmin -refreshNodes 方式2: 拔掉datanode机器的网线,让集群自动感知并下架这台节点
hadoop1.1.2分布式安装---集群动态增减节点相关推荐
- 【Kafka】Kafka集群 动态 添加 节点 可行否
文章目录 1.概述 2.集群 2.1 准备2个节点 2.2 修改配置 2.2.1 node1 配置 2.2.2 node2 配置 2.3 启动zk 2.4 启动node1 2.5 测试 2.6 启动n ...
- hadoop+Spark+hbase集群动态增加节点
如果一个集群资源不够用需要扩展的时候怎么办,那么是可以不关机动态扩展的,具体操作如下: 已有集群: 192.168.111.11 lyy1 ---master节点 192.168.111.12 lyy ...
- 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南
原文:http://my.oschina.net/wstone/blog/365010#OSC_h3_13 (WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 [X] ...
- FastDFS分布式文件系统集群安装与配置
原文链接:http://blog.csdn.net/xyang81/article/details/52928230 FastDFS集群规划 跟踪服务器负载均衡节点1:192.168.1.206 df ...
- Kettle分布式集群安装部署详细步骤和使用分布式Kettle集群示例
Kettle分布式集群安装部署详细步骤和使用分布式Kettle集群示例 一.下载kettle和mysql驱动 二.相关技术博客 三.Kettle分布式集群环境准备 四.解压kettle 五.执行Kit ...
- 理解和实现分布式TensorFlow集群完整教程
手把手教你搭建分布式集群,进入生产环境的TensorFlow 分布式TensorFlow简介 前一篇<分布式TensorFlow集群local server使用详解>我们介绍了分布式Ten ...
- 使用Docker Swarm搭建分布式爬虫集群
转载自 使用Docker Swarm搭建分布式爬虫集群 在爬虫开发过程中,你肯定遇到过需要把爬虫部署在多个服务器上面的情况.此时你是怎么操作的呢?逐一SSH登录每个服务器,使用git拉下代码,然后运 ...
- airflow+k8s 多用户-分布式-跨集群-容器化调度
https://github.com/tencentmusic/cube-studio 对于考虑使用拖拉拽编排使用云原生调度的可以参考 https://blog.csdn.net/luanpeng82 ...
- Nginx分布式与集群概述
分布式与集群概述 Nginx 本章知识点 架构知识点 三 分布式与集群概述 3.1 概述 3.2 服务器克隆 四 Nignx使用 4.1 Nginx简介 4.2 正向代理和反向代理 4.3 nginx ...
最新文章
- JavaScript 各种遍历方式详解
- python自动化运维开发-Python自动化运维开发----基础(七)元组
- sourceTree 的使用教程
- XGBoost:Python下 安装
- elasticsearch高亮显示查询结果
- C#——《C#语言程序设计》实验报告——面向对象程序设计——字符串加密
- C语言考试题及答案(8),2015年计算机二级C语言测试题及答案(8)
- 转载:你需要知道的16个Linux服务器监控命令
- 汇川技术小型PLC梯形图编程系列教程(零):梯形图编程学习指南
- jmeter生成测试报告
- Mathematica图像处理
- 树莓派 引脚及接口图 AV接口顺序
- iOS XCode storyboard 设置控件三等分屏幕的约束添加
- JVM调优实践:记录初次JVM调优经历
- 美团点评 2019校园招聘 后台开发方向职位编程题-2018.09.06
- html5摄像头手势识别,基于OpenCV的摄像头动态手势轨迹识别及其应用
- 全网顶尖,毫不夸张的说这份斯坦福大学机器学习教程中文笔记,能让你机器学习从入门到精通
- Homebrew替换阿里云镜像源
- 时间复杂度和空间复杂度复习 (一)
- 自己设计一个美观的网页版介绍界面(HBuilder)