hcatalog源码的简单介绍
本文目录一览:
- 1、hadoop家族先学什么
- 2、hbase 源码 什么语言开发的
- 3、我想学习hive,请问安装hive之前,必须安装centos、hadoop、java这些吗?
- 4、如何修改Postgresql源码新增一张系统表
hadoop家族先学什么
优先学习hadoop,总体架构先了解清楚,有助于以后细节的具体学习。刘鹏的基本书写的很入门,推荐看一看。炼数成金的hadoop视频教程很不错,值得入门看看。然后就可以学习hadoop权威指南。hadoop源码分析,这个地方有张鑫写的《深入云计算:hadoop源代码分析》,和《hadoop源码分析》,之后就可以学习hive和pig,habse,zookeeper,这时候你如果有一定的数据库知识,会简单一点,如果不知道,那可以去了解一下数据库的知识。等你把这些学会了,新的项目,我想hadoop源码都会的人,应该不难了吧!欢迎采纳,交流。——支持开源!热爱学习!吼吼。
hbase 源码 什么语言开发的
是用java开发的,hbase包含两个核心服务,一个是HMaster,一个是HRegionServer,在hbase部署的服务器上调用jps命令能查看到这两个进程。
我想学习hive,请问安装hive之前,必须安装centos、hadoop、java这些吗?
安装需要
java 1.6,java 1.7或更高版本。
Hadoop 2.x或更高, 1.x. Hive 0.13 版本也支持 0.20.x, 0.23.x
Linux,mac,windows操作系统。以下内容适用于linux系统。
安装打包好的hive
需要先到apache下载已打包好的hive镜像,然后解压开该文件
$ tar -xzvf hive-x.y.z.tar.gz
设置hive环境变量
$ cd hive-x.y.z$ export HIVE_HOME={{pwd}}
设置hive运行路径
$ export PATH=$HIVE_HOME/bin:$PATH
编译Hive源码
下载hive源码
此处使用maven编译,需要下载安装maven。
以Hive 0.13版为例
编译hive 0.13源码基于hadoop 0.23或更高版本
$cdhive$mvncleaninstall-Phadoop-2,dist$cdpackaging/target/apache-hive-{version}-SNAPSHOT-bin/apache-hive-{version}-SNAPSHOT-bin$lsLICENSENOTICEREADME.txtRELEASE_NOTES.txtbin/(alltheshellscripts)lib/(requiredjarfiles)conf/(configurationfiles)examples/(sampleinputandqueryfiles)hcatalog/(hcataloginstallation)scripts/(upgradescriptsforhive-metastore)
编译hive 基于hadoop 0.20
$cdhive$antcleanpackage$cdbuild/dist#lsLICENSENOTICEREADME.txtRELEASE_NOTES.txtbin/(alltheshellscripts)lib/(requiredjarfiles)conf/(configurationfiles)examples/(sampleinputandqueryfiles)hcatalog/(hcataloginstallation)scripts/(upgradescriptsforhive-metastore)
运行hive
Hive运行依赖于hadoop,在运行hadoop之前必需先配置好hadoopHome。
export HADOOP_HOME=hadoop-install-dir
在hdfs上为hive创建\tmp目录和/user/hive/warehouse(akahive.metastore.warehouse.dir) 目录,然后你才可以运行hive。
在运行hive之前设置HiveHome。
$ export HIVE_HOME=hive-install-dir
在命令行窗口启动hive
$ $HIVE_HOME/bin/hive
若执行成功,将看到类似内容如图所示
如何修改Postgresql源码新增一张系统表
1) 在catalog hcatalog源码的makefile 中添加相应hcatalog源码的系统表头文件
./src/backend/catalog/Makefile:42: pg_foreign_table.h pg_partition_key.h \
2) 建表 -- 以pg_partition_key为例hcatalog源码:
2.1)在include的 catalog目录下添加这张表的定义
#ifndef PG_PARTITION_KEY_H
#define PG_PARTITION_KEY_H
#include 'catalog/genbki.h'
#define PartitionKeyRelationId 3180
CATALOG(pg_partition_key,3180) BKI_WITHOUT_OIDS
{
Oid pkrelid;
int16 pkattnum;
} FormData_pg_partition_key;
typedef FormData_pg_partition_key *Form_pg_partition_key;
#define Natts_pg_partition_key 2
#define Anum_pg_partition_key_pkrelid 1
#define Anum_pg_partition_key_pkattnum 2
#endif
2.2) 在catalog 的indexing.h 头文件中添加系统表的唯一性索引
DECLARE_UNIQUE_INDEX(pg_partition_key_relid_index, 3181, on pg_partition_key using btree(pkrelid oid_ops));
#define PartitionKeyRelidIndexId 3181 r3) Syscache -- 以 pg_partion_key为例hcatalog源码:
3.1)首先要在syscache.h中添加 SysCacheIdentifier
3.2) 要在syscache.c 的 cacheinfo[] 中添加这张表
cache的定义hcatalog源码:
struct cachedesc
{