hq8501 发表于 2018-11-17 09:47:31

Apache HAWQ 创建使用SSD磁盘的表

HDFS启用SSD存储

1.配置HDFS的数据节点
  /hadoop/hdfs/data,/hadoop/hdfs/ssd

  在所有的数据节点上挂载ssd盘到路径/hadoop/hdfs/ssd下
  并保证/hadoop/hdfs/ssd路径的owner为hdfs:hadoop
  

drwxr-x---3 hdfs    hadoop   4096 Oct 17 19:10 /hadoop/hdfs/ssd  

  重启数据节点

2. 创建使用ssd的hdfs路径
  

hdfs dfs -mkdir /ssd  

3.设置/ssd的存储策略:ALL_SSD
  

hdfs storagepolicies -setStoragePolicy -path /ssd-policy ALL_SSD  

HAWQ创建表空间

1. 创建文件空间配置文件,在master节点上执行
  

$hawq filespace -o tpc_h_config  

filespace:fs_tpc_h  
fsreplica:3
  
dfs_url::mycluster/ssd/fs_tpc_h
  

2. 创建HDFS目录
  

$hdfs dfs -mkdir /ssd  
$hdfs dfs -chown gpadmin:gpadmin /ssd
  
$hdfs dfs -ls /
  

3.创建文件空间
  

$hawq filespace -c tpc_h_config  



4.创建表空间
  psql
  

create tablespace ts_tpc_h filespace fs_tpc_h;  



5. 查看当前所有表空间
  

SELECT spcname AS tblspc, fsname AS filespc,  fsedbid AS seg_dbid, fselocation AS datadir
  FROM   pg_tablespace pgts, pg_filespace pgfs,
  pg_filespace_entry pgfse
  WHEREpgts.spcfsoid=pgfse.fsefsoid
  AND pgfse.fsefsoid=pgfs.oid
  ORDER BY tblspc, seg_dbid;
  



HAWQ创建表

1. 建表
  

create table region(  
r_regionkey integer,
  
r_name char(25),
  
r_comment varchar(152),
  
r_extra char(1)
  
)with(appendonly=true,orientation=parquet,compresstype=snappy)
  tablespace ts_tpc_h
  
distributed by(r_regionkey) ;
  

2.查看表使用的表空间
  

select c.relname, d.dat2tablespace tablespace_id, d.oid database_id, c.relfilenode table_id  from pg_database d, pg_class c, pg_namespace n
  where c.relnamespace = n.oid
  and d.datname = current_database()
  and n.nspname = 'qbyps'
  and c.relname = 'p';
  

SELECT pgfs.oid fs_id,pgts.oid ts_id, spcname AS tblspc, fsname AS filespc,  fsedbid AS seg_dbid, fselocation AS datadir
  FROM   pg_tablespace pgts, pg_filespace pgfs,
  pg_filespace_entry pgfse
  WHEREpgts.spcfsoid=pgfse.fsefsoid
  AND pgfse.fsefsoid=pgfs.oid
  ORDER BY tblspc, seg_dbid;
  

维护
  HAWQ使用libhdfs3.so的API访问HDFS,目前不支持存储策略。因此,需要对写入后的数据进行维护。
  

hdfs mover -p /ssd/fs_tpc_h  

附录:
  存储策略命令
  列出所有存储策略
  

hdfs storagepolicies -listPolicies  

  设置存储策略
  

hdfs storagepolicies -setStoragePolicy -path-policy   

  例如
  

hdfs storagepolicies -setStoragePolicy -path /tmp -policy ALL_SSD  

  取消存储策略
  

hdfs storagepolicies -unsetStoragePolicy -path   

  之后该目录或者文件,以其上级的目录为准,如果是根目录,那么就是HOT
  获取存取策略
  

hdfs storagepolicies -getStoragePolicy -path

页: [1]
查看完整版本: Apache HAWQ 创建使用SSD磁盘的表