美文网首页大数据运维及安全
如何在 Hue 3.10 中提交 Sqoop1 作业?

如何在 Hue 3.10 中提交 Sqoop1 作业?

作者: 大数据之心 | 来源:发表于2017-03-22 20:14 被阅读2662次

前言

本来认为这块是很简单的事儿,不想单独记录下来,恐怖的是花了2小时时间才调通(之前踩过的坑又踩了一遍),所以想下还是用简书记录下来罢。

为什么使用 Sqoop1 而不是 Sqoop2?

这个,很尴尬,Hue 3.10 + Sqoop2 + SSL 一直没有调通,Sqoop Transfer 界面一直报:Sqoop error: Could not get connectors,避免耽误进度,所以没有使用。

准备工作

有两块需要注意,一个是 Mysql Connector Jar 需要在 Oozie / Sqoop 的对应库目录下存在,一个是 Yarn 相关的内存资源配置,否则提交任务后会一直进行 heartbeat。

A. Mysql Connector Jar 部署

Step by Step 实现基于 Cloudera 5.8.2 的企业级安全大数据平台 - 基础部署 一文所述,我们在部署 Oozie 服务的时候已经涉及部分:

pssh -h list_agents "sudo mkdir -p /opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/hive/lib/ /opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/oozie/lib/ /var/lib/oozie" 

pssh -h list_agents "sudo cp /tmp/mysql-connector-java-5.1.34.jar /opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/oozie/lib/" 

pssh -h list_agents "sudo cp /tmp/mysql-connector-java-5.1.34.jar /var/lib/oozie"

我们还需要在另外几个目录进行部署:

pssh -h list_agents "sudo cp /tmp/mysql-connector-java-5.1.34.jar /home/opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/oozie/libtools"

pssh -h list_agents "sudo cp /tmp/mysql-connector-java-5.1.34.jar /var/lib/oozie/mysql-connector-java-5.1.34.jar"

pssh -h list_agents "sudo cp /tmp/mysql-connector-java-5.1.34.jar /home/opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/sqoop/lib"

pssh -h list_agents "sudo cp /tmp/mysql-connector-java-5.1.34.jar /var/lib/sqoop"

另外也需要在 HDFS 的 Oozie sharlib 目录下存在该 jar,其中 TIMESTAMP 是 Oozie 启动时的时间戳(Date 格式),一般类似 20170318104137

hadoop fs -put mysql-connector-java-5.1.34.jar /user/oozie/share/lib/lib_${TIMESTAMP}/sqoop/

最后我们需要重启 Sqoop 。

B. 合理配置 YARN 内存

如果对以下配置不进行合理配置(比如使用 Cloudera 的默认配置),会出现 issue: https://community.cloudera.com/t5/Batch-Processing-and-Workflow/Oozie-sqoop-action-in-CDH-5-2-Heart-beat-issue/td-p/22181,所以我们需要修改并且加大它们:

  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>4096</value>
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>4096</value>
  </property>

这块不需要手动修改配置文件,可以在 Cloudera Manager Web Console -> Cluster -> YARN -> Configuration 中设置。

修改完上述配置后,我们需要重启 YARN。

操作步骤

我们先抛开之前部署的 Kerberos + SSL 来说,不考虑这几个安全组件,怎么在基础裸集群内 run 起来 Sqoop1 作业。和从冰箱拿香蕉一样,开冰箱 -> 拿香蕉 -> 关冰箱,真的只要 3 步。

Step1. 建立测试用数据库

创建 MySQL 的步骤这里不阐述,各个网站随便搜,注意 CentOS 7.2 默认是 MariaDB,请参考类似文档。

Step2. 创建测试工作流

打开 Hue 的 Web 界面,进入 Workflows -> Editors -> Workflows ,点击 Create 按钮。从上方的标签中选择 Sqoop1 拖入 Drop your action here 的位置,在 Sqoop command 中输入:

import  --connect jdbc:mysql://${MYSQL_HOSTNAME}:${MYSQL_PORT}/${DN_NAME} --table ${TABLE_NAME} --target-dir hdfs://${NAMENODE_HOSTNAME}:${NAMENODE_PORT}/${PATH_TARGET} -m 1 --username ${USERNAME} --password ${PASSWORD}

命令中的变量请自行替换。完成后保存,点击 Save 按钮 。

Step3. 启动工作流

点击 Submit 按钮,提交作业。

注意: target-dir 必须本身不存在,否则会报错。

小结

本文介绍了如何在 Hue 3.10 中提交 Sqoop1 作业,以及如何避免常见问题。

相关文章

  • 如何在 Hue 3.10 中提交 Sqoop1 作业?

    前言 本来认为这块是很简单的事儿,不想单独记录下来,恐怖的是花了2小时时间才调通(之前踩过的坑又踩了一遍),所以想...

  • 关于超级行动课作业提交,你应该知道的都在这

    本文是关于乌龙明月老师的《超级行动课》作业提交,由两部分内容组成: 如何在简书投稿提交作业 超级行动课作业攻略 如...

  • Hue支持Hdp3.0 Oozie

    1、问题描述 当在HDP中配置了Oozie的SSO后,会发现在Hue中提交oozie workflow失败异常。在...

  • hue+ hue_order

    hue+ hue_order 可以通过hue_order(一个list)来控制图例中hue的顺序。如果不设置的话,...

  • Hue - oozie错误\坑\解决办法

    环境:CDH5.12.1 1.在Hue提交oozie运行shell脚本,报错! 错误: FileNotFoundE...

  • 安至VS阿姆卡尔赛前分析

    期望负 分布顺分布 如胜2.20 3.30 3.10 如平2.40 3.10 2.75 如负2.30 3.20 2...

  • Sqoop学习

    sqoop1和sqoop2的区别 sqoop1和sqoop2完全就是两个东西,互相不兼容,sqoop1版本从1.4...

  • 课后作业:第一章,动手画

    作业提交链接:第一次作业提交通道 请在简书app中完成你的作业制作并提交 用简书提交可获得助教的专业点评哦! 作业...

  • 如何在“飞贴”提交作业?

    笑来老师的写作课已经开始了,为了统一收集大家的作业,我们使用mixin内部开发的小工具——飞贴,进行收集和保存作业...

  • 全面探究Hive on Spark

    目标 在CDH集群的查询client中(包括webUI如HUE)使用Spark作为Hive-SQL的执行引擎。 调...

网友评论

    本文标题:如何在 Hue 3.10 中提交 Sqoop1 作业?

    本文链接:https://www.haomeiwen.com/subject/rgkanttx.html