《Hadoop实战手册》一1.10 在Greenplum外部表中使用HDFS

    xiaoxiao2024-01-01  179

    本节书摘来异步社区《Hadoop实战手册》一书中的第1章,第1.10节,作者: 【美】Jonathan R. Owens , Jon Lentz , Brian Femiano 译者: 傅杰 , 赵磊 , 卢学裕 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

    1.10 在Greenplum外部表中使用HDFS

    Greenplum是一个并行数据库,数据的存储与查询基于一个或多个PostgreSQL实例。它补充了Hadoop,提供对大数据的实时或准实时访问,它还支持使用HDFS文件作为外部表。外部表是一个处理Greenplum集群之外数据很好的解决方案。由于外部表访问首先要消耗网络带宽,所以与Greenplum集群内的数据相比,它应该存储那些访问相对不频繁的数据。本节将介绍如何创建只读的外部表和可读写的外部表。

    准备工作在本节假定你使用的Hadoop版本为CDH3。

    运行一个Greenplum实例,确认它能够访问Hadoop集群。相关信息可以查看http://www.greenplum.com/products/greenplum-database。

    按照下面的方式配置Greenplum。

    gp_hadoop_target_version设置为cdh3u2。gp_hadoop_home设置为$HADOOP_HOME的完整路径。

    在Greenplum集群的每个节点上都需要安装1.6以上(包含1.6)版本的Java。

    操作步骤创建HDFS上weblogs文件的一个外部表:

    CREATE EXTERNAL TABLE weblogs( md5 text, url text, request_date date, request_time time, ip inet ) LOCATION ('gphdfs://<NAMENODE_HOST>:<NAMENODE_PORT>/data/weblogs/ weblog_ entries.txt') FORMAT 'TEXT' (DELIMITER '\t');

    工作原理Greenplum本地支持并行地将HDFS上的数据加载到数据库中。当一个查询需要访问表weblog_entries.txt时,该文件会被加载为Greenplum的一个临时表,然后执行对该临时表的查询。等到查询结束以后再将该表丢弃。

    更多参考Greenplum也支持对外部表的写操作。这需要在创建表的时候指定写关键字:

    CREATE WRITABLE EXTERNAL TABLE weblogs( md5 text, url text, request_date date, request_time time, ip inet ) LOCATION ('gphdfs://<NAMENODE_HOST>:<NAMENODE_PORT>/data/weblogs/ weblog_ entries.txt') FORMAT 'TEXT' (DELIMITER '\t');

    更多的信息可以查看Greenplum管理员手册,见http://media.gpadmin.me/wp-content/uploads/2011/05/GP-4100-AdminGuide.pdf。

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)