之前以为hadoop安装很难,然后装了hbase以后才知道,hadoop其实是小菜一碟,装hbase才叫难。经过我一周的不懈努力和反复尝试,终于成功的试验出来一套在windows上安装hbase0.20.6单机伪分布式模式的方法。
环境
win7 32bit
jdk 1.6.0_45 32bit
zookeeper 3.4.3
hadoop 0.20.2
hbase 0.20.6
首先不得不提的是,版本很重要,hadoop,hbase,jdk版本的搭配非常重要,在某个版本下成功的,很可能换了一个版本就不OK了,这也是hbase安装难的一个因素。
一些基本的安装如cygwin,ssh本文就不细说了,如果不懂,可以参考另一篇文章
http://xpenxpen.iteye.com/blog/2061856
1.下载
hadoop下载
http://archive.apache.org/dist/hadoop/core/
hbase下载
http://archive.apache.org/dist/hadoop/hbase/
zookeeper下载
http://archive.apache.org/dist/zookeeper/
2. 一些准备工作
2.1 JDK版本
由于我用的是比较老的hbase版本,所以jdk一定要1.6的,如果用1.7的jdk是试不出来的(本人N次失败后的经验)。
修改/home/<user>/.bashrc
所指的home是d:\cygwin\home
export JAVA_HOME=/cygdrive/c/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
重新进入cygwin
$
which java
/cygdrive/c/jdk1.6.0_45/bin/java
2.2 创建符号链接(仅限Win7)
mklink /d d:\tmp d:\cygwin\tmp
mklink /d i:\tmp d:\cygwin\tmp
这步是比较关键的一步,因为hadoop的代码编写没有考虑到windows系统,所以tmp目录的定位是比较乱的,这里将d:\tmp,i:\tmp全部链接到cygwin下的tmp目录,后面就不会报诸如tmp目录找不到的错了。i:\tmp是由于我将hadoop-0.20.2解压到I盘了,d:\tmp则是因为cygwin装在D盘。如果你装在别的盘上了,则改成相应的盘符。
3.配置文件
3.1 zookeeper
复制conf目录下的zoo_sample.cfg一份,命名为zoo.cfg
修改如下属性
dataDir=/tmp/zookeeper
clientPort=2181
3.2 hadoop
修改conf/hadoop-env.sh
export JAVA_HOME=/cygdrive/c/jdk1.6.0_45
export HADOOP_LOG_DIR=/tmp/logs
修改conf目录下的3个配置文件
core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>4</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>4</value>
</property>
3.3 hbase
配置conf/hbase-env.sh
export JAVA_HOME=/cygdrive/c/jdk1.6.0_45
export HBASE_CLASSPATH=/cygdrive/i/opensource/hadoop/hbase-0.20.6/lib/zookeeper-3.2.2.jar
export HBASE_MANAGES_ZK=false
export HBASE_LOG_DIR=/tmp/logs/hbase
配置conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase/root</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>hdfs://localhost:9000/hbase/tmp</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>127.0.0.1</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/tmp/zookeeper</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>
4. 启动zookeeper
4.1 启动
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop
$
cd ./zookeeper-3.4.3
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/zookeeper-3.4.3
$
./bin/zkServer.sh start
JMX enabled by default
Using config: I:\opensource\hadoop\zookeeper-3.4.3\conf\zoo.cfg
Starting zookeeper ... STARTED
4.2 检查
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/zookeeper-3.4.3
$
jps
10040 Jps
6220 QuorumPeerMain
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/zookeeper-3.4.3
$
ps -ef | grep java
Administ 8656 1 pty0 13:26:43 /cygdrive/c/jdk1.6.0_45/bin/java
提示:
hbase自带的zookeeper版本是3.2.2,但是当你下载zookeeper3.2.2以后,会发现这个版本没有考虑cygwin,所以在cygwin下无法运行。后期版本已经修复了这个问题。如果你比较不同版本的bin/zkEnv.sh,搜索cygwin,你会发现新的版本多出来一些cygwin的判断。这就是之所以要下载zookeeper 3.4.3的原因了。而hbase目录下的zookeeper没关系,就放在那里好了。3.2.2的client连3.4.3的server貌似没什么问题。
5. 启动hadoop
5.1 格式化名称节点
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/zookeeper-3.4.3
$
cd ../hadoop-0.20.2
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hadoop-0.20.2
$
./bin/hadoop namenode -format
5.2 启动hadoop集群
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hadoop-0.20.2
$
./bin/start-all.sh
starting namenode, logging to /tmp/logs/hadoop-Administrator-namenode-PC-201308290023.out
localhost: starting datanode, logging to /tmp/logs/hadoop-Administrator-datanode-PC-201308290023.out
localhost: starting secondarynamenode, logging to /tmp/logs/hadoop-Administrator-secondarynamenode-PC-201308290023.out
starting jobtracker, logging to /tmp/logs/hadoop-Administrator-jobtracker-PC-201308290023.out
localhost: starting tasktracker, logging to /tmp/logs/hadoop-Administrator-tasktracker-PC-201308290023.out
5.3 检查集群状态
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hadoop-0.20.2
$
jps
7620 NameNode
8988 Jps
6220 QuorumPeerMain
6952 JobTracker
(这里可能jps有点问题,只能看到多了2个进程,但实际上没问题,下面用ps可以看到多了5个java进程)
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hadoop-0.20.2
$
ps -ef | grep java
Administ 6640 1 ? 13:28:33 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 8160 1 pty0 13:28:21 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 8532 1 ? 13:28:40 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 5680 1 ? 13:28:28 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 10160 1 pty0 13:28:36 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 8656 1 pty0 13:26:43 /cygdrive/c/jdk1.6.0_45/bin/java
5.4 创建hdfs目录
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hadoop-0.20.2
$
./bin/hadoop fs -mkdir /hbase
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hadoop-0.20.2
$
./bin/hadoop fs -mkdir /hbase/root
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hadoop-0.20.2
$
./bin/hadoop fs -mkdir /hbase/tmp
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hadoop-0.20.2
$
./bin/hadoop fs -chmod 777 /hbase/root
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hadoop-0.20.2
$
./bin/hadoop fs -chmod 777 /hbase/tmp
以上创建了/hbase/root和/hbase/tmp目录,这个是和hbase-site.xml里定义的一致的。随后我们将权限放出来。因为之前权限没放,而我win7的主用户是administrator,会出现cyg_server没有写权限而出错,权限全面放开就没问题了。不过linux下应该是创建一个hadoop用户,所以权限只给hadoop一个用户就可以了。
设置好以后可以上http://localhost:50070查看hdfs目录、权限是否正确。
6. 启动hbase
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hadoop-0.20.2
$
cd ../hbase-0.20.6
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hbase-0.20.6
$
./bin/start-hbase.sh
starting master, logging to /tmp/logs/hbase/hbase-Administrator-master-PC-201308290023.out
localhost: starting regionserver, logging to /tmp/logs/hbase/hbase-Administrator-regionserver-PC-201308290023.out
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hbase-0.20.6
$
jps
7620 NameNode
10048 Jps
8928 HMaster
6220 QuorumPeerMain
6952 JobTracker
(这里jps显示依然有点问题,只能看到多了hmaster一个进程,但实际上没问题,下面用ps可以看到8个java进程,也就是说明多出来2个进程(hmaster和hregionserver))
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hbase-0.20.6
$
ps -ef | grep java
Administ 6640 1 ? 13:28:33 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 8160 1 pty0 13:28:21 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 6332 1 ? 13:30:40 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 8532 1 ? 13:28:40 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 5680 1 ? 13:28:28 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 10160 1 pty0 13:28:36 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 2108 1 pty0 13:30:36 /cygdrive/c/jdk1.6.0_45/bin/java
Administ 8656 1 pty0 13:26:43 /cygdrive/c/jdk1.6.0_45/bin/java
7. 测试 hbase shell
成败在此一举,很多时候你辛辛苦苦把前面步骤都做完了,到最后一步发现测试不通。不过这次,我们成功了.
Administrator@PC-201308290023 /cygdrive/i/opensource/hadoop/hbase-0.20.6
$
./bin/hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Version: 0.20.6, r965666, Mon Jul 19 16:54:48 PDT 2010
create 'mytable', 'data'
create 'mytable', 'data'
0 row(s) in 1.2890 seconds
put 'mytable', 'row1', 'data:1', 'value1'
put 'mytable', 'row1', 'data:1', 'value1'
0 row(s) in 0.0040 seconds
list
list
mytable
1 row(s) in 0.0160 seconds
scan 'mytable'
scan 'mytable'
ROW COLUMN+CELL
row1 column=data:1, timestamp=1416715188693, value=value1
1 row(s) in 0.0220 seconds
exit
exit
最后要说的是,初学者每一步做完都请确认log里没有错误。log有时候是最好的引导者,有了错误日志,你才能去分析问题,去google问题。同时,遇到问题,这也是你宝贵的经验。
分享到:
相关推荐
本文将详细介绍如何在本地环境中进行Hadoop2.7.5与HBase1.2.6的伪分布式安装,这是一个适合初学者入门的实践教程。 Hadoop是Apache基金会的一个开源项目,主要由HDFS(Hadoop Distributed File System)和MapReduce...
HBase伪分布式环境搭建及数据操作测试 本人成功搭建伪分布式的操作以及截图
在IT领域,Hadoop和...总之,Hadoop 2.6和Hbase 0.96的伪分布式安装涉及多个步骤,包括环境设置、配置文件修改、服务启动以及验证。熟悉这些步骤和配置文件将帮助你有效地搭建和管理Hadoop和HBase的开发或测试环境。
HBase+SpringBoot实战分布式文件存储 资源永久有效哦
伪分布式安装教程: Flume Hbase Spark Hive Kafka Sqoop zookeeper等分布式系统框架 备注:Hadoop安装教程当时忘记记录,后续也懒得弄,所以上传资料也暂无hadoop安装教程,尽请理解!!!!
《HBase 伪分布式安装与基础使用》 HBase,作为Hadoop生态系统的一部分,是一款针对大规模数据实时读写的NoSQL数据库。它以分布式、多版本、面向列的存储模型著称,尤其适合处理海量数据的随机读写操作,且可以直接...
本研究文档题为《基于HBase的遥感数据分布式存储与查询方法研究》,它针对遥感数据处理中的关键问题,如单节点故障、扩展性低和处理效率低,提出了一种新的数据分布式存储与查询方案。以下是对文档内容的详细解析和...
Hadoop伪分布式安装及配置参考步骤 Hadoop是一种分布式系统基础架构,由Apache基金会开发,能够对大量数据进行分布式处理和存储。用户可以轻松地在Hadoop集群上开发和运行处理海量数据的应用程序。Hadoop具有高可靠...
这个过程涉及了虚拟化技术、分布式系统、Hadoop和HBase的安装配置、远程调试等多个环节,每个环节都需要细心操作,确保所有配置正确无误,才能实现Windows7下通过Eclipse对Fedora虚拟机中Hadoop+hBase伪分布式的有效...
在开始搭建HBase伪分布式运行环境之前,需要准备以下三个安装文件:hadoop-3.3.4.tar.gz、jdk-8u341-linux-x64.tar.gz和hbase-2.4.16-bin.tar.gz。将这些文件上传至虚拟机中,并解压到任一目录,如/opt或/usr、/root...
VMware_Hadoop_HBase_Zookeeper 伪分布式安装指南 标题解读 本文档主要讲述了使用 VMware 搭建伪分布式环境的步骤,包括虚拟机的安装、网络配置、JDK 的安装、Hadoop、HBase 和 Zookeeper 的安装等。 描述解读 ...
使用SpringBoot开发的基于HBASE的大数据存储分布式云计算笔记(后端) 基于HBASE的大数据存储分布式云计算笔记 云笔记使用大数据成熟的分布式存储解决方案,解决了传统笔记数据日益膨胀,数据丢失等问题。云笔记通过...
基于hadoop+hbase+springboot实现分布式网盘系统源码+数据集+详细文档(高分毕业设计).zip基于hadoop+hbase+springboot实现分布式网盘系统源码+数据集+详细文档(高分毕业设计).zip基于hadoop+hbase+springboot...
### HBase 1.2 分布式安装分享 #### 一、概述 HBase是Apache Hadoop生态系统中的一个重要的组成部分,它提供了一种分布式的、面向列的存储系统,能够处理非常大量的数据,并且可以实时地进行读写操作。本文档主要...
在构建分布式网盘系统时,通常会涉及到多个技术栈,如大数据处理框架Hadoop、分布式数据库HBase以及微服务开发框架Spring Boot。本项目“基于hadoop+hbase+springboot实现分布式网盘系统”旨在利用这些技术搭建一个...
hadoop2.4.1伪分布式搭建 包含网络配置修改 无密码登录
本教程主要介绍了 HBase 的单机模式和伪分布式模式。 HBase 的安装需要下载安装包 hbase-1.1.2-bin.tar.gz,并将其解压到 /usr/local 目录下。然后,需要将解压的文件名 hbase-1.1.2 改为 hbase,以方便使用。接着...