- 浏览: 194172 次
- 性别:
- 来自: 南京
文章分类
最新评论
本文主要描述如何实现在一台Linux机器上搭建一个standalone的hbase,在另外一台机器上通过API访问
服务器端环境搭建:
1.版本信息
java:1.8.0_172
hbase: 1.2.6
2.设置JAVA_HOME
在~/.bash_profile中追加如下内容
执行如下命令使上述设置立即生效
3.设置hostname
4.下载hbase, 点击下载
5.解压下载的文件
6.修改conf下的文件,使能通过远程连接
6.1 进入conf文件夹
6.2 修改hbase-site.xml文件,最主要是追加hbase.zookeeper.quorum属性,因为默认是localhost,只能在本机访问,修改成hostname才能远程访问
6.3 修改regionservers文件
删除localhost,修改成hostname
7.启动hbase
执行
正常情况下hbase就会启动好了,可通过jps命令查看是否有 **** HMaster 来判断
客户端配置
1.配置hostname
在客户端机器上也需要设置hostname,如192.168.0.172 docker05
2.将服务器上的hbase-site.xml 拷贝到客户端并放到工程根目录下
3.工程目录如下
4.工程的pom.xml文件
5.测试类
6.执行后,控制台信息如下
7.登录hbase服务器,可以看到chengf表创建成功
8.遇到的异常
8.1,只是设置了服务器的hostname,没有修改hbase-site.xml 和regionservers的内容,最终结果只能在服务器端通过shell操作hbase,在client机器上连接一直报org.apache.hadoop.hbase.ipc.FailedServerException: This server is in the failed servers list: localhost/127.0.0.1:60020 一类的错误,后来把hbase-site.xml 和regionservers改完后,重新启动才好了
8.2 启动报错
因为自己的hosts文件中配置了其他的信息,启动有影响,修改hosts,注释掉无关的配置,追加hostname 和 回环IP的映射
服务器端环境搭建:
1.版本信息
java:1.8.0_172
hbase: 1.2.6
2.设置JAVA_HOME
在~/.bash_profile中追加如下内容
JAVA_HOME=/usr/java/jdk1.8.0_172-amd64 export JAVA_HOME
执行如下命令使上述设置立即生效
source ~/.bash_profile
3.设置hostname
hostname docker05
4.下载hbase, 点击下载
5.解压下载的文件
$ tar xzvf hbase-1.2.6-bin.tar.gz
6.修改conf下的文件,使能通过远程连接
6.1 进入conf文件夹
cd ./hbase-1.2.6/conf
6.2 修改hbase-site.xml文件,最主要是追加hbase.zookeeper.quorum属性,因为默认是localhost,只能在本机访问,修改成hostname才能远程访问
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- /** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ --> <configuration> <property> <name>hbase.rootdir</name> <value>file:///root/data/hbase/data</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/root/data/hbase/zookeeper</value> </property> <property> <name>hbase.client.retries.number</name> <value>5</value> </property> <property> <name>hbase.zookeeper.quorum</name> <!--注意这里改为自己的hostname--> <value>docker05</value> </property> <property> <name>hbase.zookeeper.property.clientport</name> <value>2181</value> </property> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> <description> Controls whether HBase will check for stream capabilities (hflush/hsync). Disable this if you intend to run on LocalFileSystem, denoted by a rootdir with the 'file://' scheme, but be mindful of the NOTE below. WARNING: Setting this to false blinds you to potential data loss and inconsistent system state in the event of process and/or node failures. If HBase is complaining of an inability to use hsync or hflush it's most likely not a false positive. </description> </property> </configuration>
6.3 修改regionservers文件
删除localhost,修改成hostname
7.启动hbase
cd ./hbase-1.2.6/bin
执行
./start-hbase.sh
正常情况下hbase就会启动好了,可通过jps命令查看是否有 **** HMaster 来判断
客户端配置
1.配置hostname
在客户端机器上也需要设置hostname,如192.168.0.172 docker05
2.将服务器上的hbase-site.xml 拷贝到客户端并放到工程根目录下
3.工程目录如下
4.工程的pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>falcon.chengf</groupId> <artifactId>simple-hbase-test</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.3.1</version> </dependency> </dependencies> </project>
5.测试类
/** * */ package simple.hbase.test; import java.io.IOException; import java.io.InputStream; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.io.compress.Compression.Algorithm; /** * @author: 作者: chengaofeng * @date: 创建时间:2018-05-31 16:12:35 * @Description: TODO * @version V1.0 */ public class HbaseTest { public static void main(String[] args) throws IOException { Configuration config = HBaseConfiguration.create(); InputStream input = HbaseTest.class.getResourceAsStream("/hbase-site.xml"); config.addResource(input); try (Connection connection = ConnectionFactory.createConnection(config); Admin admin = connection.getAdmin()) { HTableDescriptor table = new HTableDescriptor(TableName.valueOf("chengf")); table.addFamily(new HColumnDescriptor("columns").setCompressionType(Algorithm.NONE)); System.out.print("Creating table. "); if (admin.tableExists(table.getTableName())) { admin.disableTable(table.getTableName()); admin.deleteTable(table.getTableName()); } admin.createTable(table); System.out.println(" create table ok."); } } }
6.执行后,控制台信息如下
7.登录hbase服务器,可以看到chengf表创建成功
8.遇到的异常
8.1,只是设置了服务器的hostname,没有修改hbase-site.xml 和regionservers的内容,最终结果只能在服务器端通过shell操作hbase,在client机器上连接一直报org.apache.hadoop.hbase.ipc.FailedServerException: This server is in the failed servers list: localhost/127.0.0.1:60020 一类的错误,后来把hbase-site.xml 和regionservers改完后,重新启动才好了
8.2 启动报错
2019-12-06 16:16:21,277 ERROR [main] regionserver.HRegionServer: Failed construction RegionServer java.lang.UnsupportedOperationException: Constructor threw an exception for org.apache.hadoop.hbase.ipc.NettyRpcServer at org.apache.hadoop.hbase.util.ReflectionUtils.instantiate(ReflectionUtils.java:66) at org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:45) at org.apache.hadoop.hbase.ipc.RpcServerFactory.createRpcServer(RpcServerFactory.java:66) at org.apache.hadoop.hbase.master.MasterRpcServices.createRpcServer(MasterRpcServices.java:368) at org.apache.hadoop.hbase.regionserver.RSRpcServices.<init>(RSRpcServices.java:1240) at org.apache.hadoop.hbase.regionserver.RSRpcServices.<init>(RSRpcServices.java:1196) at org.apache.hadoop.hbase.master.MasterRpcServices.<init>(MasterRpcServices.java:346) at org.apache.hadoop.hbase.master.HMaster.createRpcServices(HMaster.java:727) at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:589) at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:495) at org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster.<init>(HMasterCommandLine.java:308) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:132) at org.apache.hadoop.hbase.LocalHBaseCluster.addMaster(LocalHBaseCluster.java:227) at org.apache.hadoop.hbase.LocalHBaseCluster.<init>(LocalHBaseCluster.java:174) at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:229) at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:140) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:149) at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:3123) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.hadoop.hbase.util.ReflectionUtils.instantiate(ReflectionUtils.java:58) ... 22 more Caused by: java.net.BindException: Can't assign requested address at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:433) at sun.nio.ch.Net.bind(Net.java:425) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) at org.apache.hbase.thirdparty.io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:128) at org.apache.hbase.thirdparty.io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:558) at org.apache.hbase.thirdparty.io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1283) at org.apache.hbase.thirdparty.io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:501) at org.apache.hbase.thirdparty.io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:486) at org.apache.hbase.thirdparty.io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:989) at org.apache.hbase.thirdparty.io.netty.channel.AbstractChannel.bind(AbstractChannel.java:254) at org.apache.hbase.thirdparty.io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:364) at org.apache.hbase.thirdparty.io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
因为自己的hosts文件中配置了其他的信息,启动有影响,修改hosts,注释掉无关的配置,追加hostname 和 回环IP的映射
127.0.0.1 localhost 127.0.0.1 chengaofeng #255.255.255.255 broadcasthost #192.168.0.138 docker02 #192.168.0.173 config-server1 mcsas-mongo kafka1 redis zookeeper1 mongo-master mcsas-mongo elasticsearch es1
相关推荐
当需要在Spring Boot应用中整合Spark进行远程服务计算时,通常会采用Spark的Standalone模式。本文将深入探讨如何将Spring Boot与Spark集成,并使用Standalone模式来实现远程服务计算。 首先,我们需要了解Spark ...
在这个主题中,我们将深入探讨"**selenium-server-standalone**"和"**Selenium-java**"这两个jar包,以及它们在Java+Selenium自动化测试中的作用。 首先,**selenium-server-standalone.jar**是Selenium WebDriver...
java8 看不到源码Docker HBase 独立 Dockerfile 此存储库包含Dockerfile for 发布到 public 。 基础 Docker 镜像 安装 安装 下载: docker pull cogniteev/hbase-standalone 基本用法 docker run -d -p 2181:2181 -p...
接下来,手册讲解了 HBase 的两种运行模式:Standalone(单机模式)和 Distributed(分布式模式)。在单机模式下,HBase 可以在没有任何其他 Hadoop 组件的情况下运行,这对于学习和开发来说非常方便。而在分布式...
接着,指南会详细地描述HBase的运行模式,包括单机模式(Standalone)和分布式模式(Distributed),并提供检查和确认HBase安装是否成功的步骤。 随后,指南会介绍如何进行HBase的配置,包括默认配置和示例配置。这...
- **连接(Joins)**,虽然HBase本身不直接支持连接操作,但文档中介绍了如何通过HBase外部的解决方案进行连接。 - **二级索引和替代查询路径**,解释了二级索引的使用和如何支持替代的查询方式。 - **约束**,包括...
此外,还需要配置HBase的配置文件`hbase-site.xml`,设置诸如集群模式(standalone或distributed)、Zookeeper地址等关键参数。例如,如果你的HBase运行在分布式模式下,你需要指定`hbase.cluster.distributed`属性...
本书还会介绍HBase的运行模式,包括独立模式(Standalone)和分布式模式(Distributed),以及如何运行和验证HBase安装的成功。HBase的独立模式适用于开发和测试环境,而分布式模式则是生产环境的首选,它支持在多台...
7. HBase runmodes: Standalone and Distributed(HBase运行模式:单机模式和分布式模式) - HBase支持单机和分布式两种运行模式。文档将指导用户如何根据需要选择和配置正确的运行模式。 8. Running and ...
在这个名为 "selenium-server-standalone-2.40" 的压缩包中,包含了Selenium Server的独立版本以及相关的Java库。 1. **Selenium Server Standalone**: Selenium Server Standalone是Selenium的核心组件之一,它...
在Java项目中使用Jython,首先需要引入jython-standalone-2.7.0.jar这个库。这个版本的Jython支持Python 2.7,尽管Python 2.x已经不再维护,但在某些遗留系统或特定需求下仍需使用。将这个jar包添加到项目的类路径后...
标题中的“selenium-server-standalone-2.44.0”、“selenium-java-2.44.0”和“java-client-2.2.0”分别指的是Selenium WebDriver的三个关键组件,它们在自动化Web浏览器测试中起着至关重要的作用。Selenium是一个...
HBase的操作模式分为独立模式(Standalone Mode)和分布式模式(Distributed Mode),书中解释了这两种运行模式的不同之处,并强调了对HBase配置文件(如hbase-site.xml和hbase-default.xml)的理解和同步配置的重要...
HBase提供了三种安装模式,分别是独立模式(Standalone)、伪分布式模式(Pseudo-Distributed)以及完全分布式模式(Full-Distributed)。 - 独立模式:是一种单节点部署方式,所有的进程都运行在一台机器上,通常...
1. Getting Started 部分通常介绍如何开始使用 HBase,包括安装、配置和基础运行,如 Standalone 模式的快速启动示例。 2. Apache HBase Configuration 部分介绍了 HBase 的配置文件,包括配置文件的构成、基本要求...
- Java Development Kit (JDK):HBase依赖于JDK运行,推荐使用最新稳定版本。 - ZooKeeper:作为协调服务,用于管理HBase集群的状态信息。 - 操作系统支持:Linux或类Unix系统为最佳选择。 - **HBaserun modes: ...
它提供了多种编程语言接口,包括 Java、Python、C# 和 Ruby 等,使得开发者能够编写脚本来模拟用户与浏览器的交互,进行功能和兼容性测试。 标题中的 "selenium-server-standalone-3.8.1" 指的是 Selenium 的独立...
独立部署模式standalone下spark配置,从乌班图到jak,scala,hadoop,spark的安装 部署
关于分布式安装,请浏览:http://hbase.apache.org/book/standalone_dist.html#distributed,关于HBase使用外置的ZooKeeper配置,请浏览:http://hbase.apache.org/book/zookeeper.html。所有在线的文档,均会出现在...
HBase 的运行依赖于 Java 环境,且自 HBase 2.0+ 版本起,已不再支持 JDK 1.7,因此必须安装 JDK 1.8 或更高版本。尽管文档中未详细描述 JDK 的安装步骤,但通常的安装流程包括下载 JDK 安装包、解压、配置环境变量...