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
8 启动:
执行格式化 并启动
[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
9 访问链接 http://master:50070/dfsnodelist.jsp?whatNodes=LIVE 如下成功效果:


 
10 指定secondarynamenode位置,取代默认设置做法:
将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
11 jobtracker , namenode  , datanode由什么来决定
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对应机器名
12 hadoop1/conf下个配置文件作用:


 
分布式安装流程如下:
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指定的文件中,
  1. <property>
  2. <name>dfs.hosts.exclude</name>
  3. <value>/ddmap/hadoop-1.0.4/conf/hdfs_exclude</value>
  4. </property>
然后在主节点执行 hadoop dfsadmin -refreshNodes    方式2: 拔掉datanode机器的网线,让集群自动感知并下架这台节点
参考链接: http://mapserver000-gmail-com.iteye.com/blog/1738898

hadoop1.1.2分布式安装---集群动态增减节点相关推荐

  1. 【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 ...

  2. hadoop+Spark+hbase集群动态增加节点

    如果一个集群资源不够用需要扩展的时候怎么办,那么是可以不关机动态扩展的,具体操作如下: 已有集群: 192.168.111.11 lyy1 ---master节点 192.168.111.12 lyy ...

  3. 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

    原文:http://my.oschina.net/wstone/blog/365010#OSC_h3_13 (WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 [X] ...

  4. FastDFS分布式文件系统集群安装与配置

    原文链接:http://blog.csdn.net/xyang81/article/details/52928230 FastDFS集群规划 跟踪服务器负载均衡节点1:192.168.1.206 df ...

  5. Kettle分布式集群安装部署详细步骤和使用分布式Kettle集群示例

    Kettle分布式集群安装部署详细步骤和使用分布式Kettle集群示例 一.下载kettle和mysql驱动 二.相关技术博客 三.Kettle分布式集群环境准备 四.解压kettle 五.执行Kit ...

  6. 理解和实现分布式TensorFlow集群完整教程

    手把手教你搭建分布式集群,进入生产环境的TensorFlow 分布式TensorFlow简介 前一篇<分布式TensorFlow集群local server使用详解>我们介绍了分布式Ten ...

  7. 使用Docker Swarm搭建分布式爬虫集群

    转载自  使用Docker Swarm搭建分布式爬虫集群 在爬虫开发过程中,你肯定遇到过需要把爬虫部署在多个服务器上面的情况.此时你是怎么操作的呢?逐一SSH登录每个服务器,使用git拉下代码,然后运 ...

  8. airflow+k8s 多用户-分布式-跨集群-容器化调度

    https://github.com/tencentmusic/cube-studio 对于考虑使用拖拉拽编排使用云原生调度的可以参考 https://blog.csdn.net/luanpeng82 ...

  9. Nginx分布式与集群概述

    分布式与集群概述 Nginx 本章知识点 架构知识点 三 分布式与集群概述 3.1 概述 3.2 服务器克隆 四 Nignx使用 4.1 Nginx简介 4.2 正向代理和反向代理 4.3 nginx ...

最新文章

  1. java输入字符串异常_设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。...
  2. windows找不到msconfig解决方法
  3. android通讯录管理(获取联系人,通话记录,短信消息),Android通讯录管理(获取联系人、通话记录、短信消息)(二)...
  4. QT中使用OpenGL绘制图形
  5. java 手写阻塞队列_Java阻塞队列的实现
  6. python post 上传文件_如何在 Python 中模拟 post 表单来上传文件
  7. Android p Sign Tool
  8. oracle 更改system.dbf,oracle数据文件system01.dbf上有坏块,如何修复
  9. 音频处理工具 GoldWave / Cool Edit Pro
  10. 使用开源项目DCRM搭建Cydia源服务器
  11. 计算机右侧不显示桌面,显示器右边显示不出来怎么办
  12. java后端工程师主流技术
  13. java订单到期自动取消_订单自动过期实现方案
  14. JAVA程序猿推荐看的15本书_错过了是你损失
  15. rar和zip格式的压缩与解压
  16. php sleep usleep,php暂停函数 sleep() 与 usleep() 函数的区别
  17. 工作中遇到的问题汇总
  18. GLES2.0中文API-glFramebufferTexture2D
  19. bp神经网络数学建模论文,关于bp神经网络的论文
  20. Python 经纬度,偏航角,距离计算

热门文章

  1. gitee使用教程(超详解)
  2. 操作系统 图形窗口 子系统
  3. 23种设计模式(GOF)
  4. 物联网考计算机是跨专业,大学生,物联网专业学什么,考研能跨什么专业考研?...
  5. led驱动电源初学者必看_初学者:如何在Windows 8中查看Metro应用程序的已用驱动器空间...
  6. STM32—4线SPI驱动SSD1306 OLED
  7. Ansoft Designer v4.0 -ISO 1CD(电子电磁仿真)
  8. 决策树模型回归可视化分析_商业分析过程与数据探索
  9. springcloud项目读取本地文件失败
  10. 数字金融、智能金融、区块链等关键词都得到热烈讨论