Titan-1.0.0+Hbase-0.98.20使用java远程模式连接错误

2024-03-22

我正在学习Titan数据库。我已经在本地模式下成功运行了它。现在,我尝试在 Titan 文档中介绍的“远程服务器模式”下使用 Titan 数据库。我的 Titan 版本是 Titan-1.0.0-hadoop1。

我的 LAN 中有集群,包括cloud12 and cloud13。我在上面安装了hadoop-1.2.1,master是cloud12奴隶是cloud13.

我想测试创建图的性能,所以我设计在机器上以伪分布式模式启动我的 Hbase-0.98.20cloud12具有独立的zookeeper-3.4.6和elasticsearchcloud12.(我修改了hbase-env.sh,并使用默认端口2181 in zoo.cfg)

Hadoop和HBase似乎正常工作,我通过Jps检查了两台服务器,我还通过HBase shell检查了HBase。

这是我的配置hbase-site.xml:

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://cloud12:9000/hbase</value>
</property>

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

<property>
<name>hbase.master.port</name>
<value>60000</value>
</property>

<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/Titan/hbase/zookeeperDir</value>
</property>

<property>
<name>hbase.tmp.dir</name>
<value>/home/Titan/hbase/tmpDir</value>
</property>

<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>

<property>
<name>zookeeper.znode.parent</name>
<value>/hbase-unsecure</value>
</property>

<property>
<name>hbase.zookeeper.property.maxClientCnxns</name>
<value>600</value>
</property>
</configuration>

虽然当我在 LAN 中的另一台机器上的 Eclipse 中运行我的程序时,名为cloud6(我在这台机器上安装了Titan-1.0.0),我的输出日志中打印出混乱的错误信息。

这是我的输出中不断重复的错误

789 [主要] INFO org.apache.zookeeper.ZooKeeper - 启动客户端连接,connectString = 192.168.12.148:2181 sessionTimeout = 90000 watcher = hconnection-0x12d3a4e9,quorum = 192.168.12.148:2181,baseZNode = / hbase

870 [主要] 信息 org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper - 连接到 ZooKeeper 集合的进程标识符=hconnection-0x12d3a4e9=192.168.12.148:2181

878 [main-SendThread(192.168.12.148:2181)] 信息 org.apache.zookeeper.ClientCnxn - 打开与服务器 192.168.12.148/192.168.12.148:2181 的套接字连接。不会尝试使用 SASL 进行身份验证(未知错误)

1030 [main-SendThread(192.168.12.148:2181)] 信息 org.apache.zookeeper.ClientCnxn - 与 192.168.12.148/192.168.12.148:2181 建立套接字连接,正在启动会话

1049 [main-SendThread(192.168.12.148:2181)] 信息 org.apache.zookeeper.ClientCnxn - 服务器 192.168.12.148/192.168.12.148:2181 上的会话建立完成,sessionid = 0x15654717951001b,协商超时 = 40 000

1054 [主要] 信息 org.apache.hadoop.hbase.client.ZooKeeperRegistry - ZooKeeper 中读取的 ClusterId 为空

ZooKeeper中读取的ClusterId为null?我真的很困惑。我尝试解决问题,发现我的错误与许多其他错误类似,但我无法从谷歌或其他网站得到明确的答案。我的架构设计有错误吗?或者配置错误?

我可以确保我的主机和集群时间都是正确的。这是我连接 Hbase 的程序的一部分cloud12 from cloud6,我的代码有什么错误或缺失吗?

  public static final String INDEXNAME = "search"; 
  ...
  BaseConfiguration conf=new BaseConfiguration();
  conf.setProperty("storage.backend", "hbase");
  conf.setProperty("storage.hostname", "192.168.12.148");//ip of cloud12
  conf.setProperty("storage.tablename", "graph1");
  conf.setProperty("index." + INDEXNAME + ".backend", "elasticsearch");
  conf.setProperty("index." + INDEXNAME + ".hostname", "192.168.12.148"); 
  conf.setProperty("index." + INDEXNAME + ".elasticsearch.local-mode", false);  
  conf.setProperty("index." + INDEXNAME + ".elasticsearch.client-only", true); 

由于您使用的是外部动物园管理员 http://hbase.apache.org/0.94/book.html#d1984e11609合奏:

  1. Add the hbase.zookeeper.quorum财产价值在hbase-site.xml。该值应该是以逗号分隔的 Zookeeper 节点列表。它默认为localhost.

  2. Add export HBASE_MANAGES_ZK=false to the hbase-env.sh。它默认为true.

  3. 确保zookeeper.znode.parent财产价值在hbase-site.xml与 Titan 配置中的值匹配storage.hbase.ext.zookeeper.znode.parent。它默认为/hbase。如果这些值不匹配,则Titan 与 HBase 的连接将挂起 https://groups.google.com/d/msg/aureliusgraphs/PJW64yyziqE/OxIHljVfBQAJ.

  4. 确保clientPort财产价值在zoo.cfg匹配hbase.zookeeper.property.clientPort值在hbase-site.xml并且也匹配storage.hbase.ext.hbase.zookeeper.property.clientPortTitan 配置中的值。它默认为2181。如果这些不匹配,您将在日志中看到连接异常。

  5. 确保 Zookeeper 节点正在侦听clientPort使用可访问的 IP 地址(不是localhost).

一旦您确认可以连接到 Titan 表,我认为INFO消息可以安全地忽略。您可以通过以下设置切换日志记录级别log4j.properties https://groups.google.com/d/msg/aureliusgraphs/WkAXMbg5vYU/tt53_mRHBQAJ:

log4j.logger.org.apache.zookeeper=WARN
log4j.logger.org.apache.hadoop.hbase.client=WARN
log4j.logger.org.apache.hadoop.hbase.zookeeper=WARN

还有一个开放问题 https://github.com/thinkaurelius/titan/issues/1240与 Titan 进行对比,调查 Zookeeper 客户端连接发生如此频繁的原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Titan-1.0.0+Hbase-0.98.20使用java远程模式连接错误 的相关文章

  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 如何通过 javaconfig 使用 SchedulerFactoryBean.schedulerContextAsMap

    我使用 Spring 4 0 并将项目从 xml 移至 java config 除了访问 Service scheduleService 带注释的类来自QuartzJobBean executeInternal 我必须让它工作的 xml 位
  • Spark-submit,客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS];

    我使用 kerberos 设置了 hadoop 集群 但是当我运行 Spark Submit 时 它抛出异常 17 10 19 08 46 53 WARN scheduler TaskSetManager Lost task 0 0 in
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • HIVE - 使用WITH CLAUSE插入覆盖

    我有一个生成的查询以WITH子句开头 当我在控制台中运行它时 当我尝试使用INSERT OVERWRITE运行查询以将输出加载到单独的配置单元表中时 该查询工作正常 INSERT OVERWRITE TABLE proc db master
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐