利用 virtualbox + ubuntu 打造hadoop集群

今天一天估计都要耗在 搭建集群上面了, 为了篇论文,动用了几十万的设备....搞云计算 就是砸钱。。。。

为了榨干你的服务器,虚拟化 你不得不用....

这里用ex-gf公司的 virtualbox,主要图的是简单(一个vboxmanage命令搞定一切事儿)

第一步 就是 你要做一个母系统,用ubuntu吧,简单好用

===================================================

(1)把vim之类必须的工具装进去

(2)就是必不可少的 hadoop

(3)然后为了方便,最好把hosts改了,你需要几个节点,最好一次性都在这里加上,省的以后一个一个添加

===================================================

第二步,用virtualbox搭建分布式环境

==================================================

有了母系统,就用vboxmanage写个脚本,想要多少 就loop多少,下面是一个很蹩脚的脚本,不过凑活可以用

@echo off
set hadoop=Hadoop
set storage=Storage
set ext=_Ext
set sub=.vdi
for /l %%i in (1,1,10) do vboxmanage clonevdi Hadoop64.vdi vm\%hadoop%%%i%sub%        克隆你想要的个数

for /l %%i in (1,1,10) do vboxmanage createvm --name %hadoop%%%i --ostype Ubuntu_64 --register 创建虚拟机
for /l %%i in (1,1,10) do vboxmanage modifyvm %hadoop%%%i --cpus 2 --memory 4000 --nic1 none --nic2 intnet 配置虚拟机
for /l %%i in (1,1,10) do vboxmanage storagectl %hadoop%%%i --name  %hadoop%%%i%storage% --add sata 添加存储控制器
for /l %%i in (1,1,10) do vboxmanage createhd --filename e:\vm\%hadoop%%%i%ext%%sub% --size 40000 添加额外的硬盘,如果你需要的话
for /l %%i in (1,1,10) do vboxmanage storageattach %hadoop%%%i --storagectl %hadoop%%%i%storage% --medium e:\vm\%hadoop%%%i%sub% --port 0 --type hdd  加载克隆的子系统
for /l %%i in (1,1,10) do vboxmanage storageattach %hadoop%%%i --storagectl %hadoop%%%i%storage% --medium e:\vm\%hadoop%%%i%ext%%sub% --port 1 --type hdd 加载额外的硬盘

==================================================

 第三步,在Ubuntu中配置你的参数

==================================================

1.修改IP   

2.修改名称 sudo vim /etc/hostname

3.初始化分区,这一步是当你添加额外的硬盘的时候才做的

                  sudo  fdisk /dev/sdb

                  n <add new partition>

                  p <primary>

                  1 <one partition>

                  w <write>

                  sudo mkfs –t ext3 /dev/sdb1

4.自动挂载

              事先创建挂载点,例如mkdir /mnt/data;chmod 777 /mnt/data>

              修改fstab:sudo vim /etc/fstab

              添加一行:/dev/sdb1             /mnt/data ext3            defaults,    0       1

5.修改为字符启动

          sudo vim /etc/default/grub

              #GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”

               GRUB_CMDLINE_LINUX=”text”

      保存文件之后,执行

          sudo update-grub

 

==================================================

 第四步,启动你的Hadoop,自动都手写一个运行脚本吧,否则你每次都得用 bin/hadoop *****,这里抛砖引玉把自己平常用的列出来,写完了就放在/usr/bin/目录下,以后就直接用了,这里我把脚本命名为r,那么以后就是 r * 即可,此外关注一下那个top命令,其使用这个就可以进行简单的集群监控了,如果你的要求不是太多的话...

==================================================

#!/bin/bash
export HadoopHome='/home/hadoop/hadoop'
num=5
command=$1

case $command in
(rmr)
bin/hadoop dfs -rmr $2 $3
;;
(top)
date +'%F %H:%M:%S'
for((i=2;i<=$num;i++))
do
echo +[hadoop$i]
#ssh hadoop$i "top -bcn 1 |grep -A1 ^Cpu; df -h |grep ^/dev"
ssh hadoop$i "top -bcn 1 |grep -A1 ^Cpu"
done
;;
(reboot)
for((i=2;i<=$num;i++))
do
sudo ssh hadoop$i "sudo reboot"
done
;;
(shutdown)
for((i=2;i<=$num;i++))
do
sudo ssh hadoop$i "sudo shutdown now -P"
done
;;
(joblist)
$HadoopHome/bin/hadoop job -list
;;
(killjob)
$HadoopHome/bin/hadoop job -kill $2
;;
(df)
for((i=1;i<=$num;i++))
do
ssh hadoop$i "df -h"
done
;;
(ping)
for((i=2;i<=$num;i++))
do
ping -c1 hadoop$i
done
;;
(report)
$HadoopHome/bin/hadoop dfsadmin -report
;;
(copy)
cp /mnt/share/worm.jar .
;;
(m)
sudo mount -t vboxsf $2 $3
;;
(jps)
for((i=1;i<=$num;i++))
do
echo [hadoop$i]
echo '--------------------'
ssh hadoop$i 'jps'
echo '--------------------'
done
;;
(all)
$HadoopHome/bin/start-all.sh
$HadoopHome/bin/hadoop dfsadmin -safemode leave
;;

(stop)
$HadoopHome/bin/stop-all.sh
;;

(f)
$HadoopHome/bin/hadoop dfs -ls $2
;;

(d)
$HadoopHome/bin/hadoop dfs $2 $3
;;

(p)
$HadoopHome/bin/hadoop dfs -put $2 $3
;;

(c)
cp /mnt/share/nworm.jar .
;;

(cleanlog)
for((i=1;i<=$num;i++))
do
ssh hadoop$i "cd /home/hadoop/hadoop/logs; rm -rf *; cd /mnt/data; rm -rf *"
done
;;
(cleanhdfs)
for((i=1;i<=$num;i++))
do
ssh hadoop$i "cd /var/tmp; rm -rf *; cd /mnt/data; rm -rf *"
done
;;
(safe)
$HadoopHome/bin/hadoop dfsadmin -safemode leave
;;

(run)
$HadoopHome/bin/hadoop jar worm.jar $2 $3 $4 $5 $6 $7 $8
;;
(format)
$HadoopHome/bin/hadoop namenode -format
;;
(*)
echo no such command
;;

esac
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐