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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 商城套餐搭配功能,速卖通商品搭配套餐功能已上线!设置速卖通搭配套餐仅需三步...

据雨果网获悉,速卖通商品搭配套餐功能已于 10 月 19 日上线。商品搭配套餐的主要功能及作用,主要是帮助速卖通的卖家,通过自行选择商品,设置不同商品间搭配优惠促销价格,提高商品推广内容的丰富性及专业性,…

二维码支付原理分析及安全性的探究

“二维码支付”安全么? 1 引言 随时支付宝和微信的线下不断推广,目前使用手机进行二维码支付已经逐渐成为一种时尚了。 但是大家有没有思考过:这种便捷的支付方式到底安不安全呢?今天我们就针对这个话题来进行一些探讨吧。 2 …

python创建一个包,如何从python包创建一个osx应用程序/ dmg?

我不知道正确的方法,但是这种手动方法是我用于简单脚本的方法,似乎已经适当地执行了。我会假设我所在的任何目录,我的程序的Python文件都在相对的src /目录中,我要执行的文件(具有正确的shebang和执行权限)被命名为main.py。$ mkd…

自定义类加载器

转载自:http://www.cnblogs.com/xrq730/p/4847337.html 为什么要自定义类加载器转载于:https://www.cnblogs.com/IvySue/p/7490656.html

guice spring_Spring vs Guice:重要的一个关键区别

guice spring根据弹簧对象的名称识别它们 不管使用XML还是Java配置都没有关系&#xff0c;Spring范围大致类似于Map <String&#xff0c;Object>结构。 这意味着您不能有两个名称相同的对象 。 为什么这是一件坏事&#xff1f; 如果您的大型应用程序具有许多Configuratio…

query row php,php – 如何在Codeigniter上使用$query- row获取类对象

我目前正在使用Codeigniter框架.在下面的代码中,我想获得一个Animal_model对象,而不是stdClass对象.class Animal_model extends CI_Model{var $idanimal;var $name;public static $table animals;function __construct() {parent::__construct();}function getone(self $anim…

vue2.0版本指令v-if与v-show的区别

v-if&#xff1a; 判断是否加载&#xff0c;可以减轻服务器的压力&#xff0c;在需要时加载。 v-show&#xff1a;调整css dispaly属性&#xff0c;可以使客户端操作更加流畅。 v-if示例&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF…

oracle 中增加行,Oracle中实现FORM表单插入、锁定、更新行、删除行的包

此包写在oracle数据库中&#xff0c;供Form表单调用&#xff1a;CREATE OR REPLACE PACKAGE BODY cux_main_pkg AS/*** PROCEDURE: insert_row()***/PROCEDURE insert_row(x_row_id IN OUT VARCHAR2,x_insp_header_id IN OUT NUMBER,p_org_id IN…

IE8兼容问题

setInterval 的用法如下&#xff1a; function func() { setInterval("alert()", 1000, this); // chrome 适用, 但不能传参数 setInterval("alert", 1000, this); // chrome、ie8 都不适用 setInterval(alert, 1000, this); // chrome 适用&…

CUBA平台正在开源

期待已久的时刻已经到来&#xff0c;现在我们很高兴地宣布&#xff0c; CUBA平台终于加入了自由软件社区&#xff01; 从现在开始&#xff0c;平台的所有运行时部分都是开源的&#xff0c;并根据Apache 2.0许可进行分发。 这意味着您将完全可以免费创建和分发应用程序&#xff…

oracle 9i 手工建库,简单记录Oracle 9i数据库手工建库过程

简单记录Oracle 9i数据库手工建库过程Oracle 9i手工建库By Oracle老菜今天客户要用oracle 9.2.0.5&#xff0c;aix 6.1已经不支持了&#xff0c;只好从别的数据库把软件拷贝过来重编译。但是建库只能用手工建库了。很久没有使用手工建库了&#xff0c;简单记录下建库过程1.设置…

LazyInitializationException的四个解决方案–第2部分

本文从本教程的第1部分继续。 有状态EJB使用PersistenceContextType.EXTENDED进行负载收集 该方法只能应用于与Full JEE环境兼容的应用程序&#xff1a;将EJB与PersistenceContextType.EXTENDED一起使用。 检查下面的代码&#xff0c;DAO的样子&#xff1a; package com.ejb…

SecureCRT在卸载时似乎会同时删除系统自带的Consolas字体

今天卸载了SecureCRT的安装板&#xff0c;改用绿色版&#xff0c;没想到删完之后再运行ItelliJ IDEA&#xff0c;所有的字包括行号都变成乱码了&#xff0c;而且这些乱码并不是很乱&#xff0c;英文大部分都是注音符号&#xff0c;中文字还能正常显示&#xff01;仔细查看各种编…

SpringBoot:使用JdbcTemplate

Spring使用JdbcTemplate在JDBC API的基础上提供了一个很好的抽象&#xff0c;并且还使用基于注释的方法提供了强大的事务管理功能。 首先&#xff0c;通过注册DataSource &#xff0c; TransactionManager和JdbcTemplate Bean&#xff0c;快速浏览一下我们通常如何使用Spring的…

混合高斯模型(Mixtures of Gaussians)和EM算法

混合高斯模型&#xff08;Mixtures of Gaussians&#xff09;和EM算法 这篇讨论使用期望最大化算法&#xff08;Expectation-Maximization&#xff09;来进行密度估计&#xff08;density estimation&#xff09;。 与k-means一样&#xff0c;给定的训练样本是&#xff0c;我们…

wordpress archive.php,wordpress分类目录模板(archive.php)制作

本课程视频是VIP会员课程&#xff0c;学习请进入VIP学习区。分类目录模板通常包括二种&#xff0c;一种是普通文章列表目录&#xff0c;一种是产品图片展示列表目录。文章列表目录是通过将分类下的文章标题通过无序列表的形式展示出来。如下图。产品图片列表目录是将产品的第一…

oracle exp 00006,Oracle 12.1新特性----使用RMAN从备份中实现recover table

Oracle 12.1新特性----使用RMAN从备份中实现recover table发布时间&#xff1a;2020-06-26 19:41:44来源&#xff1a;51CTO阅读&#xff1a;4750作者&#xff1a;hbxztc在Oracle12c版本之前&#xff0c;使用RMAN能恢复的级别为数据库级别和表空间级别&#xff0c;如果只有一张表…

spring social_Spring Social入门–第2部分

spring social几周前&#xff0c;我写了一篇文章&#xff0c;展示了我认为可以使用Spring Social编写的最简单的应用程序。 该应用程序读取并显示了Twitter用户的公共数据&#xff0c;并被编写为Spring Social和社交编码领域的介绍。 但是&#xff0c;让您的应用程序显示用户的…

【luogu 1024 一元三次方程求解】二分思想

题目出自luogu 1024 一元三次方程求解 描述&#xff1a; 有形如&#xff1a;ax3bx2cxd0 这样的一个一元三次方程。给出该方程中各项的系数(a&#xff0c;b&#xff0c;c&#xff0c;d 均为实数)&#xff0c;并约定该方程存在三个不同实根(根的范围在-100至100之间)&#xff0c;…

linux c统计进程网络读写,linux网络分析、性能分析、文本格式化、文件读写操作之利器(mtr、top、jq、sponge)...

好的工具能够让我们工作更加高效&#xff0c;结合工作中的情况&#xff0c;今天分享下linux下比较好用的几个工具。网络分析工具mtrmtr是网络链路检测判断问题非常好用的工具&#xff0c;集成了tracert和ping这两个命令的功能&#xff0c;动态的输出检测结果。mtr 默认发送icmp…