sqoop环境配置AND常用基本操作01

来源:互联网 发布:爱淘宝推广 编辑:程序博客网 时间:2024/05/21 12:45
sqoop安装
官网下载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)
显示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数据的导入导出
使用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'


注:一定要写ip不要写localhost 不然报错
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导入mysql数据到hive中
./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导入mysql数据到hive中,并且指定表名 (--hive-table [tablename] 有就插入,没有就新建表)
./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导入mysql数据到hive中,并使用where条件(--where 'xx=xx' 只导入符合where条件的数据到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] --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 *****

0 0
原创粉丝点击