说明:
Sqoop是apache旗下的一款 ”Hadoop和关系数据库之间传输数据”的工具
导入数据 import
将MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、Hbase等数据存储系统
导出数据 export
从Hadoop的文件系统中导出数据到关系数据库。
Sqoop安装部署
1、下载安装包
https://attic.apache.org/projects/sqoop.html
下载 sqoop-1.99.7-bin-hadoop200.tar.gz
2、上传安装包到服务器hadoop1上
sqoop就是一个工具,只需要安装一台就可以了,一般跟hive安装在同一台服务器上
3、解压安装包到指定的规划目录
[root@hadoop1 ~]# cd /home/hadoop/
[root@hadoop1 ~]# tar -zxvf sqoop-1.99.7-bin-hadoop200.tar.gz
4、改名
[root@hadoop1 ~]# mv sqoop-1.99.7-bin-hadoop200.tar.gz sqoop
5、修改配置
[root@hadoop1 ~]# vi /home/hadoop/.bashrc
export HADOOP_COMMON_HOME=$HADOOP_HOME/share/hadoop/common export HADOOP_HDFS_HOME=$HADOOP_HOME/share/hadoop/hdfs export HADOOP_MAPRED_HOME=$HADOOP_HOME/share/hadoop/mapreduce export HADOOP_YARN_HOME=$HADOOP_HOME/share/hadoop/yarn export SQOOP_HOME=/home/hadoop/sqoop export CATALINA_HOME=${SQOOP_HOME}/server export LOGDIR=${SQOOP_HOME}/logs export SQOOP_SERVER_EXTRA_LIB=${SQOOP_HOME}/extra $PATH=.:$SQOOP_HOME/bin:$PATH
生效
[root@hadoop1 ~]# source /home/hadoop/.bashrc
创建extra目录,把mysql的驱动jar文件复制到这个目录下
[root@hadoop1 sqoop] # mkdir extra
配置Hadoop代理访问
因为sqoop访问Hadoop的MapReduce使用的是代理的方式,必须在Hadoop中配置所接受的proxy用户和组。
找到Hadoop的core-site.xml配置文件(本例是/home/hadoop/apps/hadoop-2.10.1/etc/hadoop/core-site.xml):
hadoop.proxyuser.$SERVER_USER.hosts * hadoop.proxyuser.$SERVER_USER.groups *
S
E
R
V
E
R
U
S
E
R
是
运
行
S
q
o
o
p
2
S
e
r
v
e
r
的
系
统
用
户
,
本
例
我
使
用
了
h
a
d
o
o
p
用
户
运
行
s
e
r
v
e
r
,
所
以
将
SERVER_USER是运行Sqoop2 Server的系统用户,本例我使用了hadoop用户运行server,所以将
SERVERUSER是运行Sqoop2Server的系统用户,本例我使用了hadoop用户运行server,所以将SERVER_USER代替为hadoop。
注意:保证你的用户id大于1000(可用id命令查看),否则作为系统变量运行时,可能需要其他配置,参照官网。
sqoop核心配置文件
sqoop.properties
org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/home/hadoop/apps/hadoop-2.10.1/etc/hadoop org.apache.sqoop.security.authentication.type=SIMPLE org.apache.sqoop.security.authentication.handler=org.apache.sqoop.security.authentication.SimpleAuthenticationHandler org.apache.sqoop.security.authentication.anonymous=true
6、验证配置是否有效
[root@hadoop1 bin]# sqoop2-tool verify
[root@hadoop1 bin]# ll/home/hadoop/sqoop/server/lib/derby*
[root@hadoop1 bin]# ll /home/hadoop/hive/lib derby*
是sqoop 的derby 的版本太低,将hive中的derby 拷贝到sqoop/lib 下(将原有版本删除)
[root@hadoop1 bin]# cp /home/hadoop/hive/lib/derby-10.14.1.0.jar /home/hadoop/sqoop/server/lib/
再验证
开启服务
[root@hadoop1 bin]# sqoop2-server start
开启服务器后生成了两个目录(在那个目录下运行就在哪个目录下生成)
查看sqoop运行日志
[root@hadoop1 bin]# ll @LOGDIR@/
关闭服务
[root@hadoop1 bin]# sqoop2-server stop
开启客户端
[root@hadoop1 bin]# sqoop2-shell
安装完成
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)