反馈已提交

网络繁忙

配置Hadoop Hive(HDFS)数据源

  • 文档创建者:Roxy
  • 历史版本:13
  • 最近更新:Wendy123456 于 2023-09-04
  • 1. 概述

    1.1 版本

    FineDataLink 版本
    功能说明
    4.0.11支持使用Hadoop Hive (HDFS)写入数据

    1.2 应用场景

    FineDataLink 支持读取Hadoop Hive 中的数据进行数据处理,但是直接通过Hive、Impala的接口写入数据性能不佳,因此 FDL 提供了Hive(HDFS) 写入数据。

    本文将介绍如何连接 Hadoop Hive (HDFS)数据源。

    注:本文档适用于 4.0.29 之前版本,4.0.29 及之后版本,请查看 配置Hadoop Hive数据源

    2. 使用限制

    由于Hive底层存储(HDFS)的限制,数据同步、数据转换-DB表输出中仅支持追加写入数据,不支持更新数据。

    3. 准备工作

    3.1 版本和驱动

    下载驱动,并将其上传至 FineDataLink,如何上传可参见:驱动管理

    注:在上传驱动包时,需要解压下面的「日志jar」文件,和驱动一起上传至 FineDataLink。

    支持的数据库版本驱动包下载 日志jar下载
      hive_1.1

    Hive1.1.zip

    日志jar.rar

    Hadoop_Hive_1.2;hive2.3;
      hive2.1.2;hive2.1.1

    Hadoop Hive.rar 

    3.2 收集连接信息

    在连接数据库之前,请收集以下信息:

    • 数据库所在服务器的 IP 地址和端口号;

    • 数据库的名称;

    • 若是用户名密码认证,需要收集用户名和密码;若是 Kerberos 认证,需要收集客户端 principal 和 keytab 密钥路径;

    • HDFS 文件系统地址(IP 地址和端口号)注:同时需要保证 FineDataLink 所在服务器能访问 HDFS 文件系统端口,例如 HDFS 文件系统默认端口为 8020,且服务器开启了防火墙,则需要参考下文开放 8020 端口。

    Windows 系统开放端口步骤请参见:Windows服务器设置出入站规则 

    Linux 系统开放端口步骤请参见:Linux防火墙使用及配置

    4. 具体连接步骤

    1)以管理员身份登录 FineDataLink ,点击「管理系统>数据连接>数据连接管理」,点击「新建数据连接」如下图所示:

    注:如果非管理员用户想要配置数据连接,需要管理员给其分配管理系统下数据连接节点的权限,具体操作请查看 数据连接管理权限

    2)找到 Hadoop Hive 数据库,如下图所示:

    3)切换驱动为「自定义」选择 2.1 节上传的驱动,并输入 2.2 节收集的连接信息,如下图所示:

    Kerberos 认证方式详情可参见:数据连接 kerberos 认证

    使用 Kerberos 认证需要注意以下事项:

    • 连接前请检查 /etc/hosts 中的机器名对应 IP 是否为局域网 IP;

    • 检查 /etc/hostname 中机器名设置和 /etc/hosts 中是否配置一致;

    • 检查 FineDataLink 所在机器 hosts 配置的 IP+ 机器名是否正确;

    • 本地连接时需要配置 /etc/hosts 文件,添加远端映射:IP+机器名,例如: 192.168.5.206  centos-phoenix 。

    4)点击「测试连接」,若连接成功则点击「保存」,如下图所示:

    5. 使用数据源

    可以在数据同步数据转换中使用数据源进行数据读取和写入。

    注:当数据去向为Hive(HDFS),自动建表时,如未特殊配置则中文的字段会变成问号。

    6. 注意事项

    6.1 问题描述

    数据连接报错 org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x。

    6.2 解决方案

    6.2.1 解决方案1

    在FDL服务端的catalina.sh 里面指定新增变量声明:export HADOOP_USER_NAME = hdfs,指定连接 HDFS 的用户为 hdfs;

    注:hdfs 可根据实际用户名修改。

     

    6.2.2 解决方案2(不推荐)

    在不指定用户的情况下,连接HDFS时默认使用root账号,需要关闭HDFS用户验证,可能会带来安全隐患。因为该方案可让所有用户访问 hdfs,不用进入hdfs用户再执行命令。

    注:CDH中没有这个配置,需要手动加进去。

    步骤如下:

    1)找到 hdfs-site.xml 的 HDFS 服务高级配置代码段(安全阀);
    2)dfs.permissions.enabled 的值设置为 false,保存更改,重启 hdfs 。



    附件列表


    主题: 数据开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持