Sqoop是用于Hadoop的流行数据传输工具。 Sqoop允许从结构化数据存储(如关系数据库,企业数据仓库和NoSQL数据存储)轻松导入和导出数据。 Sqoop还与Hive,HBase和Oozie等基于Hadoop的系统集成。

在此博客文章中,我将介绍可用于在Sqoop中管理密码的各种选项。 Sqoop是一个非常稳定且易于使用的工具,用于将数据传入和传出Hadoop。 但是,如果要自动执行导入/导出过程,则密码必须在计划文本中,这可能会被滥用。 以下是应对这一挑战的一些解决方案。

1.在文件系统中使用受保护的文件

为产品和开发创建单独的文件(将单独的帐户用于产品和开发总是一个好习惯)。

根据用户设置文件权限

ProdFile,只有Prod用户可以访问

-rw-------  1 vgunnuProd  staff   1.1M Oct  6  2014 password.txt

开发文件,授予组读取权限–在团队成员之间共享文件

-rw-r-----  1 vgunnuDev  staff   1.1M Oct  6  2014 password.txtsqoop import --connect jdbc:mysql://mapr.com/sqoop \--username sqoop \--password-file /mapr/democluster/opt/passwords/prodpass.txt --table vgunnu

2.从数据库中读取密码

维护Dev和PROD数据库表,并利用MySQL授权权限锁定PROD密码表,以便允许从Prod边缘节点访问某些用户。

# Read password from database
# Select Password from mapr.Prod where applicationdb='mapr.vgunnu'
echo -n $Password > /mapr/democluster/opt/passwords/prodpass.txt
sqoop import --connect jdbc:mysql://mapr.com/sqoop \--username vgunnu \--password-file /mapr/democluster/opt/passwords/prodpass.txt --table vgunnu
rm /mapr/democluster/opt/passwords/prodpass.txt

3.使用数据库和Expect脚本

在上面的选项中,我们可以使用linux spawn and Expect脚本来代替将密码保存到文件中。

#!/bin/bash
# Read password from database
# Select Password from mapr.Prod where applicationdb='mapr.vgunnu'
# Read password to variable pwd
/usr/bin/expect «EOFspawn sqoop import --connect jdbc:mysql://mapr.com/sqoop --username vgunnu -P --table vgunnuexpect "Enter password:"send "$pwd\r\n"set timeout -1  # Wait for Sqoop to finishexpect "~~~~~~~~~~~~"wait
EOF

4.使用Hadoop CredentialProvider API

在Hadoop 2.6中,引入了一项基本功能–凭据API。 Hadoop中的CredentialProvider API允许分离应用程序以及它们如何存储所需的密码/秘密。 使用Sqoop 1.4.5时,Sqoop支持credentail API密钥库。

生成加密的credentail密钥库:

[mapr@maprdemo ~]$ hadoop credential create msql.vgunnudb -provider jceks://maprfs/user/mapr/mysql.password.m.jceks
Enter password:
Enter password again:
msql.vgunnudb has been successfully created.
org.apache.hadoop.security.alias.JavaKeyStoreProvider has been updated.[mapr@maprdemo ~]$ hadoop credential list -provider jceks://maprfs/user/mapr/mysql.password.m.jceks
Listing aliases for CredentialProvider: jceks://maprfs/user/mapr/mysql.password.m.jceks
msql.vgunnudbsqoop import -Dhadoop.security.credential.provider.path=jceks://maprfs/user/mapr/mysql.password.m.jceks \--connect jdbc:mysql://mapr.com/sqoop \--username vgunnu \--password-file /mapr/democluster/opt/passwords/prodpass.txt --table vgunnu \-–password-alias msql.vgunnudb

在此博客文章中,您了解了可用于在Sqoop中管理密码的不同选项。 如果您还有其他问题,请在下面的评论部分中提问。

翻译自: https://www.javacodegeeks.com/2016/03/key-tips-managing-passwords-sqoop.html

在Sqoop中管理密码的关键提示相关推荐

  1. sqoop sqoop2_在Sqoop中管理密码的关键提示

    sqoop sqoop2 Sqoop是流行的Hadoop数据传输工具. Sqoop允许从结构化数据存储(如关系数据库,企业数据仓库和NoSQL数据存储)轻松导入和导出数据. Sqoop还与Hive,H ...

  2. payara 创建 集群_在Payara Server和GlassFish中配置密码

    payara 创建 集群 回答Stackoverflow问题可以为我发现我最喜欢的开源工具的正式文档中的空白提供很好的反馈. 我在这里回答的问题之一是如何在docker容器中更改Payara Serv ...

  3. 在Payara Server和GlassFish中配置密码

    回答Stackoverflow问题可以为我发现我最喜欢的开源工具的正式文档中的空白提供很好的反馈. 我在这里回答的问题之一是如何在docker容器中更改Payara Server主密码 . 显然,在标 ...

  4. chrome 保存密码_如何在Chrome中管理保存的密码

    chrome 保存密码 Google Chrome comes with a handy password manager already built in. You can have your br ...

  5. 需求管理是CMM可重复级中的6个关键过程域之一,其主要目标是__________。A.客观地验证需求管理活动...

    需求管理是CMM可重复级中的6个关键过程域之一,其主要目标是__________.A.客观地验证需求管理活动 需求管理是CMM可重复级中的6个关键过程域之一,其主要目标是__________.  A. ...

  6. Ubuntu设置中修改密码,提示长度太短或太简单【终极解决办法】

    Ubuntu设置中修改密码,提示长度太短或太简单[终极解决办法] 需要root权限才能解决: 方法1: (1)sudo su 切换到root用户 (2)再 passwd <用户名> 方法2 ...

  7. SAP中“管理/寄售移动被无值记账”提示问题分析处理实例

    收到物流用户的问题咨询并附上截图如下,在事务MB11中做一个寄售物料移动操作,出现提示"管理/寄售移动被无值记账",并寻求解决方法. 首先,这个物料移动是寄售状态转非限制状态,相当 ...

  8. Hacker(22)----解除系统中的密码

    Win7系统中,用户可以设置BIOS密码以及系统登录密码,这些密码都有各自的用途.但对黑客而言,完全可以采用不同的方式绕过这些密码.下面介绍黑客如如何接触这些密码. 一.解除BIOS密码 BIOS密码 ...

  9. 在组织中管理 Windows Hello 企业版

    在组织中管理 Windows Hello 企业版 https://docs.microsoft.com/zh-cn/windows/security/identity-protection/hello ...

最新文章

  1. python两台电脑文件传输_python实现简单socket程序在两台电脑之间传输消息的方法...
  2. ML.NET 示例:将ML.NET模型导出到ONNX
  3. 经典题:poj2104-区间第k小 整体二分学习
  4. 播客51:妈妈可以编码的创始人埃里卡·彼得森(Erica Peterson)
  5. html表头的标签,HTML 表头单元格标签
  6. 物联网安全研究领域,最常见的几大安全漏洞
  7. 罗永浩今晚带货iPhone 12:价格将有惊喜!
  8. 匿名类型(C# 编程指南)
  9. Vegas中的色彩校正怎么用?
  10. Office Tip(1) : Split the Screen
  11. [GRE] 填空机经 Section56-60
  12. masm5安装教程_MASM5.0汇编器使用
  13. 淘宝618超级喵运会怎么玩 如何获取喵币?
  14. Express 项目启动
  15. 三种方法求解Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1,当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
  16. 美国犹他大学计算机专业怎么样,2018美国计算机工程专业排名一览表
  17. c语言编程实现两个分数相加,C语言分数相加
  18. android的版本电视怎么投屏,三星电视怎么投屏 三星电视投屏设置方法
  19. torchtext.vocab
  20. 交互设计师怎样做网页产品的“原型设计”?

热门文章

  1. 从开发者角度谈Mysql主键
  2. Maven精选系列--三种仓库详解
  3. Shell入门(一)之简介
  4. MyBatis中的注解
  5. Ubuntu 免密登录
  6. php oracle 无查询结果,php - Oracle Insert查询不起作用,也不会抛出任何错误 - 堆栈内存溢出...
  7. python请输入你的名字_实现《你的名字》同款滤镜,python+opencv
  8. Spring IOC 容器启动、Bean生命周期详解
  9. JSP引入CSS文件无法生效的问题
  10. sqlserver还原差异备份