读写自定义格式的HDFS数据
使用MapReduce和CREATE EXTERNAL TABLE
命令来读写HDFS上的自定格式的数据。
要读取自定义格式的数据:
- 创作并且运行一个MapReduce任务,该任务创建格式为Greenplum数据库可访问的数据的一份拷贝。
- 使用
CREATE EXTERNAL TABLE
读取数据到Greenplum数据库中。
要写自定义格式的数据:
- 编写数据。
- 创作并且运行一个MapReduce程序来将格式转换成自定义格式并且将它放置在Hadoop分布式文件系统上。
见例 2 - 从Greenplum数据库写自定义格式的数据到HDFS。
MapReduce代码用Java编写。Greenplum提供了在MapReduce代码中使用的Java API。Javadoc在$GPHOME/docs
目录中可以找到。要查看Javadoc,展开文件gnet-1.1-javadoc.tar
并且打开index.html
。Javadoc记载了下列包:
com.emc.greenplum.gpdb.hadoop.io
com.emc.greenplum.gpdb.hadoop.mapred
com.emc.greenplum.gpdb.hadoop.mapreduce.lib.input
com.emc.greenplum.gpdb.hadoop.mapreduce.lib.output
HDFS cross-connect包包含了Java库,其中包含了包GPDBWritable
、GPDBInputFormat
和GPDBOutputFormat
。这些Java包可以在$GPHOME/lib/hadoop
中找到。用cross-connect包编译并运行MapReduce任务。例如,如果使用Greenplum HD 1.0的Hadoop发布,用gphd-1.0-gnet-1.0.0.1.jar
编译和运行MapReduce任务。
要让Java库对所有的Hadoop用户都可用,Hadoop集群的管理员应该把相应的gphdfs
连接器的jar文件放在$HADOOP_HOME/lib
目录中并且重启任务跟踪器。如果没有这样做,Hadoop用户仍能够使用gphdfs
连接器的jar文件,但是要用分布式缓存技术。
上级主题: 一次性HDFS协议安装