Hadoop入门进阶步步高(五)-搭建Hadoop集群
五、搭建Hadoop集群
上面的步骤,确认了单机能够运行Hadoop的伪分布运行,真正的分布式运行无非也就是多几台slave机器而已,配置方面的有一点点差别,配置起来就很easy了。
1、准备三台server
|
192.168.56.101 192.168.56.102 192.168.56.103 |
在每台机器的/etc/hosts中都将ip及hostname给映射上:
|
192.168.56.101 nginx1 192.168.56.102 nginx2 192.168.56.103 nginx3 |
当中192.168.56.101为前面配置的那台server,用于做为namenode及jobtracker,另外两台用于做slaves,用于运行datanode及tasktracker。
要使某台server成为namenode,必须在要core-site.xml中指定它;要使某个节点成为jobtracker,必须在mapred-site.xml指定它,这个參见第5点中的core-site.xml以及mapred-site.xml的配置。
对Hadoop来说,从hdfs的角度来看有namenode及datanode,namenode仅仅能够有一个,而datanode能够有多个,namenode存放的是datanode中文件的元数据,client通过namenode获取datanode中文件的信息;从jobtracker角度来说看有jobtracker及tasktracker,jobtracker仅仅能够有一个,而tasktracker能够有多外,tasktracker通过jobtracker来调度。
在本例中使用192.168.56.101做为namenode及jobtracker,使用192.168.56.102做为secondarynamenode、datanode以及tasktracker,使用192.168.56.103做为datanode以及tasktracker,详情參见以下的配置。
2、三台server要具有一致的配置信息
1)、JDK的路径必须同样;
2)、操作Hadoop的用户必须同样;
3)、Hadoop的存放路径必须同样;
Slave机器上的hadoop可直接将namenode上面的hadoop拷贝过去,不用做不论什么改动,仅仅要路径放置就能够了;
4)、每台机器~/.ssh文件夹下存放同样的id_rsa及authorized_keys
将namenode的机器上的~/.ssh/id_rsa及authorized_keys复制到每台slave机器上的~/.ssh中,当然slave机器中也必须是安装了ssh的了,然后在每台机器上都通过ssh訪问一下其他的两台机器,确保都是能够不输入password訪问的。
5)、三台机器的/etc/profile中的内容同样;
3、改动$HADOOP_HOME/conf/slaves文件
这个文件存放的是全部datanode的IP或者机器名,每行指定一个。我们这里使用nginx2及nginx3来做为datanode,因此slaves文件的配置例如以下:
|
nginx2 nginx3 |
4、改动$HADOOP_HOME/conf/masters文件(此例中可选)
masters文件里放置的是secondarynamenode的机器名,当中默认的内容为“localhost”,可是在生产环境中,肯定不会将namenode和secondarynamenode放置在同一台server上,在此例中我就将secondarynamename设置在第二台server上,那么此时文件里的内容应该例如以下:
|
#这里仅仅使用一台做为secondarynamenode nginx2 #nginx3 |
5、改动core-site.xml、mapred-site.xml及hdfs-site.xml
仅仅须要做简单的改动就能够了,不同点以红色字体标识出。
core-site.xml:
|
<configuration> <property> <!-- 用于设置Hadoop的文件系统,由URI指定,value相应的server就是namenode所在的server及port,secondarynamenode通过在masters这个文件里指定 --> <name>fs.default.name</name> <value>hdfs://</value> </property> </configuration> |
6、启动验证
6.1查看进程
DataNode都是通过NameNode启动起来的,因而启动的时候仅仅须要在NameNode上运行start-all.sh就能够了,此时我们查看各server中的进程。
Nginx1(NameNode)所在server:
|
fenglibin@ubuntu1110:/usr/local/hadoop-1.2.1$ jps 2834 NameNode 3011 JobTracker 3108 Jps |
Ngnix2:
|
fenglibin@ubuntu11102:~$ jps 984 DataNode 1075 TaskTracker 919 SecondaryNameNode 1420 Jps |
Ngnix3:
|
fenglibin@ubuntu11103:~$ jps 1374 Jps 1021 TaskTracker 846 DataNode |
从上面的进程信息,能够看到nginx1中启动了namenode及jobtracker,,nginx2和nginx3都分别启动了DataNode及TaskTracker,仅仅是nginx2中比nginx3中多启动了一个SecondaryNameNode,这也是我们希望的结果。
通过例如以下命令:
|
hadoop dfsadmin -report |
可得到例如以下输出:
|
Warning: $HADOOP_HOME is deprecated. Safe mode is ON Configured Capacity: 15283421184 (14.23 GB) Present Capacity: 10592149504 (9.86 GB) DFS Remaining: 10591629312 (9.86 GB) DFS Used: 520192 (508 KB) DFS Used%: 0% Under replicated blocks: 20 Blocks with corrupt replicas: 0 Missing blocks: 0 ------------------------------------------------- Datanodes available: 2 (2 total, 0 dead) Name: 192.168.56.102:50010 Decommission Status : Normal Configured Capacity: 7641710592 (7.12 GB) DFS Used: 307200 (300 KB) Non DFS Used: 2733502464 (2.55 GB) DFS Remaining: 4907900928(4.57 GB) DFS Used%: 0% DFS Remaining%: 64.23% Last contact: Sun Jun 15 15:46:39 CST 2014 Name: 192.168.56.103:50010 Decommission Status : Normal Configured Capacity: 7641710592 (7.12 GB) DFS Used: 212992 (208 KB) Non DFS Used: 1957769216 (1.82 GB) DFS Remaining: 5683728384(5.29 GB) DFS Used%: 0% DFS Remaining%: 74.38% Last contact: Sun Jun 15 15:46:39 CST 2014 |
6.2 集群状态监控页面
查看namenode的状态
namenode是布署在192.168.56.101上,仅仅须要输入:
192.168.56.102:
当中port50090是secondarynamenode的监控port,而50060是tasktracker的监控port,而50010、50075以及50020都是datanode使用的port。
而在192.168.56.103上,却仅仅开了两个port:
分别与namenode以及jobtracker相连着的。
为什么在192.168.56.103上面tasktracker以及datanode的监控呢?
Hadoop入门进阶步步高(五)-搭建Hadoop集群的更多相关文章
- VMware 克隆linux后找不到eth0(学习hadoop,所以想快速搭建一个集群)
发生情况: 由于在学习hadoop,所以想快速搭建一个集群出来.所以直接在windows操作系统上用VMware安装了CentOS操作系统,配置好hadoop开发环境后,采用克隆功能,直接克 ...
- RabbitMQ入门教程(十五):普通集群和镜像集群
原文:RabbitMQ入门教程(十五):普通集群和镜像集群 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.c ...
- Hadoop入门进阶步步高(六)-Hadoop1.x与Hadoop2的差别
六.Hadoop1.x与Hadoop2的差别 1.变更介绍 Hadoop2相比較于Hadoop1.x来说,HDFS的架构与MapReduce的都有较大的变化,且速度上和可用性上都有了非常大的提高,Ha ...
- Hadoop入门进阶步步高(一)-环境准备
前言 Hadoop从存储上来说,是相似于冗余磁盘阵列(RAID)的存储方式.将数据分散存储并提供以提供吞吐量,它的存储系统就是HDFS(Hadoop Distuibute Fils System).从 ...
- Hadoop入门进阶步步高(三)-配置Hadoop
三.配置Hadoop 1.设置$HADOOP_HOME/conf/hadoop-env.sh 这个文件里设置的是Hadoop运行时须要的环境变量,在1.2.1版中共同拥有19个环境变量.例如以下: ...
- Docker极简入门:使用Docker-Compose 搭建redis集群
为了构建一个集群,我们首先要让 redis 启用集群模式 一个简单的配置文件如下redis.conf # redis.conf file port 6379 cluster-enabled yes c ...
- Hadoop入门进阶步步高(二)-文件夹介绍
二.Hadoop文件夹结构 这里重点介绍几个文件夹bin.conf及lib文件夹. 1.$HADOOP_HOME/bin文件夹 文件名 说明 hadoop 用于运行hadoop脚本命令,被hadoop ...
- 五 搭建kafka集群
1 下载 wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.0.0/kafka_2.12-2.0.0.tgz 2 tar -zxv ...
- Hadoop上路-01_Hadoop2.3.0的分布式集群搭建
一.配置虚拟机软件 下载地址:https://www.virtualbox.org/wiki/downloads 1.虚拟机软件设定 1)进入全集设定 2)常规设定 2.Linux安装配置 1)名称类 ...
随机推荐
- VSTO学习笔记(八)向 Word 2010 中写入表结构
原文:VSTO学习笔记(八)向 Word 2010 中写入表结构 前几天公司在做CMMI 3级认证,需要提交一系列的Word文档,其中有一种文档要求添加公司几个系统的数据库中的表结构.我临时接到了这项 ...
- wx_sample.php
<?php /** * wechat php test */ //define your token define("TOKEN", "weixin&quo ...
- Little Sympathy for Bear Stearns : NPR
Little Sympathy for Bear Stearns : NPR Little Sympathy for Bear Stearns
- 3p
哈,不要自卑.爱情和婚姻可遇不可求,缘到自然成.首要的是人好,容貌別太差,毕竟天天在一起看着要舒心才好,另外应该有上进心,避免势利小人.这些,都要看机缘.所谓right person at right ...
- leetcode第一刷_Permutations II
当有反复元素的时候呢? 不用拍脑袋都会想到一种方法,也是全部有反复元素时的通用处理方法,维护一个set,假设这个元素没增加过就增加,增加过了的忽略掉.可是,在这道题上这个通用方法竟然超时了! 怎么办? ...
- MySQL中Procedure事务编写基础笔记
原文:MySQL中Procedure事务编写基础笔记 目录: 一.PROCEDURE: 二.CREATE PROCEDURE基本语法: 三.PROCEDURE小进阶 3.1.基本的DECLARE语 ...
- VIM命令集
Command Action Notes vim file +54 open file and go to line 54 any : command can be run using + on co ...
- Android之查看外部依赖jar的源代码_android private libralies does not allow modifications to source
在Eclipse中开发android的应用程序时,有时想查看函数的内部实现.可是当在函数上点击ctrl和鼠标左键的时候. 往往出现例如以下提示: Class File Editor Source no ...
- HTML4和HTML5之间10主要差异
HTML5恐怕要让部分网页工作者抓狂了,HTML5将採用标准的XML语法格式,这对代码的规范要求很高. HTML5是最新的HTML标准.尽管还在制定.但或迟或早,全部的web程序猿都会发现须要使用到这 ...
- as 的妙用
个人理解:as跟is is 相当于判断里的“==” 是与否 if(e.OriginalSource is Button) as 一般用来转换另一种object e.OriginalSource as ...