CentOS环境下安装Sqoop导入数据到HDFS

一、准备工作

1.Hadoop安装(上一篇有介绍,不解释)
2.下载,解压Sqoop(不解释,因为我Hadoop用的是2.3所以Sqoop使用sqoop-1.99.3-bin-hadoop200 )

二、基本配置

1.环境配置

sudo vi /etc/profile

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #set sqoop Environment  
  2. export SQOOP_HOME=/home/dev/sqoop  
  3. export HADOOP_COMMON_HOME=/home/dev/hadoop  
  4. export HADOOP_MAPRED_HOME=/home/dev/hadoop  
  5. export PATH=${SQOOP_HOME}/bin:$PATH</pre>  
2.修改包名路径

vi ${SQOOP_HOME}/server/conf/catalina.properties

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/../server/lib/*.jar,/home/dev/hadoop/share/hadoop/common/*.jar,/home/dev/hadoop/share/hadoop/common/lib/*.jar,/home/dev/hadoop/share/hadoop/yarn/*.jar,/home/dev/hadoop/share/hadoop/hdfs/*.jar,/home/dev/hadoop/share/hadoop/mapreduce/*.jar  
3.修改Hadoop配置文件路径

vi ${SQOOP_HOME}/server/conf/sqoop.properties

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/home/dev/hadoop/etc/hadoop  
4.下载jar包mysql-connector-5.1.8.jar到 ${SQOOP_HOME}/server/lib

5.将Jar包路径加入HDFS

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. ./bin/hadoop fs -mkdir -p /home/dev/sqoop/server/  
  2. ./bin/hadoop fs -put -p /home/dev/sqoop/server/lib /home/dev/sqoop/server/  
  3.   
  4. ./bin/hadoop fs -mkdir -p /home/dev/sqoop/server/webapps/sqoop/WEB-INF/  
  5. ./bin/hadoop fs -put -p /home/dev/sqoop/server/webapps/sqoop/WEB-INF/lib  /home/dev/sqoop/server/webapps/sqoop/WEB-INF/  
  6.   
  7. ./bin/hadoop fs -mkdir -p /home/dev/hadoop/share/hadoop/common/  
  8. ./bin/hadoop fs -put -p /home/dev/hadoop/share/hadoop/common/lib  /home/dev/hadoop/share/hadoop/common/  

三、使用方法

1.首先启动自带的Web服务

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [dev@master sqoop]$ sqoop.sh server start  
  2. Sqoop home directory: /home/dev/sqoop  
  3. Setting SQOOP_HTTP_PORT:     12000  
  4. Setting SQOOP_ADMIN_PORT:     12001  
  5. Using   CATALINA_OPTS:         
  6. Adding to CATALINA_OPTS:    -Dsqoop.http.port=12000 -Dsqoop.admin.port=12001  
  7. Using CATALINA_BASE:   /home/dev/sqoop/server  
  8. Using CATALINA_HOME:   /home/dev/sqoop/server  
  9. Using CATALINA_TMPDIR: /home/dev/sqoop/server/temp  
  10. Using JRE_HOME:        /usr/local/jdk  
  11. Using CLASSPATH:       /home/dev/sqoop/server/bin/bootstrap.jar  

注:若出现log4j相关的错误,可以把${SQOOP_HOME}/server/conf/sqoop.properties中log4j相关的注释掉

2.然后进入客户端进行操作

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [dev@master sqoop]$ sqoop.sh client  
  2. Sqoop home directory: /home/dev/sqoop  
  3. Sqoop Shell: Type 'help' or '\h' for help.  
  4.   
  5. sqoop:000>   
3.接下来就Sqoop的命令使用,输入help可以查询具体使用方法

a.设置服务

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. sqoop:000> set server --host master --port 12000 --webapp sqoop  
  2. Server is set successfully  
b.查看版本信息
[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. sqoop:000> show version --all  
  2. client version:  
  3.   Sqoop 1.99.3 revision 2404393160301df16a94716a3034e31b03e27b0b   
  4.   Compiled by mengweid on Fri Oct 18 14:15:53 EDT 2013  
  5. server version:  
  6.   Sqoop 1.99.3 revision 2404393160301df16a94716a3034e31b03e27b0b   
  7.   Compiled by mengweid on Fri Oct 18 14:15:53 EDT 2013  
  8. Protocol version:  
  9.   [1]  
  10. sqoop:000>   
c.创建数据库连接
[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. sqoop:000> create connection --cid 1  
  2. Creating connection for connector with id 1  
  3. Please fill following values to create new connection object  
  4. Name: Mysql-H216  
  5.   
  6. Connection configuration  
  7.   
  8. JDBC Driver Class: com.mysql.jdbc.Driver  
  9. JDBC Connection String: jdbc:mysql://172.16.10.216:3306/mic_db_out?characterEncoding=UTF-8  
  10. Username: admin  
  11. Password: *****  
  12. JDBC Connection Properties:   
  13. There are currently 0 values in the map:  
  14. entry#   
  15.   
  16. Security related configuration options  
  17.   
  18. Max connections: 100  
  19. New connection was successfully created with validation status FINE and persistent id 1  
d.创建导入任务
[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. sqoop:000> create job --xid 1 --type import  
  2. Creating job for connection with id 1  
  3. Please fill following values to create new job object  
  4. Name: HeartBeat  
  5.   
  6. Database configuration  
  7.   
  8. Schema name: mic_db_out  
  9. Table name: t_heart_beat  
  10. Table SQL statement:   
  11. Table column names:   
  12. Partition column name:   
  13. Nulls in partition column:   
  14. Boundary query:   
  15.   
  16. Output configuration  
  17.   
  18. Storage type:   
  19.   0 : HDFS  
  20. Choose: 0  
  21. Output format:   
  22.   0 : TEXT_FILE  
  23.   1 : SEQUENCE_FILE  
  24. Choose: 0  
  25. Compression format:   
  26.   0 : NONE  
  27.   1 : DEFAULT  
  28.   2 : DEFLATE  
  29.   3 : GZIP  
  30.   4 : BZIP2  
  31.   5 : LZO  
  32.   6 : LZ4  
  33.   7 : SNAPPY  
  34. Choose: 0  
  35. Output directory: /mysql/h216/t_heart_beat  
  36.   
  37. Throttling resources  
  38.   
  39. Extractors:   
  40. Loaders:   
  41. New job was successfully created with validation status FINE  and persistent id 1  
  42. sqoop:000>   

d.然后就可以导入数据了

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. sqoop:000> start job --jid 1  
  2. Submission details  
  3. Job ID: 1  
  4. Server URL: http://localhost:12000/sqoop/  
  5. Created by: dev  
  6. Creation date: 2014-04-19 18:54:25 CST  
  7. Lastly updated by: dev  
  8. External ID: job_local1638775039_0002  
  9. 2014-04-19 18:54:50 CST: UNKNOWN   
e.进入Hadoop中查看数据
[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [dev@master hadoop]$ ./bin/hadoop fs -ls /mysql/h216/t_heart_beat  
  2. Found 11 items  
  3. -rw-r--r--   2 dev supergroup          0 2014-04-19 18:54 /mysql/h216/t_heart_beat/_SUCCESS  
  4. -rw-r--r--   2 dev supergroup     666901 2014-04-19 18:54 /mysql/h216/t_heart_beat/part-m-00000  
  5. -rw-r--r--   2 dev supergroup     664052 2014-04-19 18:54 /mysql/h216/t_heart_beat/part-m-00001  
  6. -rw-r--r--   2 dev supergroup     663652 2014-04-19 18:54 /mysql/h216/t_heart_beat/part-m-00002  
  7. -rw-r--r--   2 dev supergroup     663113 2014-04-19 18:54 /mysql/h216/t_heart_beat/part-m-00003  
  8. -rw-r--r--   2 dev supergroup     669380 2014-04-19 18:54 /mysql/h216/t_heart_beat/part-m-00004  
  9. -rw-r--r--   2 dev supergroup     664585 2014-04-19 18:54 /mysql/h216/t_heart_beat/part-m-00005  
  10. -rw-r--r--   2 dev supergroup     657891 2014-04-19 18:54 /mysql/h216/t_heart_beat/part-m-00006  
  11. -rw-r--r--   2 dev supergroup     662798 2014-04-19 18:54 /mysql/h216/t_heart_beat/part-m-00007  
  12. -rw-r--r--   2 dev supergroup     660777 2014-04-19 18:54 /mysql/h216/t_heart_beat/part-m-00008  
  13. -rw-r--r--   2 dev supergroup     641260 2014-04-19 18:54 /mysql/h216/t_heart_beat/part-m-00009  
  14. [dev@master hadoop]$   


OK,导入成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值