问题导读
1.如何安装Sqoop服务端?
2.如何安装Sqoop客户端?
、
上一篇:sqoop2系统入门之10之管理员指南篇:Spoop2升级
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22705
1.安装
Sqoop只有一个二进制包,里面包含了两个不同部分-客户端和服务端
- 服务端:需要将服务端装在集群的单个节点上。该节点将作为所有客户端的入口。
- 客户端:可以安装在任意节点上,且不限于一个节点。
1.1 服务端的安装
将Sqoop文件夹拷贝到你希望装的机器上。Sqoop服务端扮演Hadoop客户端的角色。所以该节点上需要有Hadoop库(Yarn, Mapreduce和HDFS jar 包)和配置文件(core-site.xml, mapreduce-site.xml, ...) 。无需运行任何Hadoop相关的服务-在“网关”节点运行服务端就可以了。
可以用以下命令查看HDFS文件列表
[mw_shl_code=applescript,true]hadoop dfs -ls[/mw_shl_code]
目前,Sqoop支持Hadoop2.6及以上版本。要安装Sqoop服务端,解压缩tar包(到你选择的目录)并把解压后新生成的目录设置为工作目录。
[mw_shl_code=applescript,true]# 解压缩发布版本的tar包
tar -xvf sqoop-<version>-bin-hadoop<hadoop-version>.tar.gz
# 将解压后的内容移动到任何目录
mv sqoop-<version>-bin-hadoop<hadoop version>.tar.gz /usr/lib/sqoop
# 进到工作目录
cd /usr/lib/sqoop[/mw_shl_code]
1.1.1 Hadoop依赖
Sqoop需要以下环境变量指向Hadoop库
HADOOP_COMMON_HOME, $HADOOP_HDFS_HOME, $HADOOP_MAPRED_HOME 和$HADOOP_YARN_HOME
需要确认这些环境变量有设置并指向正确的Hadoop安装目录。如果找不到Hadoop依赖,Sqoop服务端将无法启动。
Sqoop服务端通过环境变量找到Hadoop依赖。如果设置了$HADOOP_HOME,Sqoop将会在以下目录寻找需要的jar包
$HADOOP_HOME/share/hadoop/common, $HADOOP_HOME/share/hadoop/hdfs, $HADOOP_HOME/share/hadoop/mapreduce 和$HADOOP_HOME/share/hadoop/yarn。也可以设置环境变量$HADOOP_COMMON_HOME, $HADOOP_HDFS_HOME, $HADOOP_MAPRED_HOME 和 $HADOOP_YARN_HOME来指定Sqoop该去哪里查找common, hdfs, mapreduce, and yarn依赖。
[mw_shl_code=applescript,true]# Export HADOOP_HOME variable
export HADOOP_HOME=/...
# Or alternatively HADOOP_*_HOME variables
export HADOOP_COMMON_HOME=/...
export HADOOP_HDFS_HOME=/...
export HADOOP_MAPRED_HOME=/...
export HADOOP_YARN_HOME=/...[/mw_shl_code]
注意点:
如果设置了环境变量 $HADOOP_HOME, Sqoop将会使用以下路径: $HADOOP_HOME/share/hadoop/common, $HADOOP_HOME/share/hadoop/hdfs, $HADOOP_HOME/share/hadoop/mapreduce 和$HADOOP_HOME/share/hadoop/yarn.
1.1.2 Hadoop配置
Sqoop 服务器将扮演用户角色从集群内或集群外来访问HDFS 其他资源,扮演的是启动制定作业的角色,而不是运行服务端的角色。需要配置Hadoop通过代理用户系统来显式允许角色访问。需要在core-site.xml文件中新增两个配置项 - hadoop.proxyuser.$SERVER_USER.hosts 和hadoop.proxyuser.$SERVER_USER.groups , $SERVER_USER 是运行Sqoop2服务端的用户。在大部分场景下,设置 * 是不够的。关于使用这些属性的更多细节请查阅Hadoop文档。
以下片段是Sqoop2服务端以sqoop2用户角色运行时需要在core-site.xml文件中配置的属性的示例:
[mw_shl_code=applescript,true]<property>
<name>hadoop.proxyuser.sqoop2.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.sqoop2.groups</name>
<value>*</value>
</property>[/mw_shl_code]
如果你是用系统用户运行Sqoop2服务端(用户ID比min.user.id 小,默认1000),那么yarn将会拒绝运行Sqoop2作业。需要将运行Sqoop2服务端(很有可能是sqoop2用户)的用户名加到container-executor.cfg文件的allowed.system.users 属性中去。更多细节请查阅yarn文档。
以下片段是Sqoop2服务端以sqoop2用户角色运行时需要在container-executor.cfg文件中配置的属性的示例:
[mw_shl_code=applescript,true]allowed.system.users=sqoop2[/mw_shl_code]
1.1.3 第三方jar包
要加载任何第三方jar包到Sqoop服务端的类路径,需要在文件系统中新建一个目录并把该路径作为环境变量SQOOP_SERVER_EXTRA_LIB的值[mw_shl_code=applescript,true]# Create directory for extra jars
mkdir -p /var/lib/sqoop2/
# Copy all your JDBC drivers to this directory
cp mysql-jdbc*.jar /var/lib/sqoop2/
cp postgresql-jdbc*.jar /var/lib/sqoop2/
# And finally export this directory to SQOOP_SERVER_EXTRA_LIB
export SQOOP_SERVER_EXTRA_LIB=/var/lib/sqoop2/[/mw_shl_code]
注意点:
由于证书不兼容的原因,sqoop本身并没有包含JDBC的依赖。你可以使用这种方法导入需要的jdbc依赖。
1.1.4 配置PATH环境变量
所有用户和管理员都是使用bin目录下的脚本。为了执行方便,推荐将该目录加到环境变量$path中,例如
[mw_shl_code=applescript,true]PATH=$PATH:`pwd`/bin/[/mw_shl_code]
文档的其他部分都假设你以设置好该环境变量
1.1.5 配置服务端
服务端的配置文件都在conf文件夹下。sqoop_bootstrap.properties文件指定了使用哪种配置加载器来加载属性。默认使用PropertiesConfigurationProvider就已足够。
第二个文件名称叫做sqoop.properties,包含了剩下的会影响Sqoop服务端的配置属性。配置文件内容都很规范,可以检查配置是否符合实际环境。使用默认配置或微调某些配置就可以应付大部分情况。
1.1.6 初始化库
第一次启动Sqoop服务器需要初始化元数据库。使用升级工具来初始化库。
[mw_shl_code=applescript,true]sqoop2-tool upgrade[/mw_shl_code]
可以使用确认工具来确认属性是否配置正确
[mw_shl_code=applescript,true]sqoop2-tool verify
...
Verification was successful.
Tool class org.apache.sqoop.tools.tool.VerifyTool has finished correctly[/mw_shl_code]
1.1.7 服务端生命周期
在安装和配置后,可以使用下面命令来启动Sqoop服务端
[mw_shl_code=applescript,true]sqoop2-server start[/mw_shl_code]
可以使用以下命令来停止服务端
[mw_shl_code=applescript,true]sqoop2-server stop[/mw_shl_code]
Sqoop服务端后台默认使用12000端口。可以在conf/sqoop.properties文件中设置org.apache.sqoop.jetty.port属性来使用别的端口。
1.2 客户端安装
只需将Sqoop发布版文件拷贝到目标主机并解压缩到需要的目录。可以使用以下命令来启动客户端:
[mw_shl_code=applescript,true]sqoop2-shell[/mw_shl_code]
可以在shell命令行找到更多关于Sqoop命令行的文档。
注意点:
因为客户端并不是作为Hadoop客户端工作的,所以节点上无需有Hadoop依赖和配置文件。
相关篇章
sqoop2系统入门之1:用户指南5分钟入门Demo
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22549
sqoop2系统入门之2汇总:用户指南shell命令【可收藏备查】
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22602
sqoop2系统入门之3:用户指南通用JDBC连接器
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22563
sqoop2系统入门之4:用户指南HDFS 连接器
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22564
sqoop2系统入门之5:用户指南Kafka 连接器
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22565
sqoop2系统入门之6之开发指南篇:Sqoop Java 客户端API指南
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22619
sqoop2系统入门之7之开发指南篇:编译Sqoop2源码
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22647
sqoop2系统入门之8之开发指南篇:Sqoop 2开发环境配置
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22659
sqoop2系统入门之9之管理员指南篇:Spoop Tool使用介绍
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22698
sqoop2系统入门之10之管理员指南篇:Spoop2升级
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22705
sqoop2系统入门之11之管理员指南篇:Sqoop安装
http://www.aboutyun.com/forum.php?mod=viewthread&tid=22709
|
|