我想使用MySQL数据库在BAM 2.0.1中存储Hive分析脚本的结果。看一下提供的示例,我可以看到我必须使用许多属性(mapred.jdbc。*)传递连接信息。
有没有办法使用Carbon数据源而不是直接的jdbc连接?我主要担心的是在脚本中使用明文密码,这是安全相关组织中的一个重要障碍。
TIA
答案 0 :(得分:3)
答案 1 :(得分:0)
需要使用密码,因为在Carbon框架中尚未正确实现服务器到服务器的身份验证。但是在最近的将来,我们希望通过对BAM的改进来消除这个问题。
答案 2 :(得分: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)' );