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