2

我想使用 MySQL 数据库将 Hive 分析脚本的结果存储在 BAM 2.0.1 中。查看提供的示例,我可以看到我必须使用许多属性 (mapred.jdbc.*) 传递连接信息。

有没有办法使用 Carbon 数据源而不是直接的 jdbc 连接?我主要关心的是在脚本中使用明文密码,这在关注安全的组织中是一个很大的障碍。

TIA

4

3 回答 3

3

是的,有可能。您可以使用 wso2.carbon.datasource.name 参数来传递碳数据源的名称。

于 2012-11-27T06:32:33.647 回答
0

需要使用密码,因为 Carbon 框架中尚未正确实现服务器到服务器的身份验证。但在最近的将来,我们希望通过改进 BAM 来消除这个问题。

于 2012-11-27T07:09:24.707 回答
0

使用 chamibuddhika 所描述的属性就可以了。下面的表声明显示了一个完整的示例:

CREATE EXTERNAL TABLE IF NOT EXISTS BatchSummaryByWeek(
execYear SMALLINT,
execWeek SMALLINT,
job_name STRING,
exit_code INT,
totalExecutions INT,
avgElapsed FLOAT,
maxElapsed INT,
minElapsed INT
) 
STORED BY 
'org.wso2.carbon.hadoop.hive.jdbc.storage.JDBCStorageHandler' 
TBLPROPERTIES ( 
'wso2.carbon.datasource.name' = 'MYSQL_BAM',
'hive.jdbc.update.on.duplicate' = 'true' , 
'hive.jdbc.primary.key.fields' = 'execYear,execWeek,job_name,exit_code' , 
'hive.jdbc.table.create.query' = 'CREATE TABLE BatchSummaryByWeek(execYear INTEGER, execWeek SMALLINT,job_name VARCHAR(250), exit_code INT,totalExecutions INT, avgElapsed FLOAT, maxElapsed INT,minElapsed INT)' );
于 2013-01-23T17:20:54.343 回答