[Hadoop] Sqoop安装过程详解

2019-03-28 13:04|来源: 网络

Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
 
Sqoop官方版本:http://apache.dataguru.cn/sqoop/1.4.2/
Sqoop CDH版本:http://archive.cloudera.com/cdh/3/sqoop-1.2.0-CDH3B4.tar.gz
Hadoop CDH版本:http://archive.cloudera.com/cdh/3/hadoop-0.20.2-CDH3B4.tar.gz

之前已经安装Hadoop-0.20.2(见 http://www.linuxidc.com/Linux/2013-05/84082.htm),因sqoop官方版本不支持此版本,但可使用CDH3版本,如上面的下载链接。为了测试方便,可以通过拷贝相应的包到sqoop-1.2.0-CDH3B4/lib下,依然可以使用Hadoop-0.20.2版本。

sqoop版本: sqoop-1.2.0-CDH3B4
 
Hadoop版本:0.20.2
 
mysql版本: 5.6.11

1)解压缩sqoop安装文件

[hadoop@node01 ~]$ tar -xzvf sqoop-1.2.0-CDH3B4.tar.gz

2)sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.jar,所以你需要下载hadoop- 0.20.2-CDH3B4.tar.gz,解压缩后将hadoop-0.20.2-CDH3B4/hadoop-core-0.20.2- CDH3B4.jar复制到sqoop-1.2.0-CDH3B4/lib中。

[hadoop@node01 ~]$ cp hadoop-core-0.20.2-CDH3B4.jar sqoop-1.2.0-CDH3B4/lib
 

[hadoop@node01 ~]$ ls -l sqoop-1.2.0-CDH3B4/lib/hadoop-core-0.20.2-CDH3B4.jar
 
-rw-r--r--. 1 hadoop root 3452461 May  9 05:40 sqoop-1.2.0-CDH3B4/lib/hadoop-core-0.20.2-CDH3B4.jar

3)另外,sqoop导入mysql数据运行过程中依赖mysql-connector-java-*.jar,所以你需要下载mysql-connector-java-*.jar并复制到sqoop-1.2.0-CDH3B4/lib中

[hadoop@node01 ~]$ cp mysql-connector-java-5.1.24-bin.jar sqoop-1.2.0-CDH3B4/lib
 
[hadoop@node01 ~]$ ls -l sqoop-1.2.0-CDH3B4/lib/mysql-connector-java-5.1.24-bin.jar
 
-rw-r--r--. 1 hadoop root 846263 May  9 05:43 sqoop-1.2.0-CDH3B4/lib/mysql-connector-java-5.1.24-bin.jar

4)修改SQOOP的文件configure-sqoop,注释掉hbase和zookeeper检查(除非你准备使用HABASE等HADOOP上的组件),否则在进行hbase和zookeeper检查时,可能会卡在这里。


[hadoop@node01 bin]$ pwd
 
/home/hadoop/sqoop-1.2.0-CDH3B4/bin
 
[hadoop@node01 bin]$ vi configure-sqoop
 

 


#if [ -z "${HBASE_HOME}" ]; then
 
#  HBASE_HOME=/usr/lib/hbase
 
#fi
 
#if [ -z "${ZOOKEEPER_HOME}" ]; then
 
#  ZOOKEEPER_HOME=/usr/lib/zookeeper
 
#fi
 

 


#if [ ! -d "${HBASE_HOME}" ]; then
 
#  echo "Error: $HBASE_HOME does not exist!"
 
#  echo 'Please set $HBASE_HOME to the root of your HBase installation.'
 
#  exit 1
 
#fi
 
#if [ ! -d "${ZOOKEEPER_HOME}" ]; then
 
#  echo "Error: $ZOOKEEPER_HOME does not exist!"
 
#  echo 'Please set $ZOOKEEPER_HOME to the root of your ZooKeeper installation.'
 
#  exit 1
 
#fi

5)启动Hadoop
 

[hadoop@node01 bin]$ start-all.sh
 
[hadoop@node01 bin]$ jps
 
2732 Jps
 
2478 NameNode
 
2665 JobTracker
 
2600 SecondaryNameNode

相关问答

更多
  • 现在hadoop1.0都出了 简单说一下吧 你的java jdk的环境变量没有设置吧? 最好按以下步骤再做一遍: 1 用root用户安装jdk1.6以上 2 用root用户 创建hadoop用户 3 在hadoop用户下安装hadoop(你上面说的1到4) 4 修改/home/hadoop/.bash_profile将JDK和hadoop的环境变量设置好 5 安装ssh(伪集群也需要ssh)
  • hadoop安装问题[2023-11-22]

    你看的教程是旧的,新版的hadoop启动脚本放在sbin下。start-all.sh已经逐渐被废弃,采用新的启动脚本: sbin/hadoop-daemon.sh --script hdfs start datanodesbin/hadoop-daemon.sh --script hdfs start namenodesbin/yarn-daemon.sh start resourcemanagersbin/yarn-daemon.sh start proxyserversbin/mr-jobhistory ...
  • 没有找到NameNode这个类,估计是你hadoop不全,或者其他配置文件有错误,不是这个配置文件的问题
  • 请问Hadoop也是cdh版本? sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.jar 所以还是要针对Hadoop的发布版本下对应的Sqoop,jar包依赖问题很重要
  • 使用bash而不是sh来调用脚本。 这解决了我的问题。 Use bash and not sh to invoke the scripts. That solved my problem.
  • Sqoop的Cloudera发行版与Apache Sqoop版本相匹配。 不存在与绩效有关的重大问题。 然而,在CDH上运行Cloudera分发Sqoop是有好处的,因为你可以免费获得漂亮的包装和简单的安装。 Jarcec Cloudera distribution of Sqoop match the Apache Sqoop version. There shall be no major performance related issues. There is however benefit in r ...
  • 您应该添加/usr/lib/hadoop-0.xx/lib找到的所有jar以避免这种类路径问题。 为了给你一个想法,你可以输入hadoop classpath ,它将打印出获取Hadoop jar和所需库所需的类路径。 在你的情况下,你错过了hadoop-common-0.xx.jar ,所以你应该把它添加到classpath中,你应该很好。 You should add all the jars found in /usr/lib/hadoop-0.xx/lib to avoid this kind of ...
  • 实际上,如果您使用Cloudera CDH(推荐安装它的方式)的包裹,它将位于/ opt / cloudera / parcels / CDH中,而这又将符号链接到实际的CDH宗地。 在这个目录下,你会发现非常类似于在/下开源Apache Hadoop的结构。 更多的,如果你浏览/你会发现Hadoop正常的二进制文件是符号链接,通过替代方式指向CDH活动宗地。 例如检查/usr/bin/hadoop 。 此安装策略使Cloudera能够在一秒钟内激活新的CDH,并且看起来像普通的Apache Hadoop结 ...
  • 这可能发生在作业仅检测到本地文件系统的情况下,它使用LocalFileSystem API与本地文件系统中的文件进行交互。 请参考以下链接, 使用MiniDFSCluster单元测试hadoop hdfs着作 这是我们在开发环境中开发的mapreduce / hdfs代码的单元测试选项之一。虽然在hadoop clsuter中部署相同的代码,但输入文件将在HDFS位置。 This probably happens in the scenario where the job only detects the ...
  • 要运行Sqoop命令( sqoop1和sqoop2 ),Hadoop是必备的先决条件。 没有Hadoop库,您无法运行sqoop命令。 Sqoop也在本地模式下工作,因此不要求Hadoop守护进程必须运行。 要在本地模式下运行sqoop, sqoop [tool-name] -fs local -jt local [tool-arguments] Spark上的Sqoop仍在进行中。 见SQOOP-1532 To run Sqoop commands (both sqoop1 and sqoop2), H ...