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)名称类 ...
随机推荐
- Libevent使用样例,从简单到复杂
转载请注明出处:http://blog.csdn.net/luotuo44/article/details/39670221 本文从简单到复杂.展示怎样使用libevent.网上的很多 ...
- 蜗牛—JSONJ学习ava转变
最近,写网站管理员,使用异步通信技术,所使用的方法是JSON数据传输模式 需要以下jar文件 然后,自己写了一点点经常使用代码 Java的List和数组要用JSONArray对象 Map和实体用JSO ...
- cocos2d-x 贝塞尔曲线的简单运用(CCBezierTo,CCBezierBy)
原文链接:http://blog.csdn.net/we000636/article/details/8616355 一.贝赛尔曲线简单介绍 贝塞尔曲线是应用于二维图形应用程序的数学曲线.曲线的定义有 ...
- 为智能硬件提供一站式解决方案——机智云GoKit评测
为智能硬件提供一站式解决方案——机智云GoKit评测 2014年12月24日 作者: ladouyu 3 17,414+ 4 EMW3162GoKit开发板STM32F103智能硬件机智云2.0 从物 ...
- 使用zTree和json构建简单树节点
我们经常碰到须要构建树结构展示的情况,我推荐使用zTree和JSON. 比如: <? php /** * * 使用zTree和json构建树节点 * */ $arr = array( 0=> ...
- Java 并发编程(三)为线程安全类中加入新的原子操作
Java 类库中包括很多实用的"基础模块"类.通常,我们应该优先选择重用这些现有的类而不是创建新的类.:重用能减少开发工作量.开发风险(由于现有类都已经通过測试)以及维护成本.有时 ...
- hdu5384(trie树)
hdu5384 给定n个字符串Ai 给定m个字符串Bi 问所有的Bi在每个Ai中出现了多少次 很显然,对Bi建Trie图,然后每次用Ai去匹配的时候,不断查找当前匹配串的最长后缀,这样就能找到答案了 ...
- u-boot: Error: Can't overwrite "ethaddr"
When try to execute following command, It reports error as following: --->8--- U-Boot> setenv ...
- android选择和裁剪图像拍摄的图像
转载请注明出处:http://blog.csdn.net/allen315410/article/details/39994913 近期从曾经的项目中扒下来一个经常使用的模块.在这里有必要记录一下的. ...
- 矩阵快速幂---BestCoder Round#8 1002
当要求递推数列的第n项且n很大时,怎么快速求得第n项呢?可以用矩阵快速幂来加速计算.我们可以用矩阵来表示数列递推公式比如fibonacci数列 可以表示为 [f(n) f(n-1)] = [f(n ...