暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Vertica Integrating with (Kerberized) Hadoop

原创 simonchiang 2021-12-15
1816

Vertica Integrating with (Kerberized) Hadoop

一、Vertica 与 Hadoop

Hadoop 与 Vertica 一样,使用节点集群进行分布式处理。
Vertica 与 Hadoop 集成主要使用 HDFS,即 Hadoop 分布式文件系统。

可以通过多种方式将 Vertica 与 HDFS 结合使用:

1、使用 HCATALOG 直接访问 Hive 数据库进行数据查询

image.png

2、使用外部表访问 HDFS 数据

通过在数据库创建外部表直接访问 hdfs 的数据,实现对数据的分层管理,冷数据存放在 hdfs,热数据存放在数据库,释放数据库存储空间,降低存储压力。
image.png

3、将 HDFS 作为 Vertica 数据库的 Storage Location

HDFS 可以作为 Vertica 的一个存储路径,由数据库进行管理。
image.png

4、以列存储格式导出到 HDFS

将 Vertica 数据库中的数据以 Hadoop 列格式(Parquet、ORC)导出到 HDFS 与其他 Hadoop 组件共享。
image.png

5、HDFS 作为 EON 模式的共享存储(Communal Storage)

image.png

二、Vertica 集成带 Kerberos 认证的 Hadoop 集群步骤

0 环境描述

Vertica 集群:v001,v002,v003
Kerberos Server:k001
hdfs namenode:h001
hdfs data node:h002,h003,h004

1 Vertica 集群操作系统配置

分别修改 Vertica 集群3台服务器的/etc/hosts文件

vi /etc/hosts 192.168.1.101 v001.hadoop.com v001 192.168.1.102 v002.hadoop.com v002 192.168.1.103 v003.hadoop.com v003 192.168.1.111 k001 192.168.1.121 h001 192.168.1.122 h002 192.168.1.123 h003 192.168.1.124 h004

2 生成票据

登录到KDC服务器,使用kadmin登录票据管理添加、导出票据

# 添加票据 addprinc -randkey -requires_preauth +allow_forwardable vertica/v001.hadoop.com@HADOOP.COM addprinc -randkey -requires_preauth +allow_forwardable vertica/v002.hadoop.com@HADOOP.COM addprinc -randkey -requires_preauth +allow_forwardable vertica/v003.hadoop.com@HADOOP.COM addprinc -randkey -requires_preauth +allow_forwardable host/v001.hadoop.com@HADOOP.COM addprinc -randkey -requires_preauth +allow_forwardable host/v002.hadoop.com@HADOOP.COM addprinc -randkey -requires_preauth +allow_forwardable host/v003.hadoop.com@HADOOP.COM addprinc -randkey -requires_preauth +allow_forwardable host/v001@HADOOP.COM addprinc -randkey -requires_preauth +allow_forwardable host/v002@HADOOP.COM addprinc -randkey -requires_preauth +allow_forwardable host/v003@HADOOP.COM addprinc -randkey -requires_preauth +allow_forwardable dbadmin@HADOOP.COM # 导出票据 xst -k /tmp/vertica.keytab vertica/v001.hadoop.com@HADOOP.COM vertica/v002.hadoop.com@HADOOP.COM vertica/v003.hadoop.com@HADOOP.COM host/v001.hadoop.com host/v002.hadoop.com host/v003.hadoop.com host/v001@HADOOP.COM host/v002@HADOOP.COM host/v003@HADOOP.COM dbadmin@HADOOP.COM

将上面生成的票据拷贝到Vertica集群3个节点的/home/dbadmin/目录下,且票据文件的权限为600,属主为dbadmin

[root@V001 ~]# cls_run ls -l /home/dbadmin/vertica.keytab -rw------- 1 dbadmin verticadba 5568 Feb 27 18:53 /home/dbadmin/vertica.keytab -rw------- 1 dbadmin verticadba 5568 Feb 27 18:53 /home/dbadmin/vertica.keytab -rw------- 1 dbadmin verticadba 5568 Feb 27 18:53 /home/dbadmin/vertica.keytab

3 数据库配置

1、将Hadoop配置文件hdfs-site.xml和core-site.xml文件存放到Vertica集群所有节点相同路径(eg:/opt/hadoopclient/),并保证dbadmin用户对该路径有读写权限,然后设置数据库HadoopConfDir参数:

ALTER DATABASE mydb SET HadoopConfDir = '/opt/hadoopclient/';

2、设置数据库参数KerberosKeyTabFile指向票据文件路径:

ALTER DATABASE mydb SET KerberosKeytabFile = '/home/dbadmin/vertica.keytab';

所有节点的票据文件都存放在同一路径(例如/home/dbadmin/vertica.keytab),并且dbadmin用户有权限访问该路径。

3、设置数据库参数KerberosServiceName:

ALTER DATABASE mydb SET KerberosServiceName = 'vertica';

4、设置域名,与Hadoop相同:

ALTER DATABASE mydb SET KerberosRealm = 'HADOOP.COM'

5、设置数据库参数KerberosHostname

select set_config_parameter('KerberosHostname', 'v001.hadoop.com');

6、重启数据库,使参数生效:

[dbadmin@szxtsp104 ~]$ admintools -t stop_db -d <dbname> -p<dbpassword> -F [dbadmin@szxtsp104 ~]$ admintools -t start_db -d <dbname> -p<dbpassword> -F

4 验证

dbadmin=> select kerberos_config_check(); -------------------------------------------------------------------- ok: kinit exists ok: klist exists ok: krb5 exists at [/etc/krb5.conf] ok: Vertica Keytab file is set to [/home/dbadmin/vertica.keytab] ok: Vertica Keytab file exists at [/home/dbadmin/vertica.keytab] Kerberos configuration parameters set in the database KerberosServiceName : [vertica] KerberosHostname : [v001.hadoop.com] KerberosRealm : [HADOOP.COM] KerberosKeytabFile : [/home/dbadmin/vertica.keytab] Vertica Principal: [vertica/v001.hadoop.com@HADOOP.COM] ok: Can read Vertica keys ok: Can get tickets for Vertica principal ok: Vertica can kinit (1 row)
vsql -h v001 -U dbadmin <<- EOF copy public.test from 'webhdfs://h001:25002/user/hive/warehouse/cmdata.db/c04_org_info/stat_dt=20161204/000000_0' orc direct; EOF

二维码.png

最后修改时间:2024-08-29 11:15:21
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论