工具准备
我这里配置的是2.5.2的版本,根据自己的情况选择想要配置的版本。需要准本工具如下,hadoop.dll和winutils.exe要下载对应的版本。(我是在win10下操作的)
一、 hadoop的解压
1、 找一个你想解压的位置解压hadoop-2.5.2.tar.gz到本地并把winutils.exe放到hadoop的bin下,下面是我的解压位置:
2、 把hadoop.dll放到C:\Windows\System32,如下位置所示
3、 配置hadoop的环境变量
在path中加入
修改windows中的hosts文件,路径为C:\Windows\System32\drivers\etc
修改如下:
本地环境搭建完成
二、测试
打包可以通过maven的package直接打包
我用的是sqoop的导入来测试的远程提交,你可以写一个简单的词频统计来测试,其中的ip为集群中主节点是IP地址,测试代码如下:
package cn.edu.zut;
import org.apache.hadoop.conf.Configuration;
import org.apache.sqoop.Sqoop;
import org.apache.sqoop.tool.SqoopTool;
import org.apache.sqoop.util.OptionsFileUtil;
public class MysqlToHDFS {
private static int importMysqlToHDFS() throws Exception {
String[] args = new String[]{
"--connect","jdbc:mysql://ip:3306/ct180808", //url
"--driver", "com.mysql.jdbc.Driver", //驱动,默认为mysql驱动
"--username","root", //数据库用户名
"--password","123456", //数据库用户密码
"--table","ct_user", //指定表名
"--columns","tel,name", //指定列,若是全表导入,需要把此参数去掉
"--target-dir","/hyk/data/mysqlT", //目标hdfs路径
"--input-null-string","N", //string类型空值处理
"--input-null-non-string","N", //非string类型空指处理
"--fields-terminated-by","\t", //指定导入到hdfs中的数据的分割符
"--lines-terminated-by","\n", //指定导入到hdfs中的数据的换行符
"--delete-target-dir", //如果目标hdfs路径存在,则删除,此参数一般不加,以面误删有重要数据的路径