将job信息保存起来,让多个client之间共享job数据。
两台虚拟机分配情况
node3作为存储数据的结点。node1作为client使用。
配置
# node3# $SQOOP_HOME/conf/sqoop-site.xml <property> <name>sqoop.metastore.server.location</name> <!--数据存放的目录--> <value>/usr/local/sqoop/tmp/sqoop-metastore/shared.db</value> <description>Path to the shared metastore database files. If this is not set, it will be placed in ~/.sqoop/. </description> </property> <property> <name>sqoop.metastore.server.port</name> <!--client访问的端口--> <value>16000</value> <description>Port that this metastore should listen on. </description> </property>
启动
$SQOOP_HOME/bin/sqoop metastore &
#成功后使用jps可以看到sqoop进程
使用
- 创建job
$SQOOP_HOME/bin/sqoop job \ --create employee_job \ --meta-connect jdbc:hsqldb:hsql://node3:16000/sqoop \ #后面必须是sqoop不知道是代表是什么 -- \ import \ --connect jdbc:mysql://localhost:3306/sqoop_test \ --username root \ --password 123456 \ --table employee \ --target-dir /lcy/sqoop_test/ \ --num-mappers 2
查看单个或所有的job列表和执行job可通过sqoop job –help查看可使用的命令
- 查看job列表
$SQOOP_HOME/bin/sqoop job \ --meta-connect jdbc:hsqldb:hsql://node3:16000/sqoop \ --list
- 创建job
将–meta-connect配置到client的配置文件中,是客户端默认使用固定的地址
# $SQOOP_HOME/conf/sqoop-site.xml
<property>
<name>sqoop.metastore.client.autoconnect.url</name>
<value>jdbc:hsqldb:hsql://node3:16000/sqoop</value>
</property>
#操作job时不需要再使用--meta-connect参数。