Pergunta

I´d like to use a MySQL database to store the results of Hive analytics scripts in BAM 2.0.1. Taking a look at the supplied examples, I can see that I have to pass connection information using a number of properties (mapred.jdbc.*).

Is there a way to use a Carbon datasource instead of direct jdbc connections ? My main concern is the use of cleartext passwords in a script, a big blocker in security-concerned organizations.

TIA

Foi útil?

Solução

yes it is possible. You can use wso2.carbon.datasource.name parameter to pass the name of the carbon datasource.

Outras dicas

Using passwords is required as server-to-server authentication is not properly implemented in Carbon framework yet. But in recent future we hope to remove this issue with an improvement to BAM.

Using the property as chamibuddhika described did the trick. The table declaration below shows a complete example:

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)' );
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top