Sqoop安装与MapReduce读MySql写HDFS加载不了JDBC驱动问题

                                                                                                                                                         安装Sqoop

1.下载

sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
 sqoop-1.4.6.tar.gz

2.解压

tar -xf sqoop-1.4.6.tar.gz

3.vi /etc/profile

#sqoop
export SQOOP_PATH=/home/softs/sqoop-1.4.6
export PATH=$PATH:$SQOOP_PATH/bin

5.运行

出错:错误:找不到或无法加载主类 org.apache.sqoop.sqoop

解决方法:

解压sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz,进入该文件解压后的文件夹,[root@master sqoop-1.4.6.bin__hadoop-2.0.4-alpha]# cp sqoop-1.4.6.jar /home/softs/hadoop/share/hadoop/yarn/  #复制sqoop-1.4.6.jar到hadoop/share/hadoop/yarn/下

这里我想到了之前我运行MapReduce代码读取Mysql写入到HDFS中出现错误:

[root@master MySqlMapReduceToAvroHDFS]# hadoop jar export-hbase-data-jar-with-dependencies.jar mysql-connector-java-5.1.32.jar MySqlMapReduceToAvroHDFSOutput 
17/09/20 17:27:12 INFO client.RMProxy: Connecting to ResourceManager at master.hadoop/10.9.148.193:8032
17/09/20 17:27:12 INFO client.RMProxy: Connecting to ResourceManager at master.hadoop/10.9.148.193:8032
17/09/20 17:27:12 WARN mapreduce.JobResourceUploader: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
17/09/20 17:27:20 INFO mapreduce.JobSubmitter: Cleaning up the staging area /tmp/hadoop-yarn/staging/root/.staging/job_1505372208302_0004
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.hadoop.mapreduce.lib.db.DBInputFormat.setConf(DBInputFormat.java:171)
at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:76)
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:136)
at org.apache.hadoop.mapred.JobConf.getInputFormat(JobConf.java:689)
at org.apache.hadoop.mapreduce.JobSubmitter.writeOldSplits(JobSubmitter.java:330)
at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:322)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:198)
at org.apache.hadoop.mapreduce.Job$11.run(Job.java:1341)
at org.apache.hadoop.mapreduce.Job$11.run(Job.java:1338)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)

解决方法:

[root@master MySqlMapReduceToAvroHDFS]# cp mysql-connector-java-5.1.32.jar /home/softs/hadoop/share/hadoop/yarn/

复制jdbc的jar包到hadoop里,问题解决

[root@master toTextHDFS]# hadoop jar export-hbase-data-jar-with-dependencies.jar
17/09/21 11:08:54 INFO client.RMProxy: Connecting to ResourceManager at master.hadoop/10.9.148.193:8032
17/09/21 11:08:54 INFO client.RMProxy: Connecting to ResourceManager at master.hadoop/10.9.148.193:8032
17/09/21 11:08:54 WARN mapreduce.JobResourceUploader: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
17/09/21 11:09:02 INFO mapreduce.JobSubmitter: number of splits:2
17/09/21 11:09:02 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1505372208302_0011
17/09/21 11:09:03 INFO impl.YarnClientImpl: Submitted application application_1505372208302_0011
17/09/21 11:09:03 INFO mapreduce.Job: The url to track the job: http://master.hadoop:8088/proxy/application_1505372208302_0011/
17/09/21 11:09:03 INFO mapreduce.Job: Running job: job_1505372208302_0011
17/09/21 11:09:26 INFO mapreduce.Job: Job job_1505372208302_0011 running in uber mode : false
17/09/21 11:09:26 INFO mapreduce.Job:  map 0% reduce 0%
17/09/21 11:09:36 INFO mapreduce.Job:  map 50% reduce 0%
17/09/21 11:09:39 INFO mapreduce.Job:  map 100% reduce 0%
17/09/21 11:09:47 INFO mapreduce.Job:  map 100% reduce 100%
17/09/21 11:09:47 INFO mapreduce.Job: Job job_1505372208302_0011 completed successfully
17/09/21 11:09:47 INFO mapreduce.Job: Counters: 50
File System Counters
FILE: Number of bytes read=126
FILE: Number of bytes written=412175
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=150
HDFS: Number of bytes written=108
HDFS: Number of read operations=7
HDFS: Number of large read operations=0
HDFS: Number of write operations=2
Job Counters 
Killed map tasks=1
Launched map tasks=2
Launched reduce tasks=1
Other local map tasks=2
Total time spent by all maps in occupied slots (ms)=17342
Total time spent by all reduces in occupied slots (ms)=6745
Total time spent by all map tasks (ms)=17342
Total time spent by all reduce tasks (ms)=6745
Total vcore-milliseconds taken by all map tasks=17342
Total vcore-milliseconds taken by all reduce tasks=6745
Total megabyte-milliseconds taken by all map tasks=17758208
Total megabyte-milliseconds taken by all reduce tasks=6906880
Map-Reduce Framework
Map input records=3
Map output records=3
Map output bytes=114
Map output materialized bytes=132
Input split bytes=150
Combine input records=0
Combine output records=0
Reduce input groups=3
Reduce shuffle bytes=132
Reduce input records=3
Reduce output records=3
Spilled Records=6
Shuffled Maps =2
Failed Shuffles=0
Merged Map outputs=2
GC time elapsed (ms)=1116
CPU time spent (ms)=4500
Physical memory (bytes) snapshot=801751040
Virtual memory (bytes) snapshot=2680033280
Total committed heap usage (bytes)=477626368
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters 
Bytes Read=0
File Output Format Counters 
Bytes Written=108

6.测试:成功

[root@master MySqlMapReduceToAvroHDFS]# sqoop list-databases --connect jdbc:mysql://10.9.148.193:3306/ --username root --password root123@
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/softs/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/softs/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
17/09/21 11:05:20 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
17/09/21 11:05:20 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
17/09/21 11:05:20 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
information_schema
idb
mysql
performance_schema
sys


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于hadoop的Hive数据仓库JavaAPI简单调用的实例,关于Hive的简介在此不赘述。hive提供了三种用户接口:CLI,JDBC/ODBC和 WebUI CLI,即Shell命令行 JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似 WebGUI是通过浏览器访问 Hive 本文主要介绍的就是第二种用户接口,直接进入正题。 1、Hive 安装: 1)hive的安装请参考网上的相关文章,测试时只在hadoop一个节点上安装hive即可。 2)测试数据data文件'\t'分隔: 1 zhangsan 2 lisi 3 wangwu 3)将测试数据data上传到linux目录下,我放置在:/home/hadoop01/data 2、在使用 JDBC 开发 Hive 程序时, 必须首先开启 Hive 的远程服务接口。使用下面命令进行开启: Java代码 收藏代码 hive --service hiveserver >/dev/null 2>/dev/null & 我们可以通过CLI、Client、Web UI等Hive提供的用户接口来和Hive通信,但这三种方式最常用的是CLI;Client 是Hive的客户端,用户连接至 Hive Server。在启动 Client 模式的时候,需要指出Hive Server所在节点,并且在该节点启动 Hive Server。 WUI 是通过浏览器访问 Hive。今天我们来谈谈怎么通过HiveServer来操作Hive。   Hive提供了jdbc驱动,使得我们可以用Java代码来连接Hive并进行一些类关系型数据库的sql语句查询等操作。同关系型数据库一样,我们也需要将Hive的服务打开;在Hive 0.11.0版本之前,只有HiveServer服务可用,你得在程序操作Hive之前,必须在Hive安装的服务器上打开HiveServer服务,如下: 1 [wyp@localhost/home/q/hive-0.11.0]$ bin/hive --service hiveserver -p10002 2 Starting Hive Thrift Server 上面代表你已经成功的在端口为10002(默认的端口是10000)启动了hiveserver服务。这时候,你就可以通过Java代码来连接hiveserver,代码如下:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值