最近因为公司准备将数据迁移到Hbase上,所以不得不学习hadoop,我们尝试过将数据迁移到mongodb上面,周末在家里做了一个小试验,使用java+mongodb做爬虫抓取数据,我将mongodb安装在centos6.3虚拟机上,分配1G的内存,开始抓数据,半小时后,虚拟机内存吃光,没有办法解决内存问题,网上很多人说没有32G的内存不要玩mongodb,这样的说法很搞笑,难道我将1T的数据都放在内存上,不是坑么,所以说这是我们为什么选择Hbase的原因之一。

软件环境

使用虚拟机安装,centos6.3,jdk-7u45-linux-i586.rpm,hadoop-1.1.2.tar.gz,hbase-0.96.1.1-hadoop1-bin.tar.gz,zookeeper-3.4.5-1374045102000.tar.gz

第一步,配置网络

1、配置IP
使用ifconfig查看IP,可以使用vi/etc/sysconfig/network-scripts/ifcfg-eth0,ifcfg-eth0为网卡,根据自己的需求配置,如下:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.110
NETMASK=255.255.255.0
TYPE=Ethernet
GATEWAY=192.168.1.1
里面MAC地址不需要修改。

2、配置主机名network与DNS
使用vi/etc/sysconfig/network,修改主机名与网关,这里的网关可填可不填,如下
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master
GATEWAY=192.168.1.1
使用vi/etc/resolv.conf,添加DNS,这里可以添加你省内常用的DNS,什么8.8.8.8就算了,太慢了,添加DNS为了使用yum安装程序,如下
nameserver202.106.0.20
nameserver192.168.1.1
配置vi/etc/hosts文件,如下
192.168.1.110 master
192.168.1.111 node1
192.168.1.112 node2 3、配置yum源与安装基础软件包
配置yum源,为了更方便的安装程序包,我使用的是163的源,国内比较快,当然你也可以不配置yum源,下载CentOS-Base.repo,地址:http://mirrors.163.com/.help/centos.html,上传yum文件夹中的文件到/etc/yum.repos.d中,覆盖文件,然后yummakecache更新源,使用yum源安装:
#yum-yinstalllrzszgccgcc-c++libstdc++-develntp安装配置文件
4、同步时间与地区
cp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime 将地区配置为上海,再使用ntpdate更新时间,再使用crontab-e,添加如下
#3023***/usr/sbin/ntpdatecn.pool.ntp.org;hwclock-w
每天晚上23:30更新一下时间
5、关闭防火墙,SELINUX=disable
#serviceiptablesstop
#vi/etc/selinux/config
SELINUX=disabled

第二步,安装java,配置ssh,添加用户

1、安装java1.7
将所有的软件包都放到/opt文件夹中
#chmod-R777/opt
#rpm-ivhjdk-7u45-linux-i586.rpm
[root@masteropt]#vi/etc/profile.d/java_hadoop.sh
exportJAVA_HOME=/usr/java/jdk1.7.0_45/
exportPATH=$PATH:$JAVA_HOME/bin
[root@masteropt]#source/etc/profile
[root@masteropt]#echo$JAVA_HOME
/usr/java/jdk1.7.0_45/
2、添加hadoop用户,配置无ssh登录
#groupaddhadoop
#useraddhadoop-ghadoop
#suhadoop
$ssh-keygen-tdsa-P''-f/home/hadoop/.ssh/id_dsa
$cpid_dsa.pubauthorized_keys
$chmodgo-wxauthorized_keys
[hadoop@master.ssh]$sshmaster
Lastlogin:SunMar2323:16:002014from192.168.1.110
做到了以上工作,下一章就可以开始安装hadoop了。