

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Abfragen von Amazon-EMR-Protokollen
<a name="emr-logs"></a>

Amazon EMR und Big-Data-Anwendungen, die auf von Amazon EMR erzeugten Protokolldateien ausgeführt werden. Protokolldateien werden auf den [Primärknoten](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html) geschrieben, und Sie können Amazon EMR zudem so konfigurieren, dass Protokolldateien automatisch in Amazon S3 archiviert werden. Sie können mit Amazon Athena diese Protokolle abfragen, um Ereignisse und Trends für Anwendungen und Cluster zu identifizieren. Weitere Informationen zu den Arten von Protokolldateien in Amazon EMR und deren Speicherung in Amazon S3 finden Sie unter [Anzeigen von Protokolldateien](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-manage-view-web-log-files.html) im *Amazon-EMR-Verwaltungshandbuch*.

**Topics**
+ [Erstellen und Abfragen einer Basistabelle basierend auf Amazon-EMR-Protokolldateien](emr-create-table.md)
+ [Erstellen und Abfragen einer partitionierten Tabelle basierend auf Amazon-EMR-Protokollen](emr-create-table-partitioned.md)

# Erstellen und Abfragen einer Basistabelle basierend auf Amazon-EMR-Protokolldateien
<a name="emr-create-table"></a>

Im folgenden Beispiel wird die Basistabelle `myemrlogs` erstellt, die auf Protokolldateien basiert, die in `s3://aws-logs-123456789012-us-west-2/elasticmapreduce/j-2ABCDE34F5GH6/elasticmapreduce/` gespeichert sind. Der in den folgenden Beispielen verwendete Amazon S3 S3-Speicherort entspricht dem Muster des Standard-Protokollspeicherorts für einen EMR-Cluster, der vom Amazon Web Services Services-Konto *123456789012* in Region *us-west-2* erstellt wurde. Wenn Sie einen benutzerdefinierten Speicherort verwenden, lautet das Muster s3://amzn-s3-demo-bucket/*ClusterID*.

Hinweise zum Erstellen einer partitionierten Tabelle zur potenziellen Verbesserung der Abfrageleistung und zur Verringerung der Datenübertragung finden Sie unter [Erstellen und Abfragen einer partitionierten Tabelle basierend auf Amazon-EMR-Protokollen](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'
```

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

Die folgenden Beispielabfragen können für die im vorherigen Beispiel erstellte `myemrlogs`-Tabelle ausgeführt werden.

**Example – Abfrage von step-Protokollen nach Vorkommen von ERROR, WARN, INFO, EXCEPTION, FATAL oder 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 – Abfrage eines bestimmten Instance-Protokolls, i-00b3c0a839ece0a9c, nach ERROR, WARN, INFO, EXCEPTION, FATAL oder 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 – Abfrage von presto-Anwendungsprotokollen nach ERROR, WARN, INFO, EXCEPTION, FATAL oder 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 – Abfrage von Namenode-Anwendungsprotokollen nach ERROR, WARN, INFO, EXCEPTION, FATAL oder 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 – Abfrage aller Protokolle nach Datum und Stunde für ERROR, WARN, INFO, EXCEPTION, FATAL oder 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;
```

# Erstellen und Abfragen einer partitionierten Tabelle basierend auf Amazon-EMR-Protokollen
<a name="emr-create-table-partitioned"></a>

Diese Beispiele verwenden denselben Protokollspeicherort zum Erstellen einer Athena-Tabelle, die Tabelle wird aber partitioniert, und dann wird für jeden Protokollspeicherort eine Partition erstellt. Weitere Informationen finden Sie unter [Ihre Daten partitionieren](partitions.md).

Die folgende Abfrage erstellt die partitionierte Tabelle mit dem Namen `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'
```

Die folgenden Abfrageanweisungen erstellen dann Tabellenpartitionen basierend auf Unterverzeichnissen für verschiedene Protokolltypen, die Amazon EMR in Amazon S3 erstellt:

```
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/'
```

Nachdem Sie die Partitionen erstellt haben, können Sie eine `SHOW PARTITIONS`-Abfrage in der Tabelle ausführen, um Folgendes zu bestätigen:

```
SHOW PARTITIONS mypartitionedemrlogs;
```

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

In den folgenden Beispielen werden Abfragen für bestimmte Protokolleinträge veranschaulicht, die die anhand der obigen Beispiele erstellten Tabelle und Partitionen verwenden.

**Example – Abfrage der Protokolle von Anwendung application\$11561661818238\$10002 in der Container-Partition nach ERROR oder 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 – Abfrage der hadoop-Mapreduce-Partition nach Auftrag job\$11561661818238\$10004 und fehlgeschlagene Reduzierungen**  

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

**Example – Abfrage von Hive-Protokollen in der Knotenpartition nach Abfrage-ID 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 – Abfrage von resourcemanager-Protokollen in der Knotenpartition für die Anwendung 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
```