用VMware虚拟机搭建Hadoop集群和Storm集群

最近试着搭建Hadoop集群和Storm集群,先在虚拟机上做个实验。

Storm的安装步骤见Github上提供的安装文档: https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster

 

各系统版本:

VMwareWorkstation 9.0.0

ubuntu-12.04.1-desktop-i386

hadoop-1.0.4

zookeeper-3.4.3.

zeromq-2.1.4

jdk1.6.0_27

Storm-0.7.0

Python 2.6.6

 

一、利用VM搭建起3个节点的平台

分别命名:nimbus,supervisor1,supervisor2 (nimbus为主节点,在hadoop,zookeeper,storm的配置中都要用到)

在VM中每个节点的Network Adaper都设置为NAT,自动为其分配IP

安装Ubuntu 12.04时,用户名都设置为hadoop

P.S. 事实上,应该尽量将可以安装的东西安装完成后再对虚拟机进行复制,以减少工作量。

二、配置Host(更改两个文件hostname,hosts)

$sudo gedit /etc/hostname,每个虚拟机节点分别改为nimbus,supervisor1,supervisor2

$ifconfig分别获取每个虚拟机的ip信息

nimbus:192.168.128.144

supervisor1:192.168.128.146

supervisor2:192.168.128.145

$sudo gedit /etc/hosts

文件内容中加入

192.168.128.144  nimbus

192.168.128.146  supervisor1

192.168.128.145  supervisor2

三、实现SSH免密码登录

安装ssh,$sudoapt-get install ssh

设置免密码登录,以下是从nimbus到supervisor1,2的无密码登录

$ssh-keygen –t dsa,在.ssh文件夹下创建两个文件id_dsa及id_dsa.pub

把公钥追加到授权的key里面去

$cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

将公钥复制到其他节点上

在namenode中 cd到.ssh文件夹下输入以下命令:

scp id_dsa.pub supervisor1:~/.ssh/

在supervisor1上执行:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

supervisor2同上

查看是否成功,ssh supervisor1

四、安装JDK1.6

解压到/usr/lib/java/jdk1.6.0_27

$sudo gedit/etc/environment

将/usr/lib/java/jdk1.6.0_27加入到PATH当中,用:与之前的隔开

CLASSPATH=..:/usr/lib/java/jdk1.6.0_27/lib

JAVA_HOME=/usr/lib/java/jdk1.6.0_27

五、安装hadoop平台

分别修改以下配置文件

conf/core-site.xml:

<Configuration>

<Property>

<name>fs.default.name</name>

<value>hdfs://nimbus:9000</value>

</Property>

<Property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/tmp</value>

</Property>

</Configuration>

 

conf/hdfs-site.xml:

<Configuration>

<Property>

<name>dfs.replication</name>

<value>1</value>

</Property>

</Configuration>

 

conf/mapred-site.xml:

<Configuration>

<Property>

<name>mapred.job.tracker</name>

<value> nimbus:9001</value>

</Property>

</Configuration>

 

conf/masters:

nimbus

 

conf/slaves:

supervisor1

supervisor2

 

启动Hadoop

在hadoop目录下

$bin/hadoop namenode –format

$bin/start-all.sh

运行一个hadoop自带的example输入命令:

$bin/hadoop jar /home/hadoop/hadoop-1.0.4/hadoop-1.0.4-examples.jar pi 4 2

$bin/stop-all.sh

六、安装zookeeper平台(zookeeper-3.4.3.)

将zk目录中conf/zoo-example.cfg重命名为zoo.cfg,加入以下内容

tickTime=2000

dataDir=/home/hadoop/zookeeper/

clientPort=2181

initLimit=5

syncLimit=2

server.1=nimbus:2888:3888

server.2=supervisor1:2888:3888

server.3=supervisor2:2888:3888

 

在每个节点分别启动

$~/zookeeper-3.4.3/bin/zkServer.sh start

$~/zookeeper-3.4.3/bin/zkServer.sh status

$~/zookeeper-3.4.3/bin/zkServer.sh stop

七、安装zeromq-2.1.4,官方文档说高版本会出问题

装的时候会提示很多东西没装,没关系,一个个的sudo apt-get install就OK

Libtool, autoconf, automake, uuid-dev

注意:机器是正常的联网状态,不能通过代理上网,否则apt-get会出错

安装很简单,进入目录

$./configure

$make

$sudo make install

$sudo ldconfig

八、安装JZMQ

在jzmq目录下

./autogen.sh

./configure

make

sudo make install

九、安装Python 2.6.6

进入Python-2.6.6目录

./configure

make

sudo make install

十、安装Storm-0.7.0

修改目录下conf/storm.yaml,写进去的内容会覆盖storm.jar里default.yaml的那部分。

storm.zookeeper.servers:

  - "nimbus"

  - "supervisor1"

  - "supervisor1"

storm.zookeeper.port如果之前是2181,这里就不用写,否则要改成=***

storm.local.dir:"/mnt/storm"

需要自行创建,命令如下

$sudo mkdir /mnt/storm

$cd /mnt/storm

$chmod 777 .

nimbus.host: "nimbus"

 

nimbus 节点:$bin/stormnimbus

supervisor 节点:$bin/stormsupervisor

$bin/storm ui

也可以通过浏览器http://{nimbus host}:8080.

 

 

向Nimbus提交jar,执行。
bin/storm jar /tmp/storm-start.jar storm.starter.WordCountTopology
此时会报错,由于执行bin/storm jar *** 命令时,没有载入正确的$STORM_HOME/conf,所以再次修改bin/storm:
 1 #!/usr/bin/python
  2
  3 import os
  4 import sys
  5 import random
  6 import subprocess as sub
  7
  8 CONF_DIR =os.path.expanduser("~/.storm")
  9 STORM_DIR ="/".join(os.path.abspath( __file__ ).split("/")[:-2])
 10 CONF_DIR = STORM_DIR +"/conf" #确定目录conf文件目录,这样在执行bin/storm jar的时候可以将正确的conf目录加入classpath中。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值