转载请标明出处: 

http://blog.csdn.net/zwto1/article/details/45647643; 

本文出自:【zhang_way的博客专栏】

工具:

虚拟机virtualbox.  JDK  hadoop1.1.2

Hadoop集群环境的搭建:

说明:在hadoop伪分布式基础上进行安装集群环境

分布结构

主节点(1个,是hadoop):NameNode、JobTracker、SecondNameNode

从节点(2个,是hadoop1、hadoop2):DataNode、Tasktracker

Virtuabox里复制出两个节点,作为从节点。改ip.

192.168.56.100

以下命令来使设置生效。

service network restart

注意:当上述命令输入之后,出现了问题,这是delete掉以前的网络连接,重启系统,在自动生成的网络连接里改IP。

改主机名:

vi  /etc/sysconfig/network

将HOSTNAME改为hadoop1 ,重启使主机名生效。

如果改主节点的主机名后,要再改:

vi /etc/hosts # 将主机名改掉。这里是DNS映射

Hadoop 里的配置也要改关于主机的部分:

cd /usr/local/Hadoop/conf
vi core-site.xml
vi mapred-site.xml

另个节点相同操作,对网络进行配置。

把复制的两个节点ssh配置删了。

cd  /root/.ssh
ls
rm–rf  *

把/usr/local 下的东西全部删了

cd/usr/local
ls
rm–rf  *

把以前配置的环境变量内容也删了

vi  /etc/profile

另个节点相同操作,直接如下操作:

rm -rf/root/.ssh/*
rm -rf/usr/local/*
vi/etc/profile

各节点重新产生ssh加密文件:

ssh-keygen –t rsa

[root@hadoop1local]# cd /root/.ssh
[root@hadoop1.ssh]# cat id_rsa.pub >> authorized_keys
[root@hadoop1.ssh]# ssh localhost
Theauthenticity of host 'localhost (::1)' can't be established.
RSA keyfingerprint is 2a:35:90:55:ab:b0:74:3c:e4:8a:fc:16:ad:c9:28:21.
Are yousure you want to continue connecting (yes/no)? yes
Warning:Permanently added 'localhost' (RSA) to the list of known hosts.
Lastlogin: Sun May 10 15:05:52 2015 from 192.168.56.1
[root@hadoop1~]#exit

编辑各个节点的/etc/hosts,在该文件中含有所有节点的ip与hostname的映射信息

查看是否ssh可以解析本主机名

不能解析要去/etc/hosts 里进行配置 例如:

192.168.56.101  hadoop1

另一节点是相同配置的

如果改了主节点的主机名的话,也要重新产生ssh机密文件,跟以上的操作是一样的。

各主机要相互访问,ping通。要对hosts 文件进行配置

在hosts文件里加入相应ip 和主机名,例如在主机hadoop里加入

192.168.56.101    hadoop1

192.168.56.102    hadoop2

其他两个节点相同做法。这里有个问题如果是100台机器这样操作不累死了?解决办法:

把一台配置好的,我们可以直接把它复制到另两个节点上。这里涉及ssh的免密码登陆。

两两节点之间的SSH免密码登陆

把hadoop的公钥复制到hadoop1上;

ssh-copy-id  -i  hadoop1

测试是否可以免密码登陆;

ssh hadoop1

再把hadoop2的公钥复制到hadoop1上;

ssh-copy-id  -i hadoop1

测试是否可以免密码登陆;

ssh hadoop2

hadoop和hadoop2节点应该有相同的配置。为了方便,如下操作:

在hadoop1下 :

[root@hadoop1.ssh]# scp /root/.ssh/authorized_keys hadoop:/root/.ssh/
root@hadoop'spassword:
authorized_keys                                100% 1181     1.2KB/s  00:00

在hadoop里测试看是否复制过去了

more  /root/.ssh/authorized_keys

同理复制给hadoop2

把hadoop的hadoop目录下的logs和tmp删除

[root@hadooplocal]# cd hadoop
[root@hadoophadoop]# ls
bin          hadoop-ant-1.1.2.jar          ivy          README.txt
build.xml    hadoop-client-1.1.2.jar       ivy.xml      sbin
c++          hadoop-core-1.1.2.jar         lib          share
CHANGES.txt  hadoop-examples-1.1.2.jar     libexec      src
conf         hadoop-minicluster-1.1.2.jar  LICENSE.txt tmp
contrib      hadoop-test-1.1.2.jar         logs         webapps
docs         hadoop-tools-1.1.2.jar        NOTICE.txt
[root@hadoophadoop]# rm -rf logs/
[root@hadoophadoop]# rm -rf tmp/

把hadoop中的jdk、hadoop文件夹复制到hadoop1和hadoop2节点

scp –r /usr/local/jdk  Hadoop1:/usr/local/
scp –r /usr/local/hadoop Hadoop1:/usr/local/
scp –r /usr/local/jdk  Hadoop2:/usr/local/
scp –r /usr/local/hadoop Hadoop2:/usr/local/

把hadoop的/etc/profile复制到hadoop1和hadoop2节点,在目标节点中执行source  /etc/profile

[root@hadooplocal]# scp /etc/profile  hadoop1:/etc/
profile                            100% 1986     1.9KB/s  00:00

[root@hadoop1local]# source /etc/profile

[root@hadooplocal]# scp /etc/profile  hadoop2:/etc/
profile                            100% 1986     1.9KB/s  00:00

[root@hadoop2~]# source /etc/profile

 编辑hadoop的配置文件slaves,改为从节点的hostname,分别是hadoop1和hadoop2

[root@hadooplocal]# cd hadoop/conf
[root@hadoopconf]# vi slaves

格式化

在hadoop节点执行:

hadoop namenode –format

启动

在hadoop节点执行start-all.sh

浏览器查看启动成功后的界面:


注:对于配置文件core-site.xml和mapred-site.xml在所有节点中都是相同的内容。

如何将SecondaryNameNode 和NameNode分布在不同的节点上?

在hadoop 节点下,修改masters内容

[root@hadoopconf]# vi masters

比如将里面的localhost改为Hadoop1

效果如下:

Hadoop:

[root@hadoopconf]# jps

7008JobTracker

6836NameNode

7105 Jps

Hadoop1:

[root@hadoop1local]# jps

6315DataNode

6470TaskTracker

6561 Jps

6384SecondaryNameNode

动态的增加一个hadoop节点

1) 配置新节点的环境

2)  把新节点的hostname配置到主节点的slaves文件中

3) 在新节点,启动进程

  hadoop-daemon.sh start datanode
  hadoop-daemon.sh start tasktracker

4)在主节点执行脚本

hadoop dfsadmin -refresh  Nodes

动态的下架一个hadoop节点

模拟:

[root@hadoopconf]# jps
7008JobTracker
7203DataNode
7284TaskTracker
6836NameNode
7401 Jps
[root@hadoopconf]# kill -9 7203

在浏览器界面会看到hadoop的lastcontact值会变大,启动datanode它会向namenode汇报,如果联系不上,值就会变大,该值为本次汇报的时间 –上次联系的时间。

安全模式

安全模式下 不可以增删改,但可以查看

如下方式可以查看是否在安全模式下

[root@hadoopconf]# hadoop dfsadmin -safemode get
Safe modeis OFF

如何进入进入安全模式如下:

[root@hadoopconf]# hadoop dfsadmin -safemode enter
Safe modeis ON
[root@hadoopconf]# hadoop dfsadmin -safemode get
Safe modeis ON

离开安全模式:

[root@hadoopconf]# hadoop dfsadmin -safemode leave
Safe modeis OFF
[root@hadoopconf]# hadoop dfsadmin -safemode get
Safe modeis OFF

hadoop 伪分布模式搭建(上) http://blog.csdn.net/zwto1/article/details/44002083

hadoop伪分布模式搭建(下) http://blog.csdn.net/zwto1/article/details/44020263

Hadoop集群环境安装的更多相关文章

  1. hadoop集群环境搭建之zookeeper集群的安装部署

    关于hadoop集群搭建有一些准备工作要做,具体请参照hadoop集群环境搭建准备工作 (我成功的按照这个步骤部署成功了,经实际验证,该方法可行) 一.安装zookeeper 1 将zookeeper ...

  2. hadoop集群环境搭建之安装配置hadoop集群

    在安装hadoop集群之前,需要先进行zookeeper的安装,请参照hadoop集群环境搭建之zookeeper集群的安装部署 1 将hadoop安装包解压到 /itcast/  (如果没有这个目录 ...

  3. CentOS7 安装Hadoop集群环境

    先按照上一篇安装与配置好CentOS以及zookeeper http://www.cnblogs.com/dopeter/p/4609276.html 本章介绍在CentOS搭建Hadoop集群环境 ...

  4. Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!)

    Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!) 一.JDK的安装 安装位置都在同一位置(/usr/tools/jdk1.8.0_73) jdk的安装在克隆三台机器的时候可以提前安装 ...

  5. Hadoop集群搭建安装过程(二)(图文详解---尽情点击!!!)

    Hadoop集群搭建安装过程(二)(配置SSH免密登录)(图文详解---尽情点击!!!) 一.配置ssh无密码访问 ®生成公钥密钥对 1.在每个节点上分别执行: ssh-keygen -t rsa(一 ...

  6. hadoop集群环境搭建准备工作

    一定要注意hadoop和linux系统的位数一定要相同,就是说如果hadoop是32位的,linux系统也一定要安装32位的. 准备工作: 1 首先在VMware中建立6台虚拟机(配置默认即可).这是 ...

  7. hadoop集群环境的搭建

    hadoop集群环境的搭建 今天终于把hadoop集群环境给搭建起来了,能够运行单词统计的示例程序了. 集群信息如下: 主机名 Hadoop角色 Hadoop jps命令结果 Hadoop用户 Had ...

  8. Hadoop集群环境搭建步骤说明

    Hadoop集群环境搭建是很多学习hadoop学习者或者是使用者都必然要面对的一个问题,网上关于hadoop集群环境搭建的博文教程也蛮多的.对于玩hadoop的高手来说肯定没有什么问题,甚至可以说事“ ...

  9. 简单Hadoop集群环境搭建

    最近大数据课程需要我们熟悉分布式环境,每组分配了四台服务器,正好熟悉一下hadoop相关的操作. 注:以下带有(master)字样为只需在master机器进行,(ALL)则表示需要在所有master和 ...

随机推荐

  1. bcache的使用

    一.前提:内核中需要配置bcache模块 1.1 检查 - 是否存在于内核中:检查/sys/fs/bcache目录是否存在,没有说明内核中没有bcache - 是否以内核模块方式存在:检查/lib/m ...

  2. [翻译] 编写高性能 .NET 代码--第二章 GC -- 减少大对象堆的碎片,在某些情况下强制执行完整GC,按需压缩大对象堆,在GC前收到消息通知,使用弱引用缓存对象

    减少大对象堆的碎片 如果不能完全避免大对象堆的分配,则要尽量避免碎片化. 对于LOH不小心就会有无限增长,但LOH使用的空闲列表机制可以减轻增长的影响.利用这个空闲列表,我们可以在两块分配区域中间找到 ...

  3. php的ob函数实现页面静态化

    首先介绍一下php中ob缓存常用到的几个常用函数ob_start():开启缓存机制ob_get_contents():获取ob缓存中的内容ob_clean()清除ob缓存中的内容,但不关闭缓存ob_e ...

  4. dubbox系列【二】——dubbox admin环境搭建

    1.环境 JDK7+ zookeeper 3.3.6 tomcat 7+ 2.搭建步骤 (1)安装zookeeper 单机模式:参考这里. 伪集群模式:参考这里. ①单机或伪集群模式均可. ②笔者使用 ...

  5. Python 练习册,每天一个小程序----第0000题

    题目 第 0000 题: 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 Code: from PIL import Image,Imag ...

  6. mysql的常用引擎

    在MySQL数据库中,常用的引擎主要就是2个:Innodb和MyIASM. 首先: 1.简单介绍这两种引擎,以及该如何去选择.2.这两种引擎所使用的数据结构是什么. 1. a.Innodb引擎,Inn ...

  7. wpf通过VisualTreeHelper找到控件内所有CheckBox和TextBox并做相应绑定

    #region CheckBox与TextBox绑定 Dictionary<CheckBox, TextBox> CheckTextBoxDic = new Dictionary<C ...

  8. 普通权限拿webshell

    普通权限拿webshell:   1.0day拿webshell:这个不多说.可以去网上搜索一些, 比如你找到你搞的网站cms是discz的,你可以搜索一些相 关0day直接拿   2.修改网站上传类 ...

  9. HI3531的nand flash测试

    void NAND_Init() {    *(unsigned int *)(0x20030000 + 0xd0) = 7; delay_x(0X5000);    *(unsigned int * ...

  10. HighCharts之2D带有Legend的饼图

    HighCharts之2D带有Legend的饼图 1.实例源码 PieLegend.html: <!DOCTYPE html> <html> <head> < ...