- 使用load语句
load data [local] inpath 'filepath' [overwrite] ------(写local是为了表示从操作系统导入,不写则表示从HDFS导入)
-----(写overwrite是表示是否覆盖原表)
into table tablename [partition (partcoll=vall,partcol2=val2 ...)] ----分区
- 使用sqoop实现数据导入
sqoop是apache下开源框架,专门做数据导入 ;
sqoop的安装需要下载tar包,并解压,设置两个环境变量,一个是HADOOP_COMMON_HOME,一个是HADOOP_MAPRED_HOME;
- 使用sqoop导入到oracle数据到HDFS中
./sqoop import --connect jdbc:oracle:thin:@IP:port:orcl --username scott --password
tiger --table emp --columns 'empno,ename,job,sal,deptno' -m 1 --target-dir '/sqoop/emp'
----- -m 1 表明mapreduce的进程数是一个
----初次导入时可以会报驱动找不到,需要把对应数据库驱动上传到lib目录下
- 使用sqoop导入oracle数据到hive中
./sqoop import --hive-import --connect jdbc:oracle:thin:@IP:port:orcl --username scott --password
tiger --table emp -m 1 --columns 'empno,ename,job,sal,deptno'
- 使用sqoop导入oracle数据到hive中,并指定表名
./sqoop import --hive-import --connect jdbc:oracle:thin:@IP:port:orcl --username scott --password
tiger --table emp -m 1 --columns 'empno,ename,job,sal,deptno' --hive-table emp1
- 使用sqoop导入oracle数据到hive中,并使用where条件
./sqoop import --hive-import --connect jdbc:oracle:thin:@IP:port:orcl --username scott --password
tiger --table emp -m 1 --columns 'empno,ename,job,sal,deptno' --hive-table emp1 --where 'deptno=10'
- 使用sqoop导入oracle数据到hive中,并使用查询语句
./sqoop import --hive-import --connect jdbc:oracle:thin:@IP:port:orcl --username scott --password
tiger --table emp -m 1 --query 'select * from emp where sal<2000 and $CONDITIONS' --target-dir '/sqoop/emp5' --hive-table emp5
- 使用sqoop将hive中的数据导出到oracle中
./sqoop emport --connect jdbc:oracle:thin:@IP:port:orcl --username scott --password
tiger --table emp -m 1 --table MYEMP --export-dir ******* -------------******是指HDFS上要导出文件的目录,且oracle中提前建好跟文件字段类型一致的表结构