内容


通过 IBM Power Systems 上运行的 SAP HANA Spark Controller 集成 SAP HANA 与 Hortonworks Data Platform (HDP)

在 IBM Power 服务器上结合使用 SAP HANA 的内存处理能力和 Hadoop 的大数据处理能力

Comments

文中将介绍如何结合 SAP HANA 和 Hortonworks Data Platform (HDP) 的优势来处理数据。使用了一个名为 SAP HANA Spark Controller 的新软件组件来集成 HANA 与 HDP,使 HANA 能访问和处理存储在 HDP Hadoop 集群中的数据。整个处理环境在采用 Linux®且基于 IBM® POWER8® 处理器的服务器上运行。文中将详细介绍测试环境和两种部署模型。安装和配置说明可帮助您设置类似的环境。最后,使用 SAP HANA Studio 测试数据流,验证该环境工作正常。

SAP HANA Spark Controller

SAP HANA Spark Controller 支持 SAP HANA 对作为 Hadoop 分布式文件系统 (HDFS) 数据文件存储在 Hadoop 集群上的数据进行内存访问。Spark Controller 允许 SAP HANA 通过 SQL 接口访问 Hadoop 数据。Spark Controller 主要用于 Spark SQL 并连接到一个现有的 Hive Metastore。参考 SAP HANA Spark Controller 文档了解更多细节。

Spark Controller 执行以下功能:

  • 方便查询的执行,使 SAP HANA 能获取压缩列格式的数据
  • 支持特定于 SAP HANA 的查询优化和安全通信
  • 促进 SAP HANA 和执行器节点之间的数据传输

目标

验证和测试的关键目标包括:

  • 确认能够配置 SAP HANA 来连接到在 IBM Power Systems™上的 Red Hat Enterprise Linux (RHEL) 上运行的 HDP。
  • 确认 SAP HANA 能连接到 HDP 集群上的 Hive 表(包含在 Hadoop 中)并以虚表形式访问它们。
  • 使用 SAP HANA Studio 作为客户端,访问和可视化来自 HDP 的数据。
  • 使用基于纵向扩展和横向扩展 IBM POWER8 处理器的服务器来测试两种部署模型。

测试环境

对于测试环境,我们使用了以下软件版本和硬件配置。

  • SAP HANA 2.0
    • 一个基于 IBM POWER8 处理器的服务器上的虚拟机 [或逻辑分区 (LPAR)],包含 SUSE Linux Enterprise Server 12 (ppc64le) 版本 = 12,补丁级别 = 1
    • 16 个虚拟处理器、240 GB 内存、500 GB 磁盘空间
  • SAP HANA Spark Controller 2.1.0-1
    • 它安装在 HDP 集群上。
    • 它只能安装在多节点集群中的一个节点上。它应能访问 Hive Metastore 节点。
    • 对于本测试,它安装在运行 Apache Ambari、Node Manager 和 YARN Resource Manager 的节点上。
  • HDP 2.6
    • 使用 HDP 2.6 设置一个 4 节点集群。
    • 每个节点都是一个基于 IBM POWER8 处理器的服务器上采用 RHEL 7.2 的虚拟机(或 LPAR)
    • 每个节点都有 4 个虚拟处理器 (vCPU)、32 GB 内存、100 GB 磁盘空间
  • SAP HANA Studio(客户端)
    • V2.3.5
    • Microsoft®Windows® 7 PC

部署

测试环境使用了两种独立的部署模型。每个部署环境中都使用了相同的软件和配置;而且测试结果是相同的。

  • SAP HANA 和 HDP 软件都在自己的独立 IBM POWER8 横向扩展服务器上运行(如图 1 所示)。
  • SAP HANA 和 HDP 软件都在相同企业 POWER8 纵向扩展服务器上它们自己的独立虚拟机中运行(如图 2 所示)。

图 1 和图 2 描述了用于验证 IBM Power®服务器上运行的 SAP HANA 和 HDP 的两种部署和整体架构。在一个虚拟机 [或者 Power Systems 术语中的逻辑分区 (LPAR)] 上安装和配置 SAS HANA,该虚拟机在基于 IBM POWER8 处理器的服务器上运行 IBM SUSE Linux V12.1 操作系统。在另一个基于 IBM POWER8 处理器的服务器上的 4 个 RHEL 7.2 虚拟机上,安装并配置一个 4 节点 HDP 集群。

在运行 Ambari、Node Manager 和 YARN Resource Manager 的主节点上安装 SAP HANA Spark Controller。但是,Spark Controller 可以安装在一个多节点 HDP 集群中的任意一节点上。它应能访问该 Hive Metastore 节点。

请注意,SAP HANA 的安装和配置对 HDP 集群中的节点数量是透明的。

图 1. 使用 SAP HANA Spark Controller 与 Hortonworks HDP 集成的 SAP HANA 的横向扩展部署模型
图 2. 使用 SAP HANA Spark Controller 与 Hortonworks HDP 集成的 SAP HANA 的纵向扩展部署模型

安装和配置步骤

本节介绍 HDP 集群、SAP HANA Spark Controller 和 SAP HANA on Power 系统的安装和配置步骤。

安装 HDP 集群

您需要执行以下主要步骤来安装和配置 HDP 集群:

  • 按照 HDP on Power Systems 安装指南来安装和配置 HDP 集群。
  • 登录到 Ambari 服务器,并确保所有服务都在运行。
  • 通过 Ambari 监控和管理 HDP 集群、Hadoop 和相关服务。

设置测试数据和 Hive 表

执行以下步骤来准备测试数据。

  1. 下载 MovieLens 数据集(参见参考资料中的介绍)。

    按照操作说明,将 MovieLens 数据集数据复制到 HDFS 并设置 Hive 外部表。为它们使用相同的 hive 用户 ID。

  2. 下载驱动程序数据并提取到本地文件系统中。
  3. 将驱动程序数据复制到 HDFS。
    # su – hive
    # hadoop fs -mkdir -p /user/hive/dataset/drivers
    # hadoop fs -copyFromLocal /home/np/u0014213/Data/truck_event_text_partition.csv /user/hive/dataset/drivers
    # hadoop fs -copyFromLocal /home/np/u0014213/Data/drivers.csv /user/hive/dataset/drivers
    # hadoop fs -ls /user/hive/dataset/drivers
    Found 2 items
    -rw-r--r--   3 hive hdfs       2043 2017-05-21 06:30 /user/hive/dataset/drivers/drivers.csv
    -rw-r--r--   3 hive hdfs    2272077 2017-05-21 06:30 /user/hive/dataset/drivers/truck_event_text_partition.csv
  4. 为驱动程序数据创建 Hive 表。
    # su – hive
    # hive
    hive>create database trucks;
    hive> use trucks;
    
    hive> create table drivers
    (driverId int,
    name string,
    ssn bigint,
    location string,
    certified string,
    wageplan string)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ','
    STORED AS TEXTFILE
    TBLPROPERTIES("skip.header.line.count"="1");
    
    hive> create table truck_events
    (driverId int,
    truckId int,
    eventTime string,
    eventType string,
    longitude double,
    latitude double,
    eventKey string,
    correlationId bigint,
    driverName string,
    routeId int,
    routeName string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
    STORED AS TEXTFILE
    TBLPROPERTIES("skip.header.line.count"="1");
    
    hive> show tables;
    OK
    drivers
    truck_events
  5. 将数据从 HDFS 中的文件加载到这些表中。
    hive> LOAD DATA INPATH '/user/hive/dataset/drivers/truck_event_text_partition.csv' overwrite into table truck_events;
    hive> LOAD DATA INPATH '/user/hive/dataset/drivers/drivers.csv' overwrite into table drivers;
  6. 交叉检查这些表,确保在这些表上运行查询可获得这些数据。

安装并配置 SAP HANA

执行以下步骤来安装并配置 SAP HANA:

  1. 在基于 POWER8 处理器的服务器或虚拟机上安装并配置 SAP HANA。使用 Power Systems 规划指南
  2. 如果 SAP HANA 数据库还未运行,则启动它。使用以下命令停止和启动该服务器。
    saphana2:~> su - hndadm
    Password:
    hndadm@saphana2:/usr/sap/HND/HDB00> ps -ef | grep -i hdb
    hndadm     5724      1  0 Mar05 ?        00:00:06 /usr/sap/HND/HDB00/exe/sapstartsrv pf=/usr/sap/HND/SYS/profile/HND_HDB00_saphana2 -D -u hndadm
    hndadm     5848      1  0 Mar05 ?        00:00:00 sapstart pf=/usr/sap/HND/SYS/profile/HND_HDB00_saphana2
    hndadm     5893   5848  0 Mar05 ?        00:00:03 /usr/sap/HND/HDB00/saphana2/trace/hdb.sapHND_HDB00 -d -nw -f /usr/sap/HND/HDB00/saphana2/daemon.ini pf=/usr/sap/HND/SYS/profile/HND_HDB00_saphana2
    hndadm     5962   5893  0 Mar05 ?        00:22:49 hdbnameserver
    hndadm     6044   5893  0 Mar05 ?        00:09:04 hdbcompileserver
    hndadm     6046   5893  0 Mar05 ?        00:12:27 hdbpreprocessor
    hndadm     6078   5893  9 Mar05 ?        07:06:29 hdbindexserver
    hndadm     6080   5893  1 Mar05 ?        01:04:24 hdbxsengine
    hndadm     6705   5893  0 Mar05 ?        00:09:15 hdbwebdispatcher
    hndadm@saphana2:/usr/sap/HND/HDB00>HDB stop
    hndadm@saphana2:/usr/sap/HND/HDB00>HDB start
    hndadm@saphana2:/usr/sap/HND/HDB00> HDB proc
    USER        PID   PPID %CPU    VSZ   RSS COMMAND
    hndadm    39940  39882  0.1   8640  5952  \_ bash
    hndadm    39992  39940 16.6   6912  4736      \_ /bin/sh /usr/sap/HND/HDB00/HDB proc
    hndadm    40021  39992  0.0   6912  1088          \_ /bin/sh /usr/sap/HND/HDB00/HDB proc
    hndadm     7218      1  0.0   9344  4224 sapstart pf=/usr/sap/HND/SYS/profile/HND_HDB00_saphana2
    hndadm     7226   7218  0.0 316928 57984  \_ /usr/sap/HND/HDB00/saphana2/trace/hdb.sapHND_HDB00 -d -nw -f /usr/sap/HND/HDB00/saphana2/daemon.ini pf=/usr/sap/HND/SYS/profile/HND_HDB00_saphana2
    hndadm     7242   7226  0.5 8541440 5080576      \_ hdbnameserver
    hndadm     7322   7226  0.1 6521536 1096128      \_ hdbcompileserver
    hndadm     7324   7226  0.2 6490624 764672      \_ hdbpreprocessor
    hndadm     7356   7226  9.7 28182336 24624640      \_ hdbindexserver
    hndadm     7358   7226  1.6 7534784 2313280      \_ hdbxsengine
    hndadm     7972   7226  0.1 6732480 953600      \_ hdbwebdispatcher
    hndadm     5724      1  0.0 538816 35648 /usr/sap/HND/HDB00/exe/sapstartsrv pf=/usr/sap/HND/SYS/profile/HND_HDB00_saphana2 -D -u hndadm

安装并配置 SAP HANA Studio

HANA Studio 是一个集成开发环境 (IDE),在与 SAP HANA 交互时,它提供了许多功能。可以使用它来访问并可视化 SAP HANA 中的数据资产。将该软件安装在您的客户端系统上,比如 Windows PC。

安装并配置 SAP HANA Spark Controller

执行以下步骤来安装并配置 SAP HANA Spark Controller:

  1. SAP Software Download 下载 Spark Controller。
  2. 按照 Spark Controller 安装和配置指南进行操作。
  3. 在多节点 HDP 集群上,SAP HANA Spark Controller 只能安装在一个节点上。可以考虑将它安装在运行 Ambari、Name Node 和 YARN Resource Manager 的节点上。必须配置该节点来与 Hive Metastore 进行通信。
  4. 可以手动或使用 Ambari 安装并配置 Spark Controller。
  5. 启动 Spark Controller 并检查 Spark Controller 日志 (/var/log/hanaes/hana_controller.log),以理解并调试问题(如果有)。
  6. 检查 Spark Controller 是否在运行并在端口 7860(默认端口)上进行监听。
    [root@hdpnode1 conf]# ps -aef |grep -i ^hanaes
    hanaes    6064     1  0 Mar25 ?        02:37:24 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.ppc64le//bin/java -cp /usr/hdp/current/spark-client/lib/spark-assembly-1.6.2.2.5.0.0-1245-hadoop2.7.3.2.5.0.0-1245.jar::/etc/hive/conf:/usr/hdp/current/spark-client/lib/datanucleus-api-jdo-3.2.6.jar:/usr/hdp/current/spark-client/lib/datanucleus-core-3.2.10.jar:/usr/hdp/current/spark-client/lib/datanucleus-rdbms-3.2.9.jar:mysql-connector-java.jar:mysql-connector-java.jar:/usr/hdp/2.5.0.0-1245/tez/*:/usr/hdp/2.5.0.0-1245/tez/lib/*:/usr/hdp/2.5.0.0-1245/tez/conf:/usr/sap/spark/controller/bin/../conf:/usr/hdp/2.5.0.0-1245/hadoop/conf:/etc/hive/conf:../*:../lib/*:/usr/hdp/2.5.0.0-1245/hadoop/*:/usr/hdp/2.5.0.0-1245/hadoop/lib/*:/usr/hdp/2.5.0.0-1245/hadoop-hdfs/*:/usr/hdp/2.5.0.0-1245/hadoop-hdfs/lib/* -XX:PermSize=128m -XX:MaxPermSize=256m -Xmx8172m com.sap.hana.spark.network.Launcher
    [root@hdpnode1 conf]# netstat -anp | grep LISTEN |grep 7860
    tcp6       0      0 :::7860                 :::*LISTEN      6064/java

从 SAP HANA 数据库访问 HDP 上的数据用以执行分析

按照下面的步骤,从 SAP HANA 访问存储在 HDP 上的数据。

  1. 在 SAP HANA Studio 中添加 SAP HANA 2.0 服务器,,如图 3 所示。
    图 3. 为 SAP HANA Studio 配置一个测试 SAP HANA 服务器
  2. 从 HANA Studio,创建一个新的远程连接来连接到在 HDP 上运行的 Hive Server2,并访问 Hive 表。
    • 在 HANA Studio 窗口中,单击 Open SQL Console for HANA system。HANA SQL 控制台显示在右侧窗格上。
    • 输入以下 SQL 查询,创建一个从 SAP HANA 到 HDP 的新连接。根据您的环境更改名称和 IP 地址。

      CREATE REMOTE SOURCE "HDP Demo" ADAPTER "sparksql"     
      CONFIGURATION 'port=7860;ssl_mode=disabled;server=xx.xx.xx.xx'        
      WITH CREDENTIAL TYPE 'PASSWORD' USING 'user=hanaes;password=hanaes';

      创建了一个名为 HDP Demo 的新远程连接。

    • 单击该远程连接,探索 Hive 数据库和其中的表。
    图 4. 创建一个新的 HDP 远程连接来探索 Hive 数据库和表
  3. 在 HANA DB 下为 Hive 表创建一种新模式并创建虚拟表。在 SQL Console 下运行以下 SQL 查询。这将创建一种新模式(名为 hdp)。

    create SCHEMA hdp OWNED BY SYSTEM;
    图 5. 创建一种新模式
  4. 为您想访问并分析其数据的 Hive 表创建 HANA 虚拟表(在新创建的模式下)(如图 6、图 7 和图 8 所示)。
    图 6. 在 SAP HANA 上创建一个虚拟表
    图 7. 在 SAP HANA 上创建一个虚拟表
    图 8. 在 SAP HANA 上创建一个虚拟表
  5. 通过虚拟表访问数据并开始分析。可以使用 HANA Studio 上的 Visualization 选项卡执行各种各样的数据可视化。
    图 9. 通过 HANA 虚拟表访问 Hadoop 上的数据
    图 10. 通过 HANA 虚拟表在 Hive 表上执行查询
    图 11. 通过 HANA 虚拟表对来自 Hive 表的数据执行可视化
    图 12. 通过 HANA 虚拟表对来自 Hive 表的数据执行可视化
    图 13. 通过 HANA 虚拟表对来自 Hive 表的数据执行可视化

结束语

本文介绍了如何设置一个测试环境,SAP HANA 可在该环境中连接到完全在 IBM Power Systems 上运行的 HDP。SAP HANA 能通过 Hive 表连接到并访问存储在 HDFS 上的数据。我们使用了 SAP HANA Studio 作为客户端来访问并可视化来自 HDP 的数据。使用纵向扩展和横向扩展 POWER8 服务器提供了两种部署模型。

参考资料


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Linux
ArticleID=1050727
ArticleTitle=通过 IBM Power Systems 上运行的 SAP HANA Spark Controller 集成 SAP HANA 与 Hortonworks Data Platform (HDP)
publish-date=10092017