`
xpenxpen
  • 浏览: 724947 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hbase0.20.6单机伪分布式安装(win7 cygwin)

阅读更多
    之前以为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伪分布式安装

    本文将详细介绍如何在本地环境中进行Hadoop2.7.5与HBase1.2.6的伪分布式安装,这是一个适合初学者入门的实践教程。 Hadoop是Apache基金会的一个开源项目,主要由HDFS(Hadoop Distributed File System)和MapReduce...

    HBase伪分布式环境搭建及数据操作测试

    HBase伪分布式环境搭建及数据操作测试 本人成功搭建伪分布式的操作以及截图

    hadoop2.6及hbase0.96伪分布式安装配置文件

    在IT领域,Hadoop和...总之,Hadoop 2.6和Hbase 0.96的伪分布式安装涉及多个步骤,包括环境设置、配置文件修改、服务启动以及验证。熟悉这些步骤和配置文件将帮助你有效地搭建和管理Hadoop和HBase的开发或测试环境。

    HBase+SpringBoot实战分布式文件存储

    HBase+SpringBoot实战分布式文件存储 资源永久有效哦

    Apache 伪分布式安装教程 傻瓜式教程 步骤详细

    伪分布式安装教程: Flume Hbase Spark Hive Kafka Sqoop zookeeper等分布式系统框架 备注:Hadoop安装教程当时忘记记录,后续也懒得弄,所以上传资料也暂无hadoop安装教程,尽请理解!!!!

    HBase伪分布式安装及简单使用.pdf

    《HBase 伪分布式安装与基础使用》 HBase,作为Hadoop生态系统的一部分,是一款针对大规模数据实时读写的NoSQL数据库。它以分布式、多版本、面向列的存储模型著称,尤其适合处理海量数据的随机读写操作,且可以直接...

    基于HBase的遥感数据分布式存储与查询方法研究.pdf

    本研究文档题为《基于HBase的遥感数据分布式存储与查询方法研究》,它针对遥感数据处理中的关键问题,如单节点故障、扩展性低和处理效率低,提出了一种新的数据分布式存储与查询方案。以下是对文档内容的详细解析和...

    Hadoop伪分布式安装及配置参考步骤.docx

    Hadoop伪分布式安装及配置参考步骤 Hadoop是一种分布式系统基础架构,由Apache基金会开发,能够对大量数据进行分布式处理和存储。用户可以轻松地在Hadoop集群上开发和运行处理海量数据的应用程序。Hadoop具有高可靠...

    Windows7下eclipse调试Fedora虚拟机的hadoop+hbase伪分布式

    这个过程涉及了虚拟化技术、分布式系统、Hadoop和HBase的安装配置、远程调试等多个环节,每个环节都需要细心操作,确保所有配置正确无误,才能实现Windows7下通过Eclipse对Fedora虚拟机中Hadoop+hBase伪分布式的有效...

    【大数据211】HBase伪分布式运行环境(2023.3.27).pdf

    在开始搭建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).docx

    VMware_Hadoop_HBase_Zookeeper 伪分布式安装指南 标题解读 本文档主要讲述了使用 VMware 搭建伪分布式环境的步骤,包括虚拟机的安装、网络配置、JDK 的安装、Hadoop、HBase 和 Zookeeper 的安装等。 描述解读 ...

    人工智能-项目实践-云计算-使用SpringBoot开发的基于HBASE的大数据存储分布式云计算笔记(后端).zip

    使用SpringBoot开发的基于HBASE的大数据存储分布式云计算笔记(后端) 基于HBASE的大数据存储分布式云计算笔记 云笔记使用大数据成熟的分布式存储解决方案,解决了传统笔记数据日益膨胀,数据丢失等问题。云笔记通过...

    基于hadoop+hbase+springboot实现分布式网盘系统源码+数据集+详细文档(高分毕业设计).zip

    基于hadoop+hbase+springboot实现分布式网盘系统源码+数据集+详细文档(高分毕业设计).zip基于hadoop+hbase+springboot实现分布式网盘系统源码+数据集+详细文档(高分毕业设计).zip基于hadoop+hbase+springboot...

    HBase 1.2 分布式安装分享

    ### HBase 1.2 分布式安装分享 #### 一、概述 HBase是Apache Hadoop生态系统中的一个重要的组成部分,它提供了一种分布式的、面向列的存储系统,能够处理非常大量的数据,并且可以实时地进行读写操作。本文档主要...

    基于hadoop+hbase+springboot实现分布式网盘系统.zip

    在构建分布式网盘系统时,通常会涉及到多个技术栈,如大数据处理框架Hadoop、分布式数据库HBase以及微服务开发框架Spring Boot。本项目“基于hadoop+hbase+springboot实现分布式网盘系统”旨在利用这些技术搭建一个...

    hadoop2.4.1伪分布式搭建

    hadoop2.4.1伪分布式搭建 包含网络配置修改 无密码登录

    分布式数据库HBase

    本教程主要介绍了 HBase 的单机模式和伪分布式模式。 HBase 的安装需要下载安装包 hbase-1.1.2-bin.tar.gz,并将其解压到 /usr/local 目录下。然后,需要将解压的文件名 hbase-1.1.2 改为 hbase,以方便使用。接着...

Global site tag (gtag.js) - Google Analytics