Hive的数据导入

   在Hive中,使用以下方式进行数据的导入

1、使用Hive命令导入数据

load data [local] inpath 'filepath' 
overwrite into table tablename [partition(xx='yy')];
   当有local时,说明是从操作系统中进行文件的读取,否则是从HDFS中读取;overwrite代表是否覆盖原有记录。

2、使用Sqoop进行操作

  下载Sqoop,解压,因为Sqoop和Hadoop相关,所以进行如下设置:

 export HADOOP_COMMON_HOME=/opt/modules/hadoop-2.2.0
 export HADOOP_MAPRED_HOME=/opt/modules/hadoop-2.2.0
   首先把mysql的驱动jar包上传到Sqoop的lib目录下。

a:使用Sqoop导入Mysql数据到HDFS中

 ./sqoop import  --connect jdbc:mysql://192.168.6.1/test --username root --password root --table user --columns 'username,password'  -m 1 --target-dir '/user/emp'
b:使用Sqoop导入Mysql数据到Hive中,使用默认的表名,和源表名相同

./sqoop import --hive-import --connect jdbc:mysql://192.168.6.1/test --username root --password root --table user -m 1 --columns 'username,password' 
指定了导入的列,否则全列导入。

c:使用Sqoop导入Mysql数据到Hive中,指定表名

./sqoop import --hive-import --connect jdbc:mysql://192.168.6.1/test --username root --password root --table user -m 1 --columns 'username,password'  --hive-table user2
d:使用Sqoop导入Mysql数据到Hive中,指定表名,使用where条件

./sqoop import --hive-import --connect jdbc:mysql://192.168.6.1/test --username root --password root --table user -m 1 --columns 'username,password'  --hive-table user2 --where 'username=yy'
e:使用Sqoop导入mysql数据到Hive中,并使用查询语句
   源表名不需要指定,因为增加了查询语句

./sqoop import --hive-import --connect jdbc:mysql://192.168.6.1/test --username root --password root  -m 1 --query 'select * from user where id<10 and $CONDITIONS' --target-dir '/user/user2' --hive-table user2
 f:使用Sqoop将Hive中数据导入到Mysql中

首先表user_dest在mysql中创建好:

./sqoop import --hive-import --connect jdbc:mysql://192.168.6.1/test --username root --password root -m 1 --table user_dest --export-dir 'HDFS中文件路径'


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值