sqoop/Hive/impala shell/Hadoop的初接触

sqoop
用于关系型数据库与Hadoop之间数据传输的工具
导入数据:将My SQL/Oracle数据导入到Hadoop中的HDFS、HBase、Hive中
导出数据:将Hadoop中的数据导出到My SQL

1.将部分查询到的My SQL数据导入到HDFS里

sqoop import \
--connect jdbc:mysql://地址/数据库名 \   #连接My SQL
--username root\
--password 000000\
--target dir- /目录/  #要导入到HDFS里的目录,如不指定,则默认存储在“/user/用户名/导入的表名” 目录下
--delete-target-dir \  #如指定目录已存在,则删除再创建
--num-mappers 1 \  #指定maptask的个数,并最终决定在hdfs里的存储文件个数
--fields-terminated-by "\t" \
--query 'select * from t1 where a<5 $CONDITIONS;'  #执行sql语句,注意where中必须要加$CONDITIONS,否则报异常

2.将HDFS的数据导出到My SQL

sqoop export \
--connect jdbc:mysql://url:3306/数据库名字 \  #输入My SQL的地址,连接到数据库
--username root \
--password 000000\
--table 表名\  #指出要导出到数据库的哪个表
--export-dir /地址路径 \  #指出HDFS要导出的地址路径
--fields-terminated-by "\t" \  #对HDFS文件要采用的分隔符
--num-mappers 1 \
--update-key 列名\  #对表中已存在的数据做更新
--update-mode allowinsert \  #允许将原来数据库中不存在的数据也导出到表中

Hive
用于将SQL语句转为MapReduce程序语言,实现Hadoop中数据分析的工具
3.从本地/HDFS导入数据到Hive

本地:load local data inpath '\本地数据文件目录\' overwrite into table 库名.表名
HDFS:load data inpath '\HDFS目录\' overwrite into table 库名.表名

impala shell
也是一种对HDFS、HBase的数据进行SQL查询的工具,与Hive的查询分析功能类似。但impala是基于内存计算,无需转换为MR,因此很快,可通过JBDC访问。是一种基于Hive的大数据实时查询引擎。
4.impala-shell -q

impala-shell -q "sql语句" -i 机器名;#不进入impala-shell 执行查询,-i指定服务器

Hadoop

hadoop fs -cat /路径/* >/本地路径/文件名  #将指定路径的文件拷贝到本地文件中,多次执行则覆盖
hive -e "sql"  #直接执行sql语句

kinit -kt /XXX/XXX/XXX.keytab #认证

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值