• 検索結果がありません。

Partitionごとにロードを行う場合 でも、Partition間のデータの偏り

ドキュメント内 PowerPoint Presentation (ページ 35-42)

をサンプリングで検知して、割り当 てるReducerの数を調整すること により、各Reducerの処理量を平

Reducer 間の負荷分散

平準化 ( サンプリング ) の効果

Oracle Loader for Hadoop

方式

100GBの

ロード時間

偏りのあるデータをサンプリングなしで実行

週末のデータ量が10倍 サンプリング:なし

00:13:58.50

偏りのあるデータをサンプリングありで実行

週末のデータ量が10倍 サンプリング:あり

00:11:54.22

データの偏りがないデータを利用

対照試験: データの偏りなし

00:11:50.76

サンプリングを行うと 偏りがない場合の ロード時間とほぼ 変わらない

試験実施環境

Hadoop Cluster : Big Data Appliance (v1.0.3)

Database Server : Cisco UCS B200 M1 CPU: Xeon 5570 2.93GHz (4コア) x 2 / Memory: 96GB/ Network: 10GbE

 ロード対象の表を生成

 Oracle Loader for

Hadoop のJobをHadoop クラスタで実行

シンプルな 2 つの手順

Oracle Loader for Hadoop

>hadoop jar ¥

$OLH_HOME/jlib/oraloader.jar ¥

oracle.hadoop.loader.OraLoader ¥

-conf MyConf.xml

Oracle Loader for Hadoop の設定

Step 1: Input Format の選択 / 実装

HiveToAvroInputFormat Class:

– Reads data from a Hive

表からデータの読み取り

– HiveMetaStoreClient

を使って、

Hive

表の列、ファイルの所在、

InputFormat

な どを取得

– Hive表の行は、Avroレコードに変換される

DelimitedTextInputFormat Class:

– CSV,TSV

といったデリミタ区切りのファイルを読み込み

レコードは、改行で区切られており、フィールドの区切り文字は一文字である必 要がある

Oracle Loader for Hadoop の設定

Step 2: LoaderMap ファイルの作成

 LoaderMap ファイルの例

 ロード元ファイルのフィールドとデータベースの列名とのマッピング

<?xml version="1.0" encoding="UTF-8"?>

<LOADER_MAP>

<SCHEMA>HR</SCHEMA>

<TABLE>EMPLOYEES</TABLE>

<COLUMN field="empId">EMPLOYEE_ID</COLUMN>

<COLUMN field="lastName">LAST_NAME</COLUMN>

<COLUMN field="email">EMAIL</COLUMN>

<COLUMN field=“hireDate” format=“MM-dd-yyyy”>

HIRE_DATE</COLUMN>

ロード元ファイルのフィールド名

• Hive

表の場合、列名

デリミタ区切りの場合、行の最 初の項目から順に

F0

F1

F2…

という名前が自動的につ けられる

Oracle Loader for Hadoop の設定

Step 3: 表のメタデータにアクセス

 OLH は、 Oracle Database の表のメタデータを利用して Loader Job の実行 をコントロール

 OLH の実行環境が、 JDBC によって Oracle Database に接続が可能な環境 であれば、 Loader が自動的にメタデータを取得可能

 実行時に Database に接続できない環境 (Offline 利用前提の環境など ) の場

合、 OraLoaderMetadata ユーティリティを利用してあらかじめ、メタデータを

XML ファイルとして抽出しておく

Oracle Loader for Hadoop の設定

Step 4: 設定ファイルの作成

 設定ファイルの例

<?xml version="1.0"?>

<configuration>

<property>

<name>mapreduce.inputformat.class</name>

<value>oracle.hadoop.loader.lib.input.DelimitedTextInputFormat</value>

</property>

<property>

<name>mapreduce.outputformat.class</name>

<value>oracle.hadoop.loader.lib.output.JDBCOutputFormat</value>

</property>

<property>

<name>mapred.input.dir</name>

<value>/user/snonin/csv</value>

</property>

<property>

ロード元データの読み取りに利用す るクラス名を指定。

この例では、デリミタ区切りファイル 用のクラスを指定している

データベースへのロードで利用する クラスを指定。この例では

JDBC

利用。

Oracle Loader for Hadoop の設定

Step 4: 設定ファイルの作成

 前ページからの続き

<property>

<name>oracle.hadoop.loader.loaderMapFile</name>

<value>file:///home/snonin/work/olh/csv/map.xml</value>

</property>

<property>

<name>oracle.hadoop.loader.loadByPartition</name>

<value>false</value>

</property>

<property>

<name>oracle.hadoop.loader.connection.url</name>

<value>jdbc:oracle:thin:@//localhost:1521/orcl</value>

</property>

<property>

<name>oracle.hadoop.loader.connection.user</name>

<value>hdfsuser</value>

</property>

STEP 2で作成したLoaderMapを

ドキュメント内 PowerPoint Presentation (ページ 35-42)

関連したドキュメント