centos-5.4 + jdk-1.6 + hadoop-0.20.2 + hbase-0.90.2 + python-2.6
note:hbase-0.90.2 中自带zookeeper
- 在centos的配置文件(/etc/profile or ~/.bash_profile)中增加$JAVA_HOME,$HADOOP_HOME,$HBASE_HOME
- ln -s hadoop-0.20.2 hadoop; ln -s hbase-0.90.2 hbase
- 配置hadoop:
- 配置ssh:生成rsa公钥和私钥文件(密码设为空较方便),将公钥加入到访问的机器的~/.ssh/authorized_keys中,当然要保证集群中每台机器是可连接的(iptables权限),如有问题,可在/var/log/secure中找到相应的日志
- 修改hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,masters,slaves可满足基本的要求:
在hadoop-env.sh的HADOOP_CLASSPATH中增加hbase的lib和conf,如:
在core-site.xml中增加fs.default.name(hdfs的namenode,格式:hdfs://hostname:port,其中hostname在/etc/hosts中),mapred.job.tracker(mapred的trackernode,格式:hostname:port),dfs.name.dir(hdfs namespace),dfs.data.dir(hdfs data path),hadoop.tmp.dir,mapred.system.dir,dfs.replication。要注意的是hostname在hadoop中有命名规则,不能用"-"可以用"_"
masters和slaves中分别入相应的master node 和slaves node 的hostname(或ip) - scp配置文件到所有的集群机器上
- $HADOOP_HOME/bin/start-all.sh启动hdfs和mapreduce,$HADOOP_HOME/bin/hadoop dfsadmin -report或 查看http://namenode:50070和http://namenode:50030得到hdfs和mapreduce的集群运行情况
- 配置hbase:
- 修改hbase-env.sh,将HBASE_MANAGES_ZK 设为true,将hadoop的conf和lib加入到$HBASE_CLASSPATH中
- 修改hbase-site.xml,增加hbase.rootdir(hdfs://hostname:port/hbase,为hdfs的namenode),hbase.cluster.distributed(true),另外zookeeper的配置:hbase.zookeeper.property.clientPort(zookeeper的通讯端口),hbase.zookeeper.quorum,hbase.zookeeper.property.dataDir.
- 修改regionservers,增加hbase region要存放的机器名(或ip)
- 安装thrift:
下载:http://incubator.apache.org/thrift/download/
安装后thrift --gen py $HBASE_HOME/*/Hbase.thrif(从$HBASE_HOME下查找到Hbase.thrif)生成python的hbase库,将其cp到python lib的site-packages下即可