Hadoopt是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的硬件上。而且它提供高传输率来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS放宽了POSIX的要求,这样可以流的形式访问文件系统中的数据。(应该掌握hadoop的安装和部署HDFS,Hbase,Hive等组件。)
IP地址HDFSZookeeperHbaseHive
需要的软件包:
hadoop-0.20.2-cdh3u0.tar.gz
zookeeper-3.3.3-cdh3u0.tar.gz
hbase-0.90.1-cdh3u0.tar.gz
hive-0.7.0-cdh3u0.tar.gz
安装Hbase需要先安装好hadoop和ZooKeeper【云数据库系统(HBase)】
让一台主机监控五台机器上面的端口【五台端口一样】,其中一台应用端口down了就重启所有的端口【在一个控制台上】
但是因为权限问题,这里监听端口的必须是root用户才能执行,而那个脚本的启用一般都是普通用户,所以下面的方案看来还是有点问题。
#!/bin/bash
#################################################
###This program is to listen the hadoop port!####
#################################################
ip=(192.168.30.55 192.168.30.56 192.168.30.57 192.168.30.58 192.168.30.59)
size=${#ip[@]}
for ((i=0;i<$size;i++))
do
host=${ip[i]}
keyw=`nmap -sS -n -p6003 $host -oG - | grep "^Host"|cut -d/ -f2`
if [ "$keyw" == "closed" ];then
sh /opt/hbase/bin/starthbase.sh
echo "We have started the hadoop $host again!!!"
else
echo "The hadoop $host status is ok!"
exit
fi
done
那么我们就考虑换一种方法:
#!/bin/bash
#################################################
###This program is to listen the hadoop port!####
#################################################
ip=(192.168.30.55 192.168.30.56 192.168.30.57 192.168.30.58 192.168.30.59)
size=${#ip[@]}
for ((i=0;i<$size;i++))
do
host=${ip[i]}
wget http://"$host":6003 > /dev/null
if [ $? == 0 ];then
echo "`date "+%F %H:%M"` The hadoop $host is ok!!" >> /opt/log/hadoop-zy.log`date +%F`
rm /zy/index.html*
else
sh /opt/oracle/hbase/bin/start-hbase.sh
echo "`date "+%F %H:%M"` We have started the hadoop again!!!" >> /opt/log/hadoop-zy.log`date +%F`
fi
done