選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

Amazon EMR 舊版 AMI 的 Hive 應用程式詳細資訊 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon EMR 舊版 AMI 的 Hive 應用程式詳細資訊

日誌檔

使用 Amazon EMR AMI 版本 2.x 和 3.x ,Hive 日誌會儲存至 /mnt/var/log/apps/。為了支援 Hive 並行版本,您執行的 Hive 版本會決定日誌檔名稱,如下表所示。

Hive 版本 日誌檔案名稱
0.13.1 hive.log
注意

從這個版本開始,Amazon EMR 使用的是無版本控制的檔案名稱 hive.log。次要版本會共用與主要版本的相同日誌位置。

0.11.0 hive_0110.log
注意

Hive 0.11.0 次要版本 (例如 0.11.0.1) 會共用與 Hive 0.11.0 相同的日誌檔位置。

0.8.1 hive_081.log
注意

Hive 0.8.1 次要版本 (例如 Hive 0.8.1.1) 會共用與 Hive 0.8.1 相同的日誌檔位置。

0.7.1 hive_07_1.log
注意

Hive 0.7.1 次要版本 (例如 Hive 0.7.1.3 和 Hive 0.7.1.4) 會共用與 Hive 0.7.1 相同的日誌檔位置。

0.7 hive_07.log
0.5 hive_05.log
0.4 hive.log

分割輸入功能

為了使用早於 0.13.1 的 Hive 版本 (早於 3.11.0 的 Amazon EMR AMI 版本) 實作分割輸入功能,請使用下列步驟:

hive> set hive.input.format=org.apache.hadoop.hive.ql.io.HiveCombineSplitsInputFormat; hive> set mapred.min.split.size=100000000;

Hive 0.13.1 已淘汰此功能。若要取得 Amazon EMR AMI 版本 3.11.0 的相同分割輸入格式功能,請使用下列功能:

set hive.hadoop.supports.splittable.combineinputformat=true;

Thrift 服務連接埠

Thrift 是 RPC 架構,其定義精巧二進位序列化格式,此格式會用來保留資料結構以供後續分析之用。一般而言,Hive 會將伺服器設定為在以下連接埠操作。

Hive 版本 連接埠號碼
Hive 0.13.1 10000
Hive 0.11.0 10004
Hive 0.8.1 10003
Hive 0.7.1 10002
Hive 0.7 10001
Hive 0.5 10000

如需 thrift 服務的詳細資訊,請參閱 http://wiki.apache.org/thrift/

使用 Hive 來復原分割區

Amazon EMR 包括以 Hive 查詢語言的陳述式,其會將資料表分割區從位於 Amazon S3 中的資料表資料中恢復。此如下列範例所示:

CREATE EXTERNAL TABLE (json string) raw_impression PARTITIONED BY (dt string) LOCATION 's3://elastic-mapreduce/samples/hive-ads/tables/impressions'; ALTER TABLE logs RECOVER PARTITIONS;

分割區目錄和資料必須在資料表定義中指定的位置且必須根據 Hive 慣例命名:例如 dt=2009-01-01

注意

在 Hive 0.13.1 之後,系統原生會使用 msck repair table 支援此功能,因此 recover partitions 不受支援。如需詳細資訊,請參閱 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

將 Hive 變數傳遞到指令碼

若要使用 將變數傳遞至 Hive 步驟 AWS CLI,請輸入下列命令,將 myKey 取代為您的 EC2 金鑰對名稱,並將 amzn-s3-demo-bucket 取代為您的儲存貯體名稱。在這個範例中,SAMPLE 是一個變動值,前綴為 -d 變數。此變數會在 Hive 指令碼定義為:${SAMPLE}

注意

包含 Linux 行接續字元 (\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入符號 (^)。

aws emr create-cluster --name "Test cluster" --ami-version 3.9 \ --applications Name=Hue Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type m3.xlarge --instance-count 3 \ --steps Type=Hive,Name="Hive Program",ActionOnFailure=CONTINUE,\ Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/response-time-stats.q,-d,\ INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://amzn-s3-demo-bucket/hive-ads/output/,\ -d,SAMPLE=s3://elasticmapreduce/samples/hive-ads/]

指定外部中繼存放區位置

下列程序說明如何為 Hive 中繼存放區位置覆寫預設組態值,並使用重新設定的中繼存放區位置來啟動叢集。

若要建立位於 EMR 叢集之外的中繼存放區
  1. 使用 Amazon RDS 建立 MySQL 或 Aurora 資料庫。

    有關如何建立 Amazon RDS 資料庫的詳細資訊,請參閱 Amazon RDS 入門

  2. 修改您的安全群組以允許資料庫與 ElasticMapReduce-Master (ElasticMapReduce-Master) 安全群組之間的 JDBC 連線。

    有關如何修改存取安全群組的詳細資訊,請參閱《Amazon RDS 使用者指南》中的 Amazon RDS 安全群組

  3. hive-site.xml 中設定 JDBC 設定值:

    1. 建立內含以下項目的 hive-site.xml 組態檔:

      <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mariadb://hostname:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>Username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> <description>Password to use against metastore database</description> </property> </configuration>

      hostname 是執行資料庫之 Amazon RDS 執行個體的 DNS 地址。usernamepassword 是您資料庫的登入資料。如需有關連線至 MySQL 和 Aurora 資料庫執行個體的詳細資訊,請參閱《Amazon RDS 使用者指南》中的連線至執行 MySQL 資料庫引擎的 DB 執行個體連線至 Aurora DB 叢集

      JDBC 驅動器由 Amazon EMR 安裝。

      注意

      值屬性不得包含空格或歸位。它應該顯示在單一列。

    2. hive-site.xml 檔案儲存至 Amazon S3 上的位置 (例如 s3://amzn-s3-demo-bucket/hive-site.xml)。

  4. 建立叢集,指定自訂 hive-site.xml 檔案的 Amazon S3 位置。

    下列範例命令示範執行此操作的 AWS CLI 命令。

    注意

    包含 Linux 行接續字元 (\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入符號 (^)。

    aws emr create-cluster --name "Test cluster" --ami-version 3.10 \ --applications Name=Hue Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-type m3.xlarge --instance-count 3 \ --bootstrap-actions Name="Install Hive Site Configuration",\ Path="s3://region.elasticmapreduce/libs/hive/hive-script",\ Args=["--base-path","s3://elasticmapreduce/libs/hive","--install-hive-site",\ "--hive-site=s3://amzn-s3-demo-bucket/hive-site.xml","--hive-versions","latest"]

使用 JDBC 連線至 Hive

若要透過 JDBC 連接到 Hive 需要下載 JDBC 驅動程式並安裝 SQL 用戶端。以下範例示範如何使用 SQL Workbench/J 以使用 JDBC 連接到 Hive。

下載 JDBC 驅動程式
  1. 下載和擷取您希望存取之 Hive 版本的適合驅動程式。Hive 的版本差異取決於您建立 Amazon EMR 叢集時選擇的 AMI。

  2. 安裝 SQL Workbench/J。如需更多資訊,請參閱 SQL Workbench/J 手冊使用者手冊中的安裝和啟動 SQL Workbench/J

  3. 建立到叢集主節點的 SSH 通道。根據 Hive 版本不同,連線的連接埠也有所不同。下表提供的範例命令適用於 Linux ssh 使用者和 Windows 使用者的 PuTTY 命令

    Linux SSH 命令
    Hive 版本 Command
    0.13.1 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10000:localhost:10000 hadoop@master-public-dns-name
    0.11.0 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10004:localhost:10004 hadoop@master-public-dns-name
    0.8.1 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10003:localhost:10003 hadoop@master-public-dns-name
    0.7.1 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10002:localhost:10002 hadoop@master-public-dns-name
    0.7 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10001:localhost:10001 hadoop@master-public-dns-name
    0.5 ssh -o ServerAliveInterval=10 -i path-to-key-file -N -L 10000:localhost:10000 hadoop@master-public-dns-name
    Windows PuTTY 通道設定
    Hive 版本 通道設定
    0.13.1 Source port (來源連接埠):10000 Destination (目的地)master-public-dns-name (master-public-dns-name):10000
    0.11.0 Source port (來源連接埠):10004 Destination (目的地)master-public-dns-name (master-public-dns-name):10004
    0.8.1 Source port (來源連接埠):10003Destination (目的地)master-public-dns-name (master-public-dns-name):10003
  4. 將 JDBC 驅動程式新增到 SQL Workbench。

    1. Select Connection Profile (選取連線設定檔) 對話方塊中,選擇 Manage Drivers (管理驅動程式)

    2. 選擇 Create a new entry (建立新項目) (空白頁面) 圖示。

    3. Name (名稱)欄位中,輸入 Hive JDBC

    4. 針對 Library (程式庫),按一下 Select the JAR file(s) (選取 JAR 檔案) 圖示。

    5. 如下表所示,選取 JAR 檔案。

      Hive 驅動程式版本 要新增的 JAR 檔案
      0.13.1
      hive_metastore.jar hive_service.jar HiveJDBC3.jar libfb303-0.9.0.jar libthrift-0.9.0.jar log4j-1.2.14.jar ql.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.8.jar TCLIServiceClient.jar
      0.11.0
      hadoop-core-1.0.3.jar hive-exec-0.11.0.jar hive-jdbc-0.11.0.jar hive-metastore-0.11.0.jar hive-service-0.11.0.jar libfb303-0.9.0.jar commons-logging-1.0.4.jar slf4j-api-1.6.1.jar
      0.8.1
      hadoop-core-0.20.205.jar hive-exec-0.8.1.jar hive-jdbc-0.8.1.jar hive-metastore-0.8.1.jar hive-service-0.8.1.jar libfb303-0.7.0.jar libthrift-0.7.0.jar log4j-1.2.15.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar
      0.7.1
      hadoop-0.20-core.jar hive-exec-0.7.1.jar hive-jdbc-0.7.1.jar hive-metastore-0.7.1.jar hive-service-0.7.1.jar libfb303.jar commons-logging-1.0.4.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar
      0.7
      hadoop-0.20-core.jar hive-exec-0.7.0.jar hive-jdbc-0.7.0.jar hive-metastore-0.7.0.jar hive-service-0.7.0.jar libfb303.jar commons-logging-1.0.4.jar slf4j-api-1.5.6.jar slf4j-log4j12-1.5.6.jar
      0.5
      hadoop-0.20-core.jar hive-exec-0.5.0.jar hive-jdbc-0.5.0.jar hive-metastore-0.5.0.jar hive-service-0.5.0.jar libfb303.jar log4j-1.2.15.jar commons-logging-1.0.4.jar
    6. Please select one driver (請選擇一個驅動程式) 對話方塊中,根據以下表格選取驅動程式,然後按一下 OK (確認)

      Hive 版本 驅動程式類別名稱
      0.13.1
      com.amazon.hive.jdbc3.HS2Driver
      0.11.0
      org.apache.hadoop.hive.jdbc.HiveDriver.jar
      0.8.1
      org.apache.hadoop.hive.jdbc.HiveDriver.jar
      0.7.1
      org.apache.hadoop.hive.jdbc.HiveDriver.jar
      0.7
      org.apache.hadoop.hive.jdbc.HiveDriver.jar
      0.5
      org.apache.hadoop.hive.jdbc.HiveDriver.jar
  5. 當您返回 Select Connection Profile (選取連線設定檔) 對話方塊中,確認 Driver (驅動程式) 欄位設定為 Hive JDBC (Hive JDBC),並根據以下表格在 URL (URL) 欄位中提供 JDBC 連線字串。

    Hive 版本 JDBC 連線字串
    0.13.1 jdbc:hive2://localhost:10000/default
    0.11.0 jdbc:hive://localhost:10004/default
    0.8.1 jdbc:hive://localhost:10003/default

    如果您的叢集使用 AMI 版本 3.3.1 或更高版本,在選取連線設定檔對話方塊的使用者名稱欄位中輸入 hadoop

下一個主題:

HBase

上一個主題:

自訂組態
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。