这样的HBASE你知道吗

 

 

将下载好的Hbase上传到Centos。

2. 解压

(这里就懒得改这个版本名称了。。)

tar –zxvf  hbase-0.99.2-bin.tar.gz
  • 1

3. 重命名

mv hbase-0.99.2 hbase
  • 1

4. 修改环境变量

1、 在master机器上执行下面命令: 
su – root

vi/etc/profile
  • 1

添加内容:

export HBASE_HOME=/home/hadoop/hbase
export PATH=$PATH:$HBASE_HOME/bin
  • 1
  • 2

执行命令:

source /etc/profile
  • 1

su – hadoop 
2、在其他机器上执行上述操作。

5. 修改配置文件

需要修改/home/hadoop/hbase/conf下的hbase-env.sh,hbase-site.xml,regionservers 三个配置文件。(你也可以直接先把三个文件配置好然后覆盖conf/下的文件) 
对于hbase-env.sh添加如下内容

export JAVA_HOME=/root/apps/jdk1.8.0_181   //jdk安装目录
# Extra Java CLASSPATH elements.  Optional.这行代码是错的,需要可以修改为下面的形式。据说设置HBASE_CLASSPATH会在玩Flume的时候报错。所以就直接用下面的JAVA_CLASSPATH代替,效果一样。
#export HBASE_CLASSPATH=/home/hadoop/hbase/conf
export JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar   
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export HBASE_MANAGES_ZK=false  #如果使用独立安装的zookeeper这个地方就是false
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

hbase-site.xml中加入如下内容

<configuration>
<property>
<name>hbase.master</name>
<value>ha1:60000</value>
</property>
<property>
<name>hbase.master.maxclockskew</name> 
<value>180000</value>
</property>
<property>
<!--对应的bi是一个逻辑地址  -->
<name>hbase.rootdir</name>
<value>hdfs://bi/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name> 
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>ha1,ha2,ha3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/hbase/tmp/zookeeper</value>
</property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

Regionservers添加如下内容

//是从机器的域名
ha1
ha2
ha3
  • 1
  • 2
  • 3
  • 4

6. 把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下

cp /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml /home/hadoop/hbase/conf
cp /home/hadoop/hadoop/etc/hadoop/core-site.xml /home/hadoop/hbase/conf
  • 1
  • 2

7. 发送到其他机器

scp –r /home/hadoop/hbase hadoop@slave1:/home/hadoop
scp –r /home/hadoop/hbase hadoop@slave2:/home/hadoop
scp –r /home/hadoop/hbase hadoop@slave3:/home/hadoop
  • 1
  • 2
  • 3

8. 启动

start-hbase.sh
  • 1

9. 查看

进程:jps 
进入hbase的shell:hbase shell 
退出hbase的shell:quit 
页面:http://master:60010

总结

不幸的是在打开Web页面时发现无法打开,查了资料后才知道原来Hbase在1.x版本后将端口号改为16010。 
还有就是执行hbase shell的时候报错如下:

[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
        at jline.TerminalFactory.create(TerminalFactory.java:101)
        at jline.TerminalFactory.get(TerminalFactory.java:158)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
        at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

原因 
hadoop目录/hadoop-2.6.4/share/hadoop/yarn/lib存在老版本jline

解决方案 
将hive下的新版本jline的JAR包拷贝到hadoop下:cp /hive/lib/jline-2.12.jar /hadoop/share/hadoop/yarn/lib/

权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/qq_16633405/article/details/81908283

最近由于工作需要又把HBase重装了一遍,发现还是需要自己总结下安装过程,不然等到再次装的时候,还是会碰到很多坑。由于出了新版本,所以这里自己就找的比较新的版本来玩。 
我的环境:Hadoop2.6.4+Centos6.7minimal版本+Hive2.1.1+Hbase2.0

1. 上传

将下载好的Hbase上传到Centos。

2. 解压

(这里就懒得改这个版本名称了。。)

tar –zxvf  hbase-0.99.2-bin.tar.gz
  • 1

3. 重命名

有需要的联系我yxxy1717    2317384986

mv hbase-0.99.2 hbase
  • 1

4. 修改环境变量

1、 在master机器上执行下面命令: 
su – root

vi/etc/profile
  • 1

添加内容:

export HBASE_HOME=/home/hadoop/hbase
export PATH=$PATH:$HBASE_HOME/bin
  • 1
  • 2

执行命令:

source /etc/profile
  • 1

su – hadoop 
2、在其他机器上执行上述操作。

5. 修改配置文件

需要修改/home/hadoop/hbase/conf下的hbase-env.sh,hbase-site.xml,regionservers 三个配置文件。(你也可以直接先把三个文件配置好然后覆盖conf/下的文件) 
对于hbase-env.sh添加如下内容

export JAVA_HOME=/root/apps/jdk1.8.0_181   //jdk安装目录
# Extra Java CLASSPATH elements.  Optional.这行代码是错的,需要可以修改为下面的形式。据说设置HBASE_CLASSPATH会在玩Flume的时候报错。所以就直接用下面的JAVA_CLASSPATH代替,效果一样。
#export HBASE_CLASSPATH=/home/hadoop/hbase/conf
export JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar   
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export HBASE_MANAGES_ZK=false  #如果使用独立安装的zookeeper这个地方就是false
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

hbase-site.xml中加入如下内容

<configuration>
<property>
<name>hbase.master</name>
<value>ha1:60000</value>
</property>
<property>
<name>hbase.master.maxclockskew</name> 
<value>180000</value>
</property>
<property>
<!--对应的bi是一个逻辑地址  -->
<name>hbase.rootdir</name>
<value>hdfs://bi/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name> 
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>ha1,ha2,ha3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/hbase/tmp/zookeeper</value>
</property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

Regionservers添加如下内容

//是从机器的域名
ha1
ha2
ha3
  • 1
  • 2
  • 3
  • 4

6. 把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下

cp /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml /home/hadoop/hbase/conf
cp /home/hadoop/hadoop/etc/hadoop/core-site.xml /home/hadoop/hbase/conf
  • 1
  • 2

7. 发送到其他机器

scp –r /home/hadoop/hbase hadoop@slave1:/home/hadoop
scp –r /home/hadoop/hbase hadoop@slave2:/home/hadoop
scp –r /home/hadoop/hbase hadoop@slave3:/home/hadoop
  • 1
  • 2
  • 3

8. 启动

start-hbase.sh
  • 1

9. 查看

进程:jps 
进入hbase的shell:hbase shell 
退出hbase的shell:quit 
页面:http://master:60010

总结

不幸的是在打开Web页面时发现无法打开,查了资料后才知道原来Hbase在1.x版本后将端口号改为16010。 
还有就是执行hbase shell的时候报错如下:

[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
        at jline.TerminalFactory.create(TerminalFactory.java:101)
        at jline.TerminalFactory.get(TerminalFactory.java:158)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
        at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
        at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

原因 
hadoop目录/hadoop-2.6.4/share/hadoop/yarn/lib存在老版本jline

解决方案 
将hive下的新版本jline的JAR包拷贝到hadoop下:cp /hive/lib/jline-2.12.jar /hadoop/share/hadoop/yarn/lib/

<think>好的,用户问的是在安装Hadoop之后是否需要单独下载并安装HBase。首先,我需要回顾之前的对话。用户之前询问如何在Ubuntu虚拟机上安装HBase,我提供了详细步骤,包括环境准备、安装配置、启动验证和常见问题。现在用户可能已经安装了Hadoop,想知道HBase是否需要单独处理。 根据之前的回答,HBase是构建在Hadoop之上的,所以Hadoop是前提。用户提到的引用[1]也提到HBase是基于Hadoop的分布式数据库,这说明两者是独立的项目,需要分别安装。虽然HBase依赖Hadoop的HDFS,但它有自己的安装包和配置步骤,比如设置hbase-site.xml和hbase-env.sh,这些步骤在之前的指导中都有详细说明。 用户可能存在的深层问题是,是否Hadoop安装后自动包含HBase,或者是否有集成包。需要明确说明HBase是独立的,必须单独下载安装,并正确配置与Hadoop的集成。此外,用户可能担心配置的复杂性,特别是伪分布式或完全分布式模式下的设置,比如HDFS路径和ZooKeeper的配置,这些在之前的回答中已经涉及,可能需要进一步强调。 需要确认HBase和Hadoop的版本兼容性,这也是用户可能忽略的问题。建议用户根据Hadoop版本选择对应的HBase版本,避免兼容性问题。同时,用户在安装HBase后需要配置Hadoop的核心配置文件,如core-site.xml,确保HBase能正确访问HDFS,这可能是在安装后的必要步骤,需要提醒用户。 最后,用户可能需要了解不同部署模式下的安装差异,例如单机模式可能不需要Hadoop,但伪分布式和完全分布式必须依赖Hadoop。这有助于用户根据实际需求选择安装方式。总结来说,回答需要明确HBase的独立性,安装步骤,配置依赖以及与Hadoop的版本兼容性,确保用户理解必须单独安装并正确配置。</think>在安装了Hadoop之后,**需要单独下载并安装HBase**,二者是独立的组件。以下是关键原因和注意事项: --- ### 一、Hadoop与HBase的关系 1. **依赖关系** HBase基于Hadoop的HDFS(分布式文件系统)实现数据存储,依赖Hadoop的核心服务(如NameNode、DataNode)。但HBase是独立的分布式数据库系统,**需要独立安装**[^1]。 2. **功能定位差异** - **Hadoop**:专注于批处理和大规模数据存储(HDFS + MapReduce/YARN) - **HBase**:提供低延迟的随机读写能力,适用于实时查询场景 --- ### 二、安装HBase的必要步骤 即使已安装Hadoop,仍需完成以下操作: 1. **下载HBase二进制包** ```bash wget https://archive.apache.org/dist/hbase/2.4.13/hbase-2.4.13-bin.tar.gz ``` 2. **解压并配置环境变量** ```bash tar -xzvf hbase-2.4.13-bin.tar.gz sudo mv hbase-2.4.13 /usr/local/hbase export HBASE_HOME=/usr/local/hbase # 添加至~/.bashrc ``` 3. **关键配置调整** - **hbase-site.xml**中需指定HDFS地址(伪分布式/完全分布式模式): ```xml <property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> <!-- 指向Hadoop的HDFS --> </property> ``` - **hbase-env.sh**需正确设置`JAVA_HOME`和Hadoop配置路径: ```properties export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop # 关联Hadoop配置[^2] ``` --- ### 三、版本兼容性要求 | Hadoop版本 | 兼容的HBase版本 | |------------|------------------------| | 3.x | HBase 2.3+, 2.4+ | | 2.10.x | HBase 2.2+, 2.3+ | | 2.7.x | HBase 1.4+, 2.0+ | **建议**:从[HBase官方文档](https://hbase.apache.org/book.html#hadoop)查询具体版本匹配。 --- ### 四、验证集成状态 1. **启动Hadoop和HBase** ```bash start-dfs.sh # 先启动Hadoop HDFS start-hbase.sh ``` 2. **检查HDFS中的HBase数据** ```bash hdfs dfs -ls /hbase # 应显示HBase自动创建的目录 ``` --- ### 五、特殊场景说明 - **单机模式**:可不依赖Hadoop(使用本地文件系统),但**仅限于测试环境** 配置`hbase.rootdir`为本地路径:`file:///home/user/hbase-data` - **伪分布式/完全分布式**:必须依赖Hadoop HDFS ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值