安装
1、下载sqoop1.9.7。地址: http://www.apache.org/dyn/closer.lua/sqoop/1.99.7
2、解压sqoop ,并配置环境变量 ~/.bash_profile
export SQOOP_HOME=/home/sqoop-1.99.7-bin-hadoop200
export CATALINA_BASE=$SQOOP_HOME/server
export LOGDIR=$SQOOP_HOME/logs/
export PATH=$PATH:$SQOOP_HOME/bin
export $HADOOP_HOME=/home/hadoop-2
##一定要配置HADOOP_HOME 且名字不能改
3、进入$SQOOP_HOME/conf目录,修改sqoop.properties,修改为hadoop的conf目录地址
org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/home/hadoop-2.6.1/etc/hadoop/
4、配置Hadoop代理访问
因为sqoop访问Hadoop的MapReduce使用的是代理的方式,必须在Hadoop中配置所接受的proxy用户和组。找到Hadoop的core-site.xml配置文件(本例是$HADOOP_HOME/etc/hadoop/core-site.xml):
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
修改root为集群下的用户
5、需要安装JDBC驱动,将JDBC驱动放入server/lib/目录下.
6、需要在Hadoop的yarn-site.xml 这个配置文件中增加以下属性
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
修改了yarn-site.xml后重启HDFS即可。
如果,不加上面的属性,会产生什么问题呢?
可能在数据迁移的过程中出现“Aggregation is not enabled”的问题.
7、修改配置文件 mapred-site.xml
- <property>
- <name>mapreduce.jobhistory.address</name>
- <!-- 配置实际的主机名和端口-->
- <value>master:10020</value>
- </property>
并且启动MapReduce JobHistory Server服务:
在namenode上执行命令:
即可在http://node1:19888查看运行情况
使用
1、启动sqoop服务。>sqoop.sh server start
2、进入sqoop客户端。>sqoop2-shell
3、打印详细错误信息。sqoop:000>set option --name verbose --value true
4、设置连接的服务器。sqoop:000>set server --host ubuntu02
5、验证是否已经连上。sqoop:000> show version --all
6、创建一个job的步骤(以mysql导出到hdfs为例)
1>create link -connector generic-jdbc-connector
2>create link -connector dfs-connector
3>create job -f 'mysqlName' -t 'hdfsName'
4>start job -name 'jobName'
7、常用命令:show connector,show link --all,show job,create link --connector xxxxx,create job -f 'xx' -t 'xx',start job -name 'xx'
8、在create link时注意Identifier enclose: 选项值为空格
9、create link 实例
-------------------------------------------
JDBC Driver Class: com.mysql.jdbc.Driver
JDBC Connection String: jdbc:mysql://ubuntu02:3306/mytest
Username: root
Password:
JDBC Connection Properties:
protocol = tcp
------------------hdfs----------------------
HDFS URI: hdfs://ns1/
Hadoop conf directory: /opt/hadoop-2.6.0/etc/hadoop