开始玩hadoop7--hadoop 2.6.0 在eclipse里安装(第一个map程序)
来源:互联网 发布:淘宝开店本人营业执照 编辑:程序博客网 时间:2024/05/19 16:38
经过之前的步骤,我的ubuntu环境全部搭建完毕
我的建议是安全起见,每次不用hadoop 的时候,从namenode里把hadoop停掉;
./sbin/stop-dfs.sh
./sbin/stop-yarn.sh
用的时候在把它重新启动;
bin/hadoop fs -put input/ /porrylee // input is old path /porrylee/input is new path
bin/hadoop fs -ls /porrylee/input/ //查看hadoop 对应文件夹下的文件 类似于ls功能
bin/hadoop jar xxx yy zz mm //xxx表示对应的路径jar包,yy表示程序名字,zz表示对应文件夹,mm表示结果路径
hadoop@master:~/hadoop-2.6.0$ bin/hdfs dfs -cat /output/wordcount3/* //*表示把文件全部读出,而忽视文件夹
在ubuntu14.04 下安装eclipse
sudo apt-get install eclipse
安装成功后,yong
whereis eclipse 命令 看看eclipse 都安装到了哪些目录
usr/lib/eclipse/plugin 把hadoop 2.6.0 的jar插件包 放到这个文件夹下
网上下载就可以了
sudo cp XXX YYY # 移动XXX复制到新路径YYY
然后关闭,再打开eclipse
1、window -->preference hadoop Map/Reduce 写入hadoop 的安装目录
2、window--> open perspective --other ---map/reduce
3、window--> show view--other ---map/reduce
然后在下方mapreduce选项卡,右键,new一个新的配置
location name :自己喜欢的名字
master mapreduce和dfs 要配置成原来配置 好的
mapreduce master 的port 9001
dfs master 的Port 9000
左边多了一个dfs location的东西,选择disconnect --refresh 一下。
然后就可以用了
测试文本数据:
Apr 23 11:49:54 hostapd: wlan0: STA 14:7d:c5:9e:fb:84
Apr 23 11:49:52 hostapd: wlan0: STA 74:e5:0b:04:28:f2
Apr 23 11:49:50 hostapd: wlan0: STA cc:af:78:cc:d5:5d
Apr 23 11:49:44 hostapd: wlan0: STA cc:af:78:cc:d5:5d
Apr 23 11:49:43 hostapd: wlan0: STA 74:e5:0b:04:28:f2
Apr 23 11:49:42 hostapd: wlan0: STA 14:7d:c5:9e:fb:84
代码:
public class Test_1 extends Configured implements Tool{
enum Counter
{
LINESKIP,//出错的行
}
public static class Map extends Mapper<LongWritable,Text,NullWritable,Text>
{
public void map(LongWritable key, Text value ,Context context)throws IOException, InterruptedException
{
String line=value.toString();//读取数源源
try
{
//数据处理
String[] lineSplit=line.split(" ");
String month =lineSplit[0];
String time= lineSplit[1];
String mac = lineSplit[6];
Text out =new Text(month+' '+time+' '+ mac);
context.write(NullWritable.get(), out); //把所有结果放到value里,不要key /t value 的形式
}
catch(java.lang.ArrayIndexOutOfBoundsException e)
{
context.getCounter(Counter.LINESKIP).increment(1);//出错 数器器加一
return;
}
}
}
@Override
public int run(String[] arg0) throws Exception {
Configuration conf =getConf();
Job job=Job.getInstance(conf,"Test_1");//任务名 旧的写法new Job(conf,"Test_1");或者加上@SuppressWarnings("deprecation")注解
job.setJarByClass(Test_1.class);//指定的class
FileInputFormat.addInputPath(job,new Path(arg0[0]));//输入路径
FileOutputFormat.setOutputPath(job, new Path(arg0[1]));//输出路径
job.setMapperClass(Map.class);//调用上面Map类作为Map任务代码
job.setOutputFormatClass(TextOutputFormat.class);
job.setOutputKeyClass(NullWritable.class);//指定输出的key的格式
job.setOutputValueClass(Text.class);//指定的输出的value的格式
job.waitForCompletion(true);
return job.isSuccessful()?0:1;
}
public static void main(String[] args) throws Exception
{
//BasicConfigurator.configure();
//运行任务
int res =ToolRunner.run(new Configuration(), new Test_1(),args);
System.exit(res);
}
}
然后运行的话要经过以下步骤的配置:
run configurations --新建一个配置--Main 选项卡-- Project 和main 函数要配对上
Argument 选显卡,里的Program Arguments 的内容填写 hdfs://ip:端口/输入绝对路径+“空格”+hdfs://ip:端口/输出绝对路径
apply
运行之前先把测试数据上传到input路径下
这里要注意一下,如果输出路径之前已有,要把之前的路径先删掉,在重新运行生成。刷新目录
configuration--run 然后在refresh 了
输出结果就在之前的路径下了。
eclipse 运行hadoop 的时候会有这个warn: log4j:WARN No appenders could be found for logger
这个是没有配置这个log4j.properties 文件
First one is to just add this line to your main method:
BasicConfigurator.configure();
Second approach is to add this standard log4j.properties (taken from the above mentioned guide) file to your classpath:
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
把log4j.properties文件放到src目录下。
接下来就全部看不到warn了,还可以看到全部输出哦
#后面这个是模仿上面这个写的B1,加一个B1
在log4j.rootLogger=DEBUG, A1,B1
### 输出到日志文件 ###
log4j.appender.B1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.B1.File = logs/log.log
log4j.appender.B1.Append = true
log4j.appender.B1.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.B1.layout = org.apache.log4j.PatternLayout
log4j.appender.B1.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 保存异常信息到单独文件 ###
log4j.appender.B1 = org.apache.log4j.DailyRollingFileAppender
log4j.appender.B1.File = logs/error.log ## 异常日志文件名
log4j.appender.B1.Append = true
log4j.appender.B1.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
log4j.appender.B1.layout = org.apache.log4j.PatternLayout
log4j.appender.B1.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
调用的话,在main方法里写
PropertyConfigurator.configure( " D:/Code/conf/log4j.properties " );
Logger logger = Logger.getLogger(TestLog4j. class );
logger.debug( " debug " );
logger.error( " error " );
就可以了。
- 开始玩hadoop7--hadoop 2.6.0 在eclipse里安装(第一个map程序)
- 开始玩hadoop8--hadoop 2.6.0实战(第一个reduce程序,ubuntu 14.04)倒排索引
- Eclipse里编写第一个Hadoop程序
- eclipse下运行第一个hadoop程序
- 开始玩第一个网络游戏
- 开始吧!Arduino 少年(安装,编译,第一个程序)
- 在eclipse下跑第一个map-reduce程序-转载分享
- hadoop学习之第一个Map/Reduce程序
- Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序
- Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序
- Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序
- [转载]Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序
- Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序
- Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序
- Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序(3)
- Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序
- Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序
- Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序
- iOS synchronized的作用
- FrameWork浅析
- D3D绘制字体
- Vijos P1021Victoria的舞会1
- 剑指offer: 从上往下打印二叉树(树)
- 开始玩hadoop7--hadoop 2.6.0 在eclipse里安装(第一个map程序)
- Linux主流桌面环境简单介绍
- 黑马程序员——I/O流的常用基类
- 【c语言】字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”
- android编辑访问网络图片
- 减少HTTP请求之合并图片详解(大型网站优化技术)
- uc/os-ii信号量集
- 剑指offer:用两个栈实现队列(栈和队列)
- IntelliJ IDEA 14.1.4 导入android项目报错解决方法.md