virtualbox 虚拟3台虚拟机搭建hadoop集群
用了这么久的hadoop,只会使用streaming接口跑任务,各种调优还不熟练,自定义inputformat , outputformat, partitioner 还不会写,于是干脆从头开始,自己搭一个玩玩,也熟悉一下整体架构。
整体环境:
主机Win7 i5 4核 8G内存 笔记本;
虚拟机(客户机)采用Centos5.9 ( 用这个的原因是不想用图形界面,并且以后还想试着装一下ICE)
3台互联的虚拟机搭建Hadoop集群:
1. 选用virtualbox V4.2.18 + Centos 5.9
virtualbox V4.2.18 下载地址:http://dlc.sun.com.edgesuite.net/virtualbox/4.2.18/VirtualBox-4.2.18-88781-Win.exe
Centos 5.9 下载地址(共9个iso文件):http://mirror.bit.edu.cn/centos/5.9/isos/x86_64/
2. 安装virtualbox 和 Centos5.9
3. hadoop集群用3台机器,拓扑如下:
master: ip:192.168.56.120
机器名: master
启动NameNode
启动JobTracker
slave1: ip: 192.168.56.121
机器名:slave1
启动SecondaryNameNode
启动DataNode
启动TaskTracker
slave2: ip: 192.168.56.122
机器名:slave2
启动DataNode
启动TaskTracker
4. 配置Centos5.9
要求: 在任何环境下主机和客户机都要能够联通,正常工作。包括:笔记本插网线;笔记本不插网线;笔记本联通无线网络;笔记本完全没有网络等情况。
最复杂的情况是笔记本既没有有线网也没有无线网络且没有插网线的情况,这种情况下必须采用host-only的方式。具体原因不细说,因为我也不清楚这四种网络设置的区别到底有哪些 -_-!!!
配置方式参考:http://www.douban.com/group/topic/15558388/ 也可以google搜索 "virtualbox host-only unplug cable"
还是要说一下我对host-only 方式配置的理解:virtualbox安装好之后在windows的”网络和共享中心“ (XP系统叫做网上邻居)中会出现一个新的虚拟网卡"VirtualBox Host-Only Network"。当虚拟机配置为host-only方式的时候,主机和虚拟机通过这个虚拟网卡进行通讯,因此无论主机的外部网络如何,都能和虚拟机联通。因此需要将虚拟机的ip设置到此虚拟网卡的网段内。
我的配置:
VirtualBox Host-Only Network ipv4设置: ip地址: 192.168.56.1
子网掩码:255.255.255.0
centos ip设置: 参考:http://os.51cto.com/art/201001/177909.htm
执行:【vi /etc/sysconfig/network】
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=master
GATEWAY=192.168.56.1
执行:【vi /etc/sysconfig/network-scripts/ifcfg-eth0】
DEVICE=eth0
BOOTPROTO=static
NM_CONTROLLED=yes
TYPE=Ethernet
IPADDR=192.168.56.120
HWADDR=08:00:27:XX:XX:XX
NETMASK=255.255.255.0
NETWORK=192.168.56.0
ONBOOT=yes
执行:【vi /etc/resolv.conf】添加dns
nameserver 192.168.56.1
执行:【vi
/etc/hosts】 设置本机名和静态域名解析
127.0.0.1 master localhost
::1 master6 localhost6
#hadoop
192.168.56.120 master
192.168.56.121 slave1
192.168.56.122 slave2
执行:【vi /etc/hostname】 设置本机名
master
设置完成后运行:【service network restart】 重启网络服务以使设置生效。
测试设置是否成功: a) 从主机ping虚拟机 和 从虚拟机ping主机都要通。如果不通则需要关闭主机和虚拟机的防火墙。
b) 如果还不通则检查virtualbox设置,如下图红圈的地方需要特别注意。
注意: 上面对机器的ip和机器名设置非常重要,因为hadoop的master与slave的连接是通过机器名来做的
5. 安装ssh服务(比较简单,google)
6. 为虚拟机添加hadoop账户
7. 安装jdk1.6 (据说1.7有些问题)
(此步如果centos自带了1.6的jdk的话,可以省略,但是要找到java的安装路径,因为后面配置环境变量要用)
8. 安装hadoop
9. 配置hadoop
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop_tmp/</value>
</property>
</configuration>
执行:【vi mapred-site.xml】 配置 JobTracker运行在master上的9001端口
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property> </configuration>
执行:【vi hdfs-site.xml】 配置hdfs 备份数量(不能超过机器数)
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property> </configuration>
执行:【vi masters】 配置SecondaryNameNode;指定SecondaryNameNode运行在slave1上。
slave1
执行:【vi slaves】 配置DataNode 和 TaskTracker
slave1
slave2
10. 配置环境变量
$HADOOP_HOME/bin加入PATH#配置java相关的环境变量
export JAVA_HOME=/usr/java/jdk1.6.0_35
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
#配置hadoop相关环境变量
export HADOOP_HOME=/home/hadoop/hadoop-1.2.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/hadoop-core-1.2.1.jar
11. 克隆两台虚拟机(使用链接复制即可)并设置主机名和ip
执行:【vi /etc/sysconfig/network】
修改:HOSTNAME=slave1 和 HOSTNAME=slave2)
::1 master6 localhost6 --> ::1 slave16 localhost6 )
(对slave2修改:127.0.0.1 master localhost --> 127.0.0.1 slave2 localhost
::1 master6 localhost6 --> ::1 slave26 localhost6 )
12. 配置master ssh无密码登陆到所有机器(包括本机)
13. 测试
8192 Jps
6438 NameNode
6614 JobTracker
4606 DataNode
4692 SecondaryNameNode
5980 Jps
4784 TaskTracker
4283 TaskTracker
5437 Jps
4190 DataNode
drwxr-xr-x - hadoop supergroup 0 2013-10-07 22:14 /home
Oh my god! 终于完成了!!!
virtualbox 虚拟3台虚拟机搭建hadoop集群的更多相关文章
- 虚拟机搭建Hadoop集群
安装包准备 操作系统:ubuntu-16.04.3-desktop-amd64.iso 软件包:VirtualBox 安装包:hadoop-3.0.0.tar.gz,jdk-8u161-linux-x ...
- Mac上使用虚拟机搭建Hadoop集群
一. mini安装一台centos到虚拟机上 安装过程参考这篇博客http://www.linuxdown.net/install/setup/2015/0906/4053.html 二. 修改网络配 ...
- win10虚拟机搭建Hadoop集群(已完结)
1 在虚拟机安装 Ubuntu 2 安装网络工具 Ubuntu最小化安装没有 ifconfig命令 sudo apt-get install net-tools 3 Ubuntu修改网卡名字 修改网卡 ...
- 配置ssh免密登录遇到的问题——使用VMware多虚拟机搭建Hadoop集群
搭建环境: 虚拟机 VMware12Pro 操作系统 centos6.8 hadoop 1.2.1 1.导入镜像文件,添加java环境 1.查看当前系统中安装的java,ls ...
- 使用Docker搭建Hadoop集群(伪分布式与完全分布式)
之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自学了Docker也来操练一把,用Docker来构建Hadoop集群,这里搭建的Hado ...
- spark集群搭建(三台虚拟机)——hadoop集群搭建(2)
!!!该系列使用三台虚拟机搭建一个完整的spark集群,集群环境如下: virtualBox5.2.Ubuntu14.04.securecrt7.3.6_x64英文版(连接虚拟机) jdk1.7.0. ...
- 搭建Hadoop集群 (一)
上面讲了如何搭建Hadoop的Standalone和Pseudo-Distributed Mode(搭建单节点Hadoop应用环境), 现在我们来搭建一个Fully-Distributed Mode的 ...
- 使用Windows Azure的VM安装和配置CDH搭建Hadoop集群
本文主要内容是使用Windows Azure的VIRTUAL MACHINES和NETWORKS服务安装CDH (Cloudera Distribution Including Apache Hado ...
- 搭建Hadoop集群 (三)
通过 搭建Hadoop集群 (二), 我们已经可以顺利运行自带的wordcount程序. 下面学习如何创建自己的Java应用, 放到Hadoop集群上运行, 并且可以通过debug来调试. 有多少种D ...
随机推荐
- dedecms织梦如何删除所有的文章?
dedecms织梦如何删除所有的文章?dede一键删除所有文章的SQL命令: DELETE FROM dede_addonarticle WHERE aid >= 1 and aid<= ...
- 【python】二进制、八进制、十六进制表示方法(3.0以上)
2进制是以0b开头的: 例如: 0b11 则表示十进制的3 8进制是以0o开头的: 例如: 0o11则表示十进制的9 (与2.0版本有区别) 16进制是以0x开头的: 例如: 0x11则表示十进制的1 ...
- 搭建hive到eclipse里面
(1)下载源码 git clone https://git-wip-us.apache.org/repos/asf/hive.git git clone https://github.com/apac ...
- 《C和指针》章节后编程练习解答参考——第8章
8.1 #include <stdio.h> int main (void) { int a, b, c, d; // 不使用嵌套花括号初始化 unsigned ][][][] = { , ...
- iOS中的隐式动画
隐式动画就是指 在 非 人为在代码中 定义动画 而系统却默认 自带 的动画 叫做隐式动画. 比如 改变 图层 的颜色 位置 和 透明度 的时候 都会 产生附带的渐变的 ...
- ALTER TABLE 语句与 FOREIGN KEY 约束"FK_SCHEDULE_REFERENCE_POSTCONF"冲突。
主要原因是因为两个表中有数据不匹配,只要把不匹配的数据删掉就行了.
- [BZOJ 3669] [Noi2014] 魔法森林 【LCT】
题目链接:BZOJ - 3669 题目分析 如果确定了带 x 只精灵A,那么我们就是要找一条 1 到 n 的路径,满足只经过 Ai <= x 的边,而且要使经过的边中最大的 Bi 尽量小. 其实 ...
- 我是如何学习NodeJs
实际上在开始的时候我已经对NodeJS有了一定的了解. 比如我知道它是居于Javascript语言的服务器端web Server,比如我知道它的优势在于它的性能,而造成性能优异的原因在于高效的V8引擎 ...
- Occupy Cities
hdu4606:http://acm.hdu.edu.cn/showproblem.php?pid=4606 题意:在一个二维坐标系中,有n个城市,坐标给出来了,然后有p个士兵要去占领这n个城市,但是 ...
- Python安装及开发环境配置
Python的语法简洁,功能强大,有大量的第三方开发包(模块).同时Python不像java一样对内存要求非常高,适合做一些经常性的任务方面的编程.根据codeeval网站数据统计显示,连续三年,Py ...