利用 virtualbox + ubuntu 打造hadoop集群
利用 virtualbox + ubuntu 打造hadoop集群今天一天估计都要耗在 搭建集群上面了, 为了篇论文,动用了几十万的设备....搞云计算 就是砸钱。。。。为了榨干你的服务器,虚拟化 你不得不用....这里用ex-gf公司的 virtualbox,主要图的是简单(一个vboxmanage命令搞定一切事儿)第一步 就是 你要做一个母系统,用ubuntu吧,简单好用=
利用 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
;;
更多推荐
所有评论(0)