

# 第 4 步：将数据加载到 HDFS
<a name="EMRforDynamoDB.Tutorial.LoadDataIntoHDFS"></a>

在此步骤中，将数据文件复制到 Hadoop Distributed File System（HDFS），然后创建映射到数据文件的外部 Hive 表。

**下载示例数据**

1. 下载示例数据存档 (`features.zip`)：

   ```
   wget https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/features.zip
   ```

1. 解压缩存档中的 `features.txt` 文件：

   ```
   unzip features.zip
   ```

1. 查看 `features.txt` 文件的前几行：

   ```
   head features.txt
   ```

   结果应与如下类似：

   ```
   1535908|Big Run|Stream|WV|38.6370428|-80.8595469|794
   875609|Constable Hook|Cape|NJ|40.657881|-74.0990309|7
   1217998|Gooseberry Island|Island|RI|41.4534361|-71.3253284|10
   26603|Boone Moore Spring|Spring|AZ|34.0895692|-111.410065|3681
   1506738|Missouri Flat|Flat|WA|46.7634987|-117.0346113|2605
   1181348|Minnow Run|Stream|PA|40.0820178|-79.3800349|1558
   1288759|Hunting Creek|Stream|TN|36.343969|-83.8029682|1024
   533060|Big Charles Bayou|Bay|LA|29.6046517|-91.9828654|0
   829689|Greenwood Creek|Stream|NE|41.596086|-103.0499296|3671
   541692|Button Willow Island|Island|LA|31.9579389|-93.0648847|98
   ```

   `features.txt` 文件包含来自美国地名委员会的数据子集 ([http://geonames.usgs.gov/domestic/download\$1data.htm](http://geonames.usgs.gov/domestic/download_data.htm))。每行中的字段代表以下内容：
   + 地形 ID（唯一标识符）
   + 名称
   + 类（湖泊、森林、溪流等）
   + 州
   + 纬度（度）
   + 经度（度）
   + 高度（英尺）

1. 在命令提示符处，输入以下命令：

   ```
   hive
   ```

   命令提示符更改为 `hive>`。

1. 输入下面的 HiveQL 语句，创建本机 Hive 表：

   ```
   CREATE TABLE hive_features
       (feature_id             BIGINT,
       feature_name            STRING ,
       feature_class           STRING ,
       state_alpha             STRING,
       prim_lat_dec            DOUBLE ,
       prim_long_dec           DOUBLE ,
       elev_in_ft              BIGINT)
       ROW FORMAT DELIMITED
       FIELDS TERMINATED BY '|'
       LINES TERMINATED BY '\n';
   ```

1. 输入下面的 HiveQL 语句，为表加载数据：

   ```
   LOAD DATA
   LOCAL
   INPATH './features.txt'
   OVERWRITE
   INTO TABLE hive_features;
   ```

1. 现在，您有一个本机 Hive 表，其中填充 `features.txt` 文件的数据。要验证，请输入下面的 HiveQL 语句：

   ```
   SELECT state_alpha, COUNT(*)
   FROM hive_features
   GROUP BY state_alpha;
   ```

   输出应显示州列表以及每个州中的地理特征的数量。

**后续步骤**  
[第 5 步：将数据复制到 DynamoDB](EMRforDynamoDB.Tutorial.CopyDataToDDB.md)