Hadoop2.5.2+Sqoop-1.4.6(2.0以上的版本hadoop使用)伪分布式实现mysql数据上传到ndfs

Hadoop2.5.2+Sqoop-1.4.6(2.0以上的版本hadoop使用)伪分布式实现mysql数据上传到ndfs

简单背景:

         环境:mac(64位)上,已经搭建好了hadoop2.5.2基本环境(能跑得动wordcount这个程序)。zookeeper安装

         准备材料:mysql-connection-java-5.1.29bin.jar , sqoop-1.4.5.jar  ,  (hive和hbase 看需要吧) ,还有sqoop的包

         推荐下载链接:按自己的需求去下载吧,下载sqoop的时候需要注意,是下载1.0版本的还是2.0版本的

         下载地址http://mirror.bit.edu.cn/apache/sqoop/

 http://archive.apache.org/dist/hive/hive-0.13.0/

 http://archive.apache.org/dist/hbase/hbase-0.99.0/

         首先,下载好我们的安装文件并解压

         之后呢,我们就要进行最麻烦的的事情就是修改配置文件了

 

首先修改/etc/profile 文件

java_home,hadoop_home,hadoop_mapred_home,sqoop_home,logdir,zookeeper_home 按照自己的安装目录配置好

 

        

然后进行下一步的修改,修改sqoop目录下conf文件夹中sqoop-env.sh,sqoop-site.xml(可能这些文件下载下来时样板文件,自己修改其名称就好)

 

 

sqoop-site.xml我在这里只是修改了名称,里面的内容未做相关的修改,主要是对sqoop-env.sh文件机进行修改

注意HADOOP_MAPRED_HOME需要配置成home/hadoop/software/hadoop-2.5.2,而不是/home/hadoop/software/hadoop-2.5.2/share/hadoop/mapreduce, 配置成后者在执行sqoop import的时候报Hadoop的类找不到,如果出问题的话,可以切换试试。

     

接下来,我们来看看lib下面是否存在sqoop-1.4.x.jar,没有的话,自行下载至此目录下   继续,看看是否有mysql-connection-java-5.x.xxbin.jar 注意,mysql的jar包名称很多是没有带bin的,最好附加上去,不加可能对报错,很奇怪,知道为什么的话请告诉我原因。

        

 

 

最后,把hadoop-mapreduce相关的包全部从你的

/Users/ts/Downloads/hadoop-2.5.2/share/hadoop/mapreduce 下面所有的jar包   拷贝到   /Users/ts/Downloads/sqoop-1.4.6.bin_hadoop-2.0.4-alpha/lib   里面

   

去terminal里面看看我们的sqoop有没有安装好:

安装ok我们进行下一步的操作,下一步干嘛呢?试着和我们的mysql进行连接吧。首先你要开启自己的mysql的服务这是前提。我的mysql没有设置密码,所以下面命令里面没  --password yourpassword ,有的话自己加上。我把自己mysql里面所有的库展示了出来

能成功表示我们sqoop和mysql联通上面是没有问题滴,阔以进行接下来革命性壮举就是把mysql的数据通过我们的sqoop到hdfs上面!

 

首先你要启动你的hadoop, 一般来说是start-all.sh,完全开始后jps看看你的一些datanode和manenode是不是启动了,没有的话看看自己的hadoop一些配置上是不是有配错的地方,我在配置的时候就有遇到之前虽然hadoop能够运行wordcount但是之后用sqoop出错,修改的地方是hadoop里面yarn-site.xml文件的修改,参考如下:

         输入命令:

sqoop import --connect jdbc:mysql://127.0.0.1:3306/ts --usernameroot --table t_user --fields-terminated-by ' '

然后,命令行没有报错,去hadoop目录看看有没有生成

,这个基本上你就成功了。出错了,请“度娘谷哥”。中间我也遇到过各种奇葩问题。比如我输入以下命令:

sqoop import --connect jdbc:mysql://127.0.0.1:3306/ts --usernameroot --direct --table person --fields-terminated-by ':' --target-dir /input 会出错

Cannot run program "mysqldump": error=2, No such file ordirectory

应该是自己的这些命令没有深入的去学习,只是泛泛而看

 

推荐网址:http://www.cnblogs.com/edisonchou/p/4440216.html

 http://bit1129.iteye.com/blog/2169922

 https://sqoop.apache.org/docs/1.4.5/SqoopUserGuide.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值