kerberized apache phoenix 的 node.js 和 npm jdbc 包问题

2023-12-08

我正在使用nodejs和npm jdbc包连接到hortonworks上的kerberized Apache phoenix,我能够使用nodejs和jdbc包连接到非kerberized phoenix,但面对下面的kerberos身份验证错误与kerberized phoenix。如果有人做过类似的事情,请给予指导。

克列表命令:

klist -k -t -e /etc/security/keytabs/kafka.headless.keytab
Keytab name: FILE:/etc/security/keytabs/kafka.headless.keytab
KVNO Timestamp         Principal
---- ----------------- --------------------------------------------------------
   1 09/30/16 10:10:27 [email protected] (aes256-cts-hmac-sha1-96)

Code:

var express = require('express');
var app = express();

var server = require('http').Server(app);
var https =require('http');
var io = require('socket.io')(server);
var kafka = require('kafka-node');
var cassandra = require('cassandra-driver');
var JDBC = require('jdbc');
var jinst = require('jdbc/lib/jinst');
var asyncjs = require('async');
//var Pool = require('jdbc/lib/pool');
//var nodeunit = require('nodeunit');
//var _ = require('lodash');

var _ = require('underscore');
 //ar cors = require("cors");
app.use(express.static(__dirname + '/view'));


server.listen(3000);
app.use('/bower_components',  express.static(__dirname + '/bower_components'));
app.get('/', function (req, res, next) { res.sendFile(__dirname + '/index.html');});

if (!jinst.isJvmCreated()) {
  jinst.addOption("-Xrs");
  jinst.setupClasspath(['/etc/krb5.conf',
                         '/usr/hdp/2.4.2.0-258/hadoop/conf',
                         '/etc/hbase/conf/core-site.xml',
                         '/etc/hbase/conf/hbase-site.xml',
                         '/etc/hbase/conf/hbase-policy.xml',
                         '/etc/hbase/conf/hbase_client_jaas.conf',
                         '/etc/hbase/conf/hbase_regionserver_jaas.conf',
                         '/etc/hbase/conf/hdfs-site.xml',
                         '/usr/hdp/2.4.2.0-258/hbase/lib/hbase-client-1.1.2.2.4.2.0-258.jar',
                         '/usr/hdp/2.4.2.0-258/hbase/lib/hbase-server-1.1.2.2.4.2.0-258.jar',
                         '/usr/hdp/2.4.2.0-258/hbase/lib/hbase-common-1.1.2.2.4.2.0-258.jar',
                         '/usr/hdp/2.4.2.0-258/hbase/lib/hbase-server-1.1.2.2.4.2.0-258.jar',
                         '/usr/hdp/2.4.2.0-258/phoenix/phoenix-4.4.0.2.4.2.0-258-thin-client.jar',
                         '/usr/hdp/2.4.2.0-258/phoenix/phoenix-server-4.4.0.2.4.2.0-258-runnable.jar',
                         '/usr/hdp/2.4.2.0-258/phoenix/phoenix-4.4.0.2.4.2.0-258-client.jar']);


var config = {
  url: 'jdbc:phoenix:piv-prd-os-646.forsys.lan:2181:/hbase-secure:[email protected]:/etc/security/keytabs/kafka.headless.keytab',
  drivername: 'org.apache.phoenix.jdbc.PhoenixDriver',
  //user : 'root',
  //password: 'root',
  //properties: {}
  minpoolsize: 2,
  maxpoolsize: 3
  };

var hsqldb = new JDBC(config);

hsqldb.initialize(function(err) {
  if (err) {
    console.log(err);
  }
  else
  {
    console.log("---- initialize successfully ----")
  }
});

例外:

error:  Error: Error running static method
java.sql.SQLException: ERROR 103 (08004): Unable to establish connection.
        at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:395)
        at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.openConnection(ConnectionQueryServicesImpl.java:287)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.access$300(ConnectionQueryServicesImpl.java:170)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1840)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1819)
        at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:77)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1819)
        at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
        at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
        at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
        at java.sql.DriverManager.getConnection(DriverManager.java:571)
        at java.sql.DriverManager.getConnection(DriverManager.java:187)
        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)
Caused by: java.io.IOException: Login failure for [email protected] from keytab /etc/security/keytabs/kafka.headless.keytab: javax.security.auth.login.LoginException: Unable to obtain password from user

        at org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:976)
        at org.apache.hadoop.security.SecurityUtil.login(SecurityUtil.java:280)
        at org.apache.hadoop.hbase.security.User$SecureHadoopUser.login(User.java:386)
        at org.apache.hadoop.hbase.security.User.login(User.java:253)
        at org.apache.phoenix.query.ConnectionQueryServicesImpl.openConnection(ConnectionQueryServicesImpl.java:282)
        ... 14 more
Caused by: javax.security.auth.login.LoginException: Unable to obtain password from user

        at com.sun.security.auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:856)
        at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:719)
        at com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:584)
        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 javax.security.auth.login.LoginContext.invoke(LoginContext.java:762)
        at javax.security.auth.login.LoginContext.access$000(LoginContext.java:203)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:690)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:688)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:687)
        at javax.security.auth.login.LoginContext.login(LoginContext.java:595)
        at org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:967)
        ... 18 more

我能够通过以下更改解决此问题:

解决方案:

if (!jinst.isJvmCreated()) {
  jinst.addOption("-Xrs");
  jinst.addOption("-Djava.security.auth.login.config=/home/user/jar/hbase_client_jaas.conf");
  jinst.addOption("-Djava.security.krb5.conf=/etc/krb5.conf");
  jinst.addOption("-Dkerberos.client.reference.name=Client");
  jinst.setupClasspath([
                        '/etc/hbase/2.4.2.0-258/0/',
                        '/etc/hadoop/2.4.2.0-258/0/',
                        '/home/user/jar/phoenix-4.4.0-HBase-1.1-client.jar'
                         ]);
}

var config = {
 url: 'jdbc:phoenix:ZK1,ZK2,ZK3:2181:/hbase-secure:[email protected]:/home/user/user.headless.keytab',
 drivername: 'org.apache.phoenix.jdbc.PhoenixDriver',
  user : 'hbase',
  password: 'hbase'
  };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kerberized apache phoenix 的 node.js 和 npm jdbc 包问题 的相关文章

随机推荐

  • BUG:Java Swing 键绑定在 OSX 中使用 awt setFullScreenWindow 时 JDK 7 失去功能

    编辑 1 16 2013 原始问题已被删除 这似乎是 mac OSX 上 JDK 7 的一个错误 我已向 Sun Oracle 提交了错误报告 下面的文件使用 awt 类 GraphicsEnvironment 和方法 setFullScr
  • 禁用鼠标垂直滚动[重复]

    这个问题在这里已经有答案了 可能的重复 如何通过鼠标停止垂直滚动 我在网络浏览器中使用 javascript Jquery 我制作了一个自定义水平滚动条 它与鼠标滚轮或鼠标滚动一起使用 通常鼠标滚动与垂直条配合使用 所以它和我编程的水平滚动
  • 创建子文档后如何填充猫鼬?

    我正在向 item comments 列表添加评论 在将其输出到响应中之前 我需要获取 comment created by 用户数据 我该怎么做 Item findById req param itemid function err it
  • 嵌套 XML 到 Pandas 数据框

    我正在尝试创建一个脚本来将嵌套 XML 文件转换为 Pandas 数据帧 我找到了这篇文章https medium com robertopreste from xml to pandas dataframes 9292980b1c1c 它
  • 在子域中部署 laravel 4 应用程序

    我即将在共享网络主机上将 laravel 4 部署到子域中 但我对该怎么做有点困惑 我在 hostpapa 帐户上运行它 但对配置不满意并切换了测试环境的提供商 我创建了以下文件夹 域 私人 myApps golfmanager 我已将除公
  • Android 如何支持阿拉伯文字?

    我成功从服务器获取阿拉伯文本 我想在代码中显示检索到的文本 但它显示框而不是阿拉伯文本 假使 假设t数组值是来自服务器的阿拉伯文本 string t Textview tv Textview findviewByid R id text t
  • 显示数据的可扩展 UITableView 单元格

    我有一些按年份编录的体育比赛 对于每场比赛 我都有最终结果 比赛日期和得分手 我在 表格视图 中显示这些匹配项 如下所示 所以我想要实现的是 当单击单元格时 显示比赛详细信息 如图所示 我还找到了一些库来实现手风琴 可扩展风格 但没有人能完
  • python selenium无法清除输入字段

    我尝试使用 selenium 选择我的输入 但是当我使用它时它不起作用 driver self driver password driver find element by xpath input name password passwor
  • 从远程系统提交 MapReduce 作业时出现异常

    我从远程系统提交 MapReduce 作业时遇到异常 13 10 28 18 49 52 错误 security UserGroupInformation PriviledgedActionException 为 根本原因 org apac
  • iPhone“全字”搜索

    我目前正在使用以下算法在我的 iPhone 应用程序上进行搜索 NSRange range entry englishEntry rangeOfString searchText options NSCaseInsensitiveSearc
  • 如何从 Stack Exchange API 获取给定用户名的用户 ID?

    我想使用以下方法获取 Stack Overflow 上的用户活动 users ids timeline method 问题是这个方法只接受一个用户 ID 但我想传递一个用户名 所以任何人都可以写下他们的昵称并获取相关的统计数据 该 API
  • 如何用css画一条线并在其上显示文本或图像

    我正在尝试使用 CSS 画一条线并在线中间显示文本 图像 featured images color 666666 border 2px solid 333333 p class featured images Featured p 这就是
  • UIDatePicker 选择月份和年份

    我需要一个UIDatePicker仅用于选择月份和年份 我检查了课程参考文档 好像UIDatePicker is a UIView 我想象UIPickerView可能是一个子视图 如果我能抓住它 我可以隐藏该组件 但不是 那是不可能的 那么
  • 通过API调用删除FB相册

    我用谷歌搜索了一下 也在这里查看了一些相关的问题 但没有找到答案 有没有办法通过 Graph API 调用从 FB 删除相册 我正在做DELETE请求https graph facebook com ALBUM ID具有相应的访问令牌 但它
  • PostgreSQL 函数返回多个结果集

    是否可以从 Postgres 函数返回多个结果集 就像在 MSSQL 中一样 CREATE PROCEDURE test AS SELECT FROM first table SELECT FROM second table 从多个查询返回
  • 如何在 Azure 上部署 NextJs SSR React 应用程序

    我一直在尝试在 Azure 上部署使用 NextJS 构建的服务器端渲染的 React 应用程序 我设置了 Azure 管道并成功发布 但运行后 当我访问 azure 网站 URL 时 应用程序似乎没有加载 构建文件内容与客户端渲染的应用程
  • Python - 任何检查数字 0 或 False 的方法

    如果我将一个变量设置为 False 它会被读取为等于 0 有什么方法可以检查变量是否确实为 False 或者是否为数字 0 就像是 Spam False if Spam False and not Spam 0 do something 我
  • 无法启动 jupyter 笔记本:TypeError

    运行命令时jupyter notebook 我收到以下错误 Traceback most recent call last File usr local bin jupyter notebook line 6 in
  • R 中奇怪的 POSIXct 函数行为

    我正在 R 中使用 POSIXct 数据类型 在我的工作中 我合并了一个函数 该函数在向量中返回两个 POSIXct 日期 然而 我发现了一些意想不到的行为 我写了一些示例代码来说明我的问题 POSIXct returning issue
  • kerberized apache phoenix 的 node.js 和 npm jdbc 包问题

    我正在使用nodejs和npm jdbc包连接到hortonworks上的kerberized Apache phoenix 我能够使用nodejs和jdbc包连接到非kerberized phoenix 但面对下面的kerberos身份验