`

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

 

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的机器作namenode
 
jobtracker:
# 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、TaskTracker
	1.2 各节点重新产生ssh加密文件
	1.3 编辑各个节点的/etc/hosts,在该文件中含有所有节点的ip与hostname的映射信息
	1.4 两两节点之间的SSH免密码登陆
			ssh-copy-id -i  hadoop1
			scp /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/profile
	1.8 编辑hadoop0的配置文件slaves,改为从节点的hostname,分别是hadoop1和hadoop2
	1.9 格式化,在hadoop0节点执行hadoop namenode -format
	1.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 datanode
			hadoop-daemon.sh start tasktracker
	2.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机器的网线,让集群自动感知并下架这台节点
   
  • 大小: 26.9 KB
  • 大小: 9.6 KB
  • 大小: 10.7 KB
分享到:
评论

相关推荐

    win7 x64 eclipse_kepler下编译 hadoop1.1.2-celipse-plugin

    win7 x64 eclipse_kepler下编译 hadoop1.1.2-celipse-plugin

    linux-32-eclipse-kepler-hadoop-1.1.2-eclipse-plugin.rar

    标题 "linux-32-eclipse-kepler-hadoop-1.1.2-eclipse-plugin.rar" 暗示了这是一个针对32位Linux系统、基于Eclipse Kepler版本的Hadoop 1.1.2插件的压缩包。描述中的内容与标题相同,进一步确认了这个压缩包的内容。...

    hadoop-eclipse-plugin-1.1.2.jar

    &lt;property name="root" value="/home/hadoop/soft/hadoop-1.1.2/src/contrib/eclipse-plugin"/&gt; &lt;property name="eclipse.home" location="/home/hadoop/Software/eclipse"/&gt; &lt;property name="version" value="...

    Hadoop技术-Hadoop完全分布式安装.pptx

    1. Hadoop完全分布式运行模式:Hadoop完全分布式运行模式是指在多台机器上安装和配置Hadoop,从而组成一个计算机集群,每个节点都有着特定的职责,构成了真正的生产环境。 2. Hadoop完全分布式安装步骤:Hadoop完全...

    hadoop全分布式-脚本一键安装

    总之,Hadoop的一键安装脚本是大数据领域的一个实用工具,它结合了Linux自动化命令和Hadoop的配置知识,使得部署大规模分布式数据处理环境变得更加便捷。对于想要学习和使用Hadoop的开发者来说,掌握这种安装方式...

    海量数据下基于Hadoop的分布式FP-Growth算法.pdf

    在Hadoop分布式环境下,这些数据分片可以被分配到不同的节点上,并行地构建各自的FP树。然后,算法会选择一个节点作为根节点,收集其他节点上的FP树部分,构建全局FP树。最后,在全局FP树上进行频繁项集的挖掘。 ...

    hadoop1.1.2安装和配置

    hadoop1.1.2安装和配置hadoop1.1.2安装和配置hadoop1.1.2安装和配置hadoop1.1.2安装和配置hadoop1.1.2安装和配置hadoop1.1.2安装和配置hadoop1.1.2安装和配置hadoop1.1.2安装和配置hadoop1.1.2安装和配置hadoop1.1.2...

    Hadoop第02天-01.伪分布式启动-fs格式化-webui.avi

    Hadoop伪分布式启动-fs格式化-webui.avi!!

    hadoop伪分布式安装.pdf

    因为它能够在单个机器上模拟出多节点集群的行为,从而便于理解Hadoop的工作原理及配置细节。 #### 二、Hadoop伪分布式环境准备 在开始配置Hadoop伪分布式之前,需要确保已经完成了基本的环境搭建工作。主要包括: ...

    Host-noly 模式下hadoop1.1.2伪分布式安装

    9 安装hadoop1.1.2 10 启动时没有NameNode的可能原因: 11 运行简单的 MapReduce 计算 每一步骤配有解释,代码,还有运行结果截图。 强烈鄙视一大堆代码和解释,不配执行结果,自己运行时候出一大堆错!!!

    hadoop完全分布式集群搭建笔记

    本文详细介绍了Hadoop完全分布式集群的搭建过程,包括环境准备、网络配置、JDK安装与配置、Hadoop安装与配置以及集群启动和验证等关键步骤。通过这些步骤,可以成功搭建一个功能完备的Hadoop分布式集群,为后续的大...

    hadoop-core-1.1.2.jar

    hadoop-core-1.1.2-jar hadoop-core-1.1.2.jar hadoop-core-1.1.2.jar hadoop-core-1.1.2.jar

    hadoop2.6.3-spark1.5.2-hbase-1.1.2-hive-1.2.1-zookeeper-3.4.6安装指南

    hadoop2.6.3-spark1.5.2-hbase-1.1.2-hive-1.2.1-zookeeper-3.4.6安装指南

    hadoop-eclipse-plugin-1.1.2

    安装Hadoop Eclipse Plugin非常简单,只需要将`hadoop-eclipse-plugin-1.1.2.jar`文件复制到Eclipse的`plugins`目录下,然后重启Eclipse。重启后,Eclipse会自动识别并加载该插件,此时,在"File"菜单中选择"New" -...

    分布式K-means聚类算法研究与实现.pdf

    在Hadoop平台上实现分布式K-means算法,首先要考虑的是数据的分片存储,即将大数据集分散存储到多个节点上。其次,算法的设计和实现策略也至关重要,包括中心点的选取、数据点与中心点的距离计算以及中心点的更新等...

    hadoop完全分布式安装步骤

    ### Hadoop完全分布式安装步骤详解 #### 一、实验环境准备 本次实验使用VirtualBox虚拟机作为实验平台...以上步骤为Hadoop完全分布式安装的基础准备阶段,按照此步骤操作,可以为后续的Hadoop集群搭建打下坚实的基础。

    Hadoop技术-Hadoop伪分布式安装.pptx

    Hadoop技术-Hadoop伪分布式安装 Hadoop技术是当前大数据处理和存储领域中最流行的技术之一,Hadoop伪分布式安装是Hadoop技术中的一个重要组件。本文将详细介绍Hadoop伪分布式安装的步骤和配置过程。 一、Hadoop伪...

Global site tag (gtag.js) - Google Analytics