sqoop 安装&配置

由于前面已经把 hadoop 安装并成功配置应用,下面继续对sqoop 安装与配置。

Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

 

  •  安装&配置

下载地址: http://www.us.apache.org/dist/sqoop/1.99.3/

下载 sqoop-1.99.3-bin-hadoop200.tar.gz

解压:tar -zxvf  sqoop-1.99.3-bin-hadoop200.tar.gz

配置sqoop环境变量

vi /etc/profile 

export SQOOP_HOME=/opt/sqoop-1.99.3-bin-hadoop200

export CATALINA_BASE=$SQOOP_HOME/server

export LOGDIR=$SQOOP_HOME/logs/

export PATH=$SQOOP_HOME/bin:$PATH

修改sqoop关于hadoop共享jar的引用

vi server/conf/catalina.properties

 

找到common.loader行,把/usr/lib/hadoop/lib/*.jar改成你的hadoop jar 包目录

/opt/soft-228238/hadoop-2.5.2/share/hadoop/yarn/*.jar,

/opt/soft-228238/hadoop-2.5.2/share/hadoop/yarn/lib/*.jar,

/opt/soft-228238/hadoop-2.5.2/share/hadoop/hdfs/*.jar,

/opt/soft-228238/hadoop-2.5.2/share/hadoop/hdfs/lib/*.jar,

/opt/soft-228238/hadoop-2.5.2/share/hadoop/mapreduce/*.jar,

/opt/soft-228238/hadoop-2.5.2/share/hadoop/mapreduce/lib/*.jar,

/opt/soft-228238/hadoop-2.5.2/share/hadoop/common/*.jar,

/opt/soft-228238/hadoop-2.5.2/share/hadoop/common/lib/*.jar,

/opt/soft-228238/hadoop-2.5.2/share/hadoop/httpfs/tomcat/lib/*.jar,

/opt/soft-228238/hadoop-2.5.2/share/hadoop/kms/tomcat/lib/*.jar,

/opt/soft-228238/hadoop-2.5.2/share/hadoop/tools/lib/*.jar

注:/opt/soft-228238/hadoop-2.5.2 安装hadoop 路径;对于和Hive 集成 修改 /usr/lib/hive/lib/*.jar 改为对应到hive 安装路径的 jar

vi server/conf/sqoop.properties

 

找到:org.apache.sqoop.submission.engine.mapreduce.configuration.directory行,修改值为你的hadoop配置文件目录

如: org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/opt/soft-228238/hadoop-2.5.2/etc/hadoop

进入安装目录:/opt/sqoop-1.99.3-bin-hadoop200

新建文件夹 lib:  mkdir lib

将数据库驱动包(oracle-jdbc-10.1.0.2.0.jar)放入到 lib 中,

启动 sqoop:

cd  /opt/sqoop-1.99.3-bin-hadoop200/bin

执行  ./sqoop.sh server start

执行结果如下:



 停止 sqooq : ./ sqoop.sh server stop

 

 

使用sqoop客户端:

./sqoop.sh client


输入help可以查询具体使用方法 如下:


 设置服务: set server --host supervisor-84 --port 12000 --webapp sqoop

查看错误信息:set option --name verbose --value true


 查看 sqoop 版本信息:show version –a

 创建数据库连接:根据提示依次数据库连接驱动以及用户名密码,然后点击 enter 键,输入连接数 提示 successfully


 创建导入 job:

create job --xid 1 --type import

输入 Schema name, Table name  然后 enter(点回撤键)  红框为要输入的信息



 

 执行 start job –jid 6   

注: 6 为创建job 的id ,可以通过 show job 命了进行查看 job信息。



 

成功:



 

可以在 eclipse hadoop 插件中浏览到结果:



 

  •  遇到问题解决方案:
  1.        查看 job 运行状态失败:
 

 
处理查看日志是否有错误外后请注意红色说明:
注意: sqoop-1.99.3 和 hadoop-2 导出 HDFS 执行 是 查看
 $Hadoo_home(安装路径)/ect/hadoop/mapred-site.xml 中的

<property>

<name>mapreduce.job.tracker</name>

<value>192.168.68.84:9001</value>

</property>

注释 或删除 ,然后重新启动 hadoop

show version –all 报错:

Exception has occurred during processing command 

Exception: com.sun.jersey.api.client.UniformInterfaceException Message: GET http://supervisor-41:12000/sqoopServer/version returned a response status of 404 Not Found

解决方法:

将命令更改为:set server --host 安装IP --port 12000 --webapp 安装文件名   如: set server --host supervisor-41 --port 12000 --webapp sqoop

java.net.ConnectException :10020

java.io.IOException: java.net.ConnectException: Call From supervisor-84/192.168.68.84 to supervisor-84:10020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

at org.apache.hadoop.mapred.ClientServiceDelegate.invoke(ClientServiceDelegate.java:331)

at org.apache.hadoop.mapred.ClientServiceDelegate.getJobStatus(ClientServiceDelegate.java:416)

at org.apache.hadoop.mapred.YARNRunner.getJobStatus(YARNRunner.java:522)

at org.apache.hadoop.mapreduce.Cluster.getJob(Cluster.java:183)

at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:580)

解决:

1.查看 $Hadoo_home(安装路径)/ect/hadoop/mapred-site.xml 是否有一下配置信息

<property>

<name>mapreduce.jobhistory.address</name>

<value>192.168.68.84:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>192.168.68.84:19888</value>

</property>

2. 启动 $Hadoo_home(安装路径)/sbin/mr-jobhistory-daemon.sh start historyserver

使用java 连接 sqoop 引用 jar:

<dependency>

    <groupId>org.apache.sqoop</groupId>

    <artifactId>sqoop-client</artifactId>

    <version>1.99.3</version>

   </dependency>

处理查看日志是否有错误外后请注意红色说明: 注意: sqoop-1.99.3 和 hadoop-2 导出 HDFS 执行 是 查看  $Hadoo_home(安装路径)/ect/hadoop/mapred-site.xml 中的

猜你喜欢

转载自wangmengbk.iteye.com/blog/2219710
今日推荐