搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
办公|编程助手
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云-梭伦科技
»
专题
›
交流区
›
技术交流
›
Sqoop
›
方案探讨
›
shell脚本调用sqoop时连接mysql得connect jdbc等参数如 ...
0
2
1
分享
shell脚本调用sqoop时连接mysql得connect jdbc等参数如何通过变量传入控制
BB_BDATA
2018-4-24 10:33:54
发表于
方案探讨
[显示全部楼层]
阅读模式
关闭右栏
2
8056
#!bin/bash
#变量赋值
bin_name=`hadoop fs -cat /data/public/exec_info |sed -n '1p' `
hive_path=`hadoop fs -cat /data/public/exec_info |sed -n '2p' `
echo $hive_path
###账期
month_id=$1
echo $month_id
yyyymm=$1
yyyy=`echo ${yyyymm} | cut -c 1-4`;
mm=`echo ${yyyymm} | cut -c 5-6`;
yyyymm_len=`echo ${yyyymm} | wc -L`;
#账期判断
if [ "${yyyymm_len}" != "6" ] || [ ${mm} -lt 1 ] || [ ${mm} -gt 12 ]; then
echo '输入的日期[ ${yyyymm}] 不合法,请重新输入!'
exit 999
else
#mysql数据库
if [ ! $3 ]; then
echo "请指定Mysql数据库:sh $0 yyyymm hive_db_name mysql_db_name"
exit
else
mysql_db_name=$3
fi
#####清理数据
sqoop eval --connect jdbc:mysql://10.1.160.10:3306/$mysql_db_name --username root -password 123456 -query "alter table dw_out_broadcast_monthly_hz truncate partition P$month_id;"
##后面还有代码,不予展示
fi
如上得shell脚本中,连接mysql得--connect jdbc参数只能写死指定地址端口,如果将10.1.160.10地址传入参数在调用就报错,执行不过去,但是$mysql_db_name这个参数却能正常传入,同样得道理,username,password也不能参数化传入,只能写死,这样就使得代码可迁移性不高,如果换了集群或者账户密码,每次都要手动改脚本,不能通过变量传入,维护性很差
拜求各位大神指点,有没有过此类经验,请指教,请将代码附上
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
已有(2)人评论
电梯直达
正序浏览
BB_BDATA
发表于 2018-4-24 11:02:50
#!bin/bash
#变量赋值
host_ip=`hadoop fs -cat /data/public/exec_info |sed -n '6p' `
host_port=`hadoop fs -cat /data/public/exec_info |sed -n '7p' `
username=`hadoop fs -cat /data/public/exec_info |sed -n '8p' `
password=`hadoop fs -cat /data/public/exec_info |sed -n '9p' `
#mysql数据库
if [ ! $1 ]; then
echo "请指定Mysql数据库:sh $0 yyyymm hive_db_name mysql_db_name"
exit
else
mysql_db_name=$1
fi
#host_ip='10.1.70.149'
#host_port='3306'
echo $host_ip
echo $host_port
#####清理数据
sqoop eval --connect jdbc:mysql://$host_ip:$host_port/$mysql_db_name --username $username -password $password -query "select * from avm_bmm_ledger_character;"
解决了,谢谢
回复
使用道具
举报
显身卡
BB_BDATA
发表于 2018-4-24 11:18:38
本帖最后由 BB_BDATA 于 2018-4-24 11:19 编辑
[ygjheq@BJ-DBL-ZYC1Q-CSDMZ-YGJHEQ-SV001 gml]$ hadoop fs -cat /data/public/exec_info
/home/ygjheq/hive/bin/hive
/user/hive2/warehouse
/home/ygjheq/agate_dm
/usr/bin/mysql -h 10.140.1.3 -u root -proot123
/usr/bin/mysql -h 10.140.1.3 -u root -proot123
10.1.160.10
3306
root
123456
[ygjheq@BJ-DBL-ZYC1Q-CSDMZ-YGJHEQ-SV001 gml]$
6-9行用于配置sqoop得参数配置
回复
使用道具
举报
显身卡
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
最佳新人
积极上进,爱好学习
发表新帖
BB_BDATA
中级会员
关注
11
主题
68
帖子
16
粉丝
TA的主题
HDFS数据导入HIVE方案探讨
2018-11-1
java程序访问hive报错
2018-10-19
hive能否动态解析json
2018-10-18
Linux读取键值对类型文件,分组求每个key的sum(value)
2018-7-9
hive 下实现连续日期输出
2018-7-4
24小时热文
kafka面试题精选
Nebula Flink Connector 在实时 ETL 的实践
Apache Doris 用户案例集
国家电网公司主数据管理系统技术规范
企业的主数据建设方法论与实践
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈