官网下载sqoop-1.4.6.bin__hadoop-0.23.tar.gz
tar -xzvf sqoop-1.4.6.bin__hadoop-0.23.tar.gz
export HADOOP_COMMON_HOME=/home/spark/opt/hadoop-2.7(用来指明hadoop安装在哪个目录下)
export HADOOP_MAPRED_HOME=/home/spark/opt/hadoop-2.7(作业转换成MAPREDUCE进行执行,所以要指定hadoop的mapreduce目录)
数据库驱动程序上传到sqoop的lib目录下
显示mysql数据库列表
./sqoop list-databases --connect jdbc:mysql://132.97.153.51:13306/ --username root --password 111111
./sqoop list-tables --connect jdbc:mysql://132.97.153.51:13306/spark --username root -P 111111
使用sqoop导入oracle数据到HDFS中
./sqoop import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl(连接地址ip地址默认端口数据库名称) --username root(用户名) --password 111111(密码) --table emp(导入哪张表) --columns 'empno,ename,job,sql,sal,deptno'(导入哪些列) -m 1(mapreduce进程数) --target-dir '/sqoop/emp'(导入到hdfs的那个目录上)
使用sqoop导入mysql数据到HDFS中
./sqoop import --connect jdbc:mysql://132.97.153.51:13306/spark(连接地址ip地址默认端口数据库名称) --username root(用户名) --password 111111(密码) --table cache(导入哪张表) --columns 'id,start_facid,end_facid,route_text'(导入哪些列) -m 1(mapreduce进程数) --target-dir '/sqoop/cache'(导入到hdfs的那个目录上)
./sqoop import --connect jdbc:mysql://132.97.153.51:13306/spark --username root --password 111111 --table cache --columns 'id,start_facid,end_facid,route_text' -m 1 --target-dir '/sqoop/cache'
Error: java.lang.RuntimeException: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
使用sqoop导入orcale数据到hive中
./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl(连接地址ip地址默认端口数据库名称) --username scottt(用户名) --password tiger(密码) --table emp(导入哪张表) -m 1(mapreduce进程数) --columns 'empno,ename,job,sql,sal,deptno'(导入哪些列)
./sqoop import --hive-import --connect jdbc:mysql://132.97.153.51:13306/spark --username root --password 111111 --table cache --columns 'id,start_facid,end_facid,route_text' -m 1
使用sqoop导入oracle数据到hive中,并且指定表名
./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username root --password root --table [tablename] -m 1 --columns 'id,name' --hive-table [tablename1](指定了表名)
./sqoop import --hive-import --connect jdbc:mysql://132.97.153.51:13306/spark --username root --password root --table [tablename] -m 1 --columns 'id,name' --hive-table [tablename1]
使用sqoop导入oracle数据到hive中,并使用where条件(--where 'xx=xx' 只导入符合where条件的数据到tablename1中)
./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username root --password root --table [tablename] -m 1 --columns 'id,name' --hive-table [tablename1] --where 'id=10'
./sqoop import --hive-import --connect jdbc:mysql://132.97.153.51:13306/spark --username root --password root --table [tablename] -m 1 --columns 'id,name' --hive-table [tablename1] --where 'id=10'
使用sqoop导入oracle数据到hive中,并使用查询语句过滤 (子查询中where语句之后必须添加 and $CONDITIONS 才能正确执行)
./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username root --password root -m 1 --query 'select * from tablename where id >10 and $CONDITIONS' --target-dir '/sqoop/cache2' --hive-table [tablename1]
使用sqoop 将hive中的数据导出到oracle中(必须先在oracle中创建表,表结构要一样)
./sqoop export --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username root --password root -m 1 --table [tablename] --export-dir *****