CentOS下sqoop配置安装
2013-11-29 10:36
393 查看
需要用到Sqoop将原来mysql中的数据导入到HBase,以下是安装配置Sqoop的步骤和问题记录:
1. 项目用到的hadoop的版本是1.1.2,所以对应的sqoop是sqoop-1.4.4.bin__hadoop-1.0.0,mysql的jdbc是mysql-connector-java-5.1.6-bin.jar
解压缩sqoop安装文件
[hadoop@node01 ~]$ tar -xzvf sqoop-1.4.4.bin__hadoop-0.20.tar.gz
2.重命名配置文件
在${SQOOP_HOME}/conf中执行命令
在conf目录下,有两个文件sqoop-site.xml和sqoop-site-template.xml内容是完全一样的,不必在意,我们只关心sqoop-site.xml即可。
3.修改配置文件sqoop-env.sh
内容如下
好了,搞定了,下面就可以运行了。
2. 解压sqoop,配置环境变量:
在/etc/profile中添加:
export $SQOOP_HOME=/home/hadoop/sqoop-1.4.3
export $PATH = $SQOOP_HOME/bin:$PATH
配置完成后,需要注销或者重启
3. 解压mysql,将mysql-connector-java-5.1.24-bin.jar放到$SQOOP_HOME/lib里,配置完成。
但是遇到的问题如下:
1. 在命令行运行sqoop,提示:
Error: Could not find or load main class org.apache.sqoop.Sqoop
这里把sqoop解压后根目录下的sqoop-1.4.3.jar加入到hadoop-1.0.3/lib里即可。
2. 运行sqoop list-tables --connect jdbc:mysql://192.168.10.111:3306/database -username 'root' -P 提示mysql错误:
13/07/02 10:09:53 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
13/07/02 10:09:53 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:716)
at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
at org.apache.sqoop.manager.CatalogQueryManager.listTables(CatalogQueryManager.java:101)
at org.apache.sqoop.tool.ListTablesTool.run(ListTablesTool.java:49)
at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
网上搜到的解决方案都说是没把mysql的jar包放到$SQOOP_HOME/lib下,但是我确实是放进去了。然后看到有个地方说是hadoop找不到mysql,我把mysql的jar包放到了hadoop-1.0.3/lib里,运行成功。
对于这两个问题,在网上都没有搜到这样的解决方法,不清楚是不是我自己hadoop哪个地方配得不对,导致常规的配置方法不能运行成功。把sqoop和mysql的jar包都添加到hadoop/lib里之后,我把之前放到sqoop-1.4.4/lib里的mysql的jar包删掉,也可以正常运行。
1. 项目用到的hadoop的版本是1.1.2,所以对应的sqoop是sqoop-1.4.4.bin__hadoop-1.0.0,mysql的jdbc是mysql-connector-java-5.1.6-bin.jar
解压缩sqoop安装文件
[hadoop@node01 ~]$ tar -xzvf sqoop-1.4.4.bin__hadoop-0.20.tar.gz
2.重命名配置文件
在${SQOOP_HOME}/conf中执行命令
mv sqoop-env-template.sh sqoop-env.sh
在conf目录下,有两个文件sqoop-site.xml和sqoop-site-template.xml内容是完全一样的,不必在意,我们只关心sqoop-site.xml即可。
3.修改配置文件sqoop-env.sh
内容如下
#Set path to where bin/hadoop is available export HADOOP_COMMON_HOME=/usr/local/hadoop/ #Set path to where hadoop-*-core.jar is available export HADOOP_MAPRED_HOME=/usr/local/hadoop #set the path to where bin/hbase is available export HBASE_HOME=/usr/local/hbase #Set the path to where bin/hive is available export HIVE_HOME=/usr/local/hive #Set the path for where zookeper config dir is export ZOOCFGDIR=/usr/local/zk
好了,搞定了,下面就可以运行了。
2. 解压sqoop,配置环境变量:
在/etc/profile中添加:
export $SQOOP_HOME=/home/hadoop/sqoop-1.4.3
export $PATH = $SQOOP_HOME/bin:$PATH
配置完成后,需要注销或者重启
3. 解压mysql,将mysql-connector-java-5.1.24-bin.jar放到$SQOOP_HOME/lib里,配置完成。
但是遇到的问题如下:
1. 在命令行运行sqoop,提示:
Error: Could not find or load main class org.apache.sqoop.Sqoop
这里把sqoop解压后根目录下的sqoop-1.4.3.jar加入到hadoop-1.0.3/lib里即可。
2. 运行sqoop list-tables --connect jdbc:mysql://192.168.10.111:3306/database -username 'root' -P 提示mysql错误:
13/07/02 10:09:53 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
13/07/02 10:09:53 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:716)
at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
at org.apache.sqoop.manager.CatalogQueryManager.listTables(CatalogQueryManager.java:101)
at org.apache.sqoop.tool.ListTablesTool.run(ListTablesTool.java:49)
at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
网上搜到的解决方案都说是没把mysql的jar包放到$SQOOP_HOME/lib下,但是我确实是放进去了。然后看到有个地方说是hadoop找不到mysql,我把mysql的jar包放到了hadoop-1.0.3/lib里,运行成功。
对于这两个问题,在网上都没有搜到这样的解决方法,不清楚是不是我自己hadoop哪个地方配得不对,导致常规的配置方法不能运行成功。把sqoop和mysql的jar包都添加到hadoop/lib里之后,我把之前放到sqoop-1.4.4/lib里的mysql的jar包删掉,也可以正常运行。
相关文章推荐
- CentOS下sqoop的配置安装(整理篇)
- CentOS 6.7 配置 yum 安装 Nginx
- CentOS-6.3安装配置Nginx
- centos安装与配置dhcp服务
- CentOS 6.4下Squid代理服务器的安装与配置
- CentOS6.5安装与配置Mysql数据库
- elastic5.2和kibana5.0安装配置问题简介(centos6.5)
- CentOS 6.9安装配置nmon
- centos6 上安装和配置 Openvz 及openvz的图形化管理界面webvz的安装配置 ...
- virtualbox虚拟机上安装centOS的网络配置(安装centos时选择桥接网络)
- CentOS-7.0.中安装与配置Tomcat-7的方法
- centos6.5 安装配置mysql5.6-RPM及修改数据目录
- CentOS6.5下Redis安装与配置
- centos7下安装java及环境变量配置技巧
- Hadoop集群安装配置教程_Hadoop2.7.3Ubuntu/CentOS
- CentOS 7.0 网络安装配置
- win10 64位下装Virtual Box安装Linux(centOS)配置联网
- CentOS 6.0下vncserver安装配置
- CentOS 6.3下PostgreSQL 的安装与配置
- CentOS 6 使用 yum 安装MongoDB及服务器端配置