

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kueri log EMR Amazon
<a name="emr-logs"></a>

Amazon EMR dan aplikasi big data yang berjalan di Amazon EMR menghasilkan berkas log. File log ditulis ke [simpul utama](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html), dan Anda juga dapat mengonfigurasi Amazon EMR untuk mengarsipkan file log ke Amazon S3 secara otomatis. Anda dapat menggunakan Amazon Athena untuk mengkueri log ini untuk mengidentifikasi peristiwa dan tren untuk aplikasi dan cluster. Untuk informasi selengkapnya tentang jenis file log di Amazon EMR dan menyimpannya ke Amazon S3, [lihat Melihat file log](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-manage-view-web-log-files.html) di Panduan Manajemen *EMR Amazon*.

**Topics**
+ [Buat dan kueri tabel dasar berdasarkan file log Amazon EMR](emr-create-table.md)
+ [Buat dan kueri tabel yang dipartisi berdasarkan log EMR Amazon](emr-create-table-partitioned.md)

# Buat dan kueri tabel dasar berdasarkan file log Amazon EMR
<a name="emr-create-table"></a>

Contoh berikut membuat tabel dasar,`myemrlogs`, berdasarkan berkas log yang disimpan ke`s3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6/elasticmapreduce/`. Lokasi Amazon S3 yang digunakan dalam contoh di bawah ini mencerminkan pola lokasi log default untuk klaster EMR yang dibuat oleh akun Amazon Web Services di Wilayah. *123456789012* *us-west-2* Jika Anda menggunakan lokasi khusus, polanya adalah s3://amzn-s3-demo-bucket/*ClusterID*.

Untuk informasi tentang cara membuat tabel dipartisi untuk berpotensi meningkatkan performa permintaan dan mengurangi transfer data, lihat[Buat dan kueri tabel yang dipartisi berdasarkan log EMR Amazon](emr-create-table-partitioned.md).

```
CREATE EXTERNAL TABLE `myemrlogs`(
  `data` string COMMENT 'from deserializer')
ROW FORMAT DELIMITED  
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  's3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6'
```

## Kueri contoh
<a name="emr-example-queries-basic"></a>

Contoh kueri berikut dapat dijalankan pada`myemrlogs`tabel yang dibuat oleh contoh sebelumnya.

**Example — Log langkah kueri untuk terjadinya ERROR, WARN, INFO, EXCEPTION, FATAL, atau DEBUG**  

```
SELECT data,
        "$PATH"
FROM "default"."myemrlogs"
WHERE regexp_like("$PATH",'s-86URH188Z6B1')
        AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
```

**Example — Kueri log contoh tertentu, i-00b3c0a839ece0a9c, untuk ERROR, WARN, INFO, EXCEPTION, FATAL, atau DEBUG**  

```
SELECT "data",
        "$PATH" AS filepath
FROM "default"."myemrlogs"
WHERE regexp_like("$PATH",'i-00b3c0a839ece0a9c')
        AND regexp_like("$PATH",'state')
        AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
```

**Example — Kueri log aplikasi presto untuk ERROR, WARN, INFO, EXCEPTION, FATAL, atau DEBUG**  

```
SELECT "data",
        "$PATH" AS filepath
FROM "default"."myemrlogs"
WHERE regexp_like("$PATH",'presto')
        AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
```

**Example — Log aplikasi Query Namenode untuk ERROR, WARN, INFO, EXCEPTION, FATAL, atau DEBUG**  

```
SELECT "data",
        "$PATH" AS filepath
FROM "default"."myemrlogs"
WHERE regexp_like("$PATH",'namenode')
        AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
```

**Example — Kueri semua log berdasarkan tanggal dan jam untuk ERROR, WARN, INFO, EXCEPTION, FATAL, atau DEBUG**  

```
SELECT distinct("$PATH") AS filepath
FROM "default"."myemrlogs"
WHERE regexp_like("$PATH",'2019-07-23-10')
        AND regexp_like(data, 'ERROR|WARN|INFO|EXCEPTION|FATAL|DEBUG') limit 100;
```

# Buat dan kueri tabel yang dipartisi berdasarkan log EMR Amazon
<a name="emr-create-table-partitioned"></a>

Contoh ini menggunakan lokasi log yang sama untuk membuat tabel Athena, tetapi tabel dipartisi, dan partisi kemudian dibuat untuk setiap lokasi log. Untuk informasi selengkapnya, lihat [Partisi data Anda](partitions.md).

Kueri berikut membuat tabel dipartisi bernama`mypartitionedemrlogs`:

```
CREATE EXTERNAL TABLE `mypartitionedemrlogs`(
  `data` string COMMENT 'from deserializer')
 partitioned by (logtype string)
ROW FORMAT DELIMITED  
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6'
```

Pernyataan kueri berikut kemudian membuat partisi tabel berdasarkan sub-direktori untuk jenis log yang berbeda yang Amazon EMR menciptakan di Amazon S3:

```
ALTER TABLE mypartitionedemrlogs ADD
     PARTITION (logtype='containers')
     LOCATION 's3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6/containers/'
```

```
ALTER TABLE mypartitionedemrlogs ADD
     PARTITION (logtype='hadoop-mapreduce')
     LOCATION 's3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6/hadoop-mapreduce/'
```

```
ALTER TABLE mypartitionedemrlogs ADD
     PARTITION (logtype='hadoop-state-pusher')
     LOCATION 's3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6/hadoop-state-pusher/'
```

```
ALTER TABLE mypartitionedemrlogs ADD
     PARTITION (logtype='node')
     LOCATION 's3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6/node/'
```

```
ALTER TABLE mypartitionedemrlogs ADD
     PARTITION (logtype='steps')
     LOCATION 's3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6/steps/'
```

Setelah Anda membuat partisi, Anda dapat menjalankan`SHOW PARTITIONS`query di atas tabel untuk mengkonfirmasi:

```
SHOW PARTITIONS mypartitionedemrlogs;
```

## Kueri contoh
<a name="emr-example-queries-partitioned"></a>

Contoh berikut menunjukkan kueri untuk entri log tertentu menggunakan tabel dan partisi yang dibuat oleh contoh di atas.

**Example — Meminta aplikasi application\$11561661818238\$10002 log di partisi kontainer untuk ERROR atau WARN**  

```
SELECT data,
        "$PATH"
FROM "default"."mypartitionedemrlogs"
WHERE logtype='containers'
        AND regexp_like("$PATH",'application_1561661818238_0002')
        AND regexp_like(data, 'ERROR|WARN') limit 100;
```

**Example — Menanyakan partisi Hadoop-mapReduce untuk pekerjaan job\$11561661818238\$10004 dan gagal mengurangi**  

```
SELECT data,
        "$PATH"
FROM "default"."mypartitionedemrlogs"
WHERE logtype='hadoop-mapreduce'
        AND regexp_like(data,'job_1561661818238_0004|Failed Reduces') limit 100;
```

**Example — Meminta log Hive di partisi node untuk ID kueri 056e0609-33e1-4611-956c-7a31b42d2663**  

```
SELECT data,
        "$PATH"
FROM "default"."mypartitionedemrlogs"
WHERE logtype='node'
        AND regexp_like("$PATH",'hive')
        AND regexp_like(data,'056e0609-33e1-4611-956c-7a31b42d2663') limit 100;
```

**Example — Meminta log resourcemanager di partisi node untuk aplikasi 1567660019320\$10001\$101\$1000001**  

```
SELECT data,
        "$PATH"
FROM "default"."mypartitionedemrlogs"
WHERE logtype='node'
        AND regexp_like(data,'resourcemanager')
        AND regexp_like(data,'1567660019320_0001_01_000001') limit 100
```