席卷东瀛底同款益智小游 - Q universe#iOS #Android

章来源:http://www.powerxing.com/hadoop-build-project-using-eclipse/

大多数益智游戏还没有复杂的操作,没有动作游戏的华,也无走酷游戏的烦乱刺激,更未曾剧情,它目的在于操练而的大脑,着重考验玩家的洞察力、推理能力仍然逻辑思维能力,前出藏益智游戏数独门空间、移动箱子和各样各类的迷宫游戏,而先天假如叫我们推荐的同样款新的益智游戏——Q
universe。

行使Eclipse编译运行MapReduce程序 Hadoop2.6.0_Ubuntu/CentOS

准课程介绍的凡哪些当 Ubuntu/CentOS 中行使 Eclipse 来开 MapReduce
程序,在 Hadoop 2.6.0
下验证通过。即便咱得应用命令行编译打包运行自己的MapReduce程序,但终究编写代码不便于。使用
Eclipse,大家可平素对 HDFS
中的文件举办操作,可以向来运行代码,省去许多麻烦的指令。本学科由明斯克高校数据库实验室出品,转载请注明。

Screenshot_20151226-190321

环境

依学科在 Hadoop 2.6.0 下验证通过,适用于 Ubuntu/CentOS
系统,理论及可用于其他原生 Hadoop 2 版本,如 Hadoop 2.4.1,Hadoop
2.7.1。

准学科紧要测试环境:

  • Ubuntu 14.04
  • Hadoop 2.6.0(伪分布式)
  • Eclipse 3.8

此外,本读本在 CentOS 6.4 系统受也印证通过,对 Ubuntu 与 CentOS
的异配置的处起作出了声明。

2015年东瀛苹果店与Google商店免费下载使用第一号称,拿到 CEDEC2015
游戏设计类优异奖,并当选日本 Apple AppStore Best of 2015,它就是是创出 800
万下载量,风靡东瀛之益智游戏 Q universe。

安装 Eclipse

当 Ubuntu 和 CentOS 中安装 Eclipse
的法有所不同,但之后的配置和利用是一样的。

当 Ubuntu 中安装 Eclipse,可从 Ubuntu
的软件基本直接搜索安装,在桌面右侧任务栏,点击“Ubuntu软件基本”。

图片 1

Ubuntu软件基本

以右手上斗搜索栏中找 eclipse,在检索结果丁单击 eclipse,并点击安装。

图片 2

安装Eclipse

等候安装好即可,Eclipse 的默认安装目录也:/usr/lib/eclipse。

每当 CentOS 中装置 Eclipse,需要下载安装程序,我们采用 Eclipse IDE for
Java Developers 版:

下载后行如下命令,将 Eclipse 安装至 /usr/lib 目录中:

Shell 命令

sudo tar -zxf ~/下载/eclipse-java-mars-1-linux-gtk*.tar.gz -C /usr/lib

 

解压后即可使。在 CentOS
中可认为程序创设桌面快速格局,如下图所映现,点击桌面右键,拔取创制启动器,填写名称及顺序地方(/usr/lib/eclipse/eclipse):

图片 3

安装Eclipse

Q宇宙是同等悠悠可以叫你上瘾的益智游戏,简单有趣,又最为具挑战性。Q 宇宙共有 21
只戏等,每个阶段有20独卡,你用基于各国一样关之要求完成娱乐,而完成娱乐格局,则发许多种。你需要在屏幕上写出任意图形,来直接效率为粉黑色小球,使其滚来杯子、触碰墙壁等,而玩家有众多蹩脚尝试时,也不论任何步数限制。这不单考验了您的洞察力和逻辑思考,也考验了假设否是平枚手残(小编便是手残,平昔画不出一致漫漫直线)。

安装 Hadoop-Eclipse-Plugin

要当 Eclipse 上编译和周转 MapReduce 程序,需要安装
hadoop-eclipse-plugin,可下充斥 Github
上的 hadoop2x-eclipse-plugin(备用下载地址:http://pan.baidu.com/s/1i4ikIoP)。

下载后,将 release 中的 hadoop-eclipse-kepler-plugin-2.6.0.jar
(还提供了 2.2.0 和 2.4.1 版本)复制到 Eclipse 安装目录的 plugins
文件夹着,运行 eclipse -clean 重开 Eclipse
即可(添加插件后止待周转一破该令,未来按正常艺术启动就推行了)。

Shell 命令

# 解压到 ~/下载 中
unzip -qo ~/下载/hadoop2x-eclipse-plugin-master.zip -d ~/下载 
# 复制到 eclipse 安装目录的 plugins 目录下
sudo cp ~/下载/hadoop2x-eclipse-plugin-master/release/hadoop-eclipse-plugin-2.6.0.jar /usr/lib/eclipse/plugins/ 
# 添加插件后需要用这种方式使插件生效
/usr/lib/eclipse/eclipse -clean 

Screenshot_20151226-200032

配置 Hadoop-Eclipse-Plugin

每当后续安排前请确保已经开了 Hadoop。

启航 Eclipse 后就是可以左边的Project Explorer中看到 DFS
Locations(若盼的凡 welcome 界面,点击左上角的 x
关闭就可以看到了。CentOS 需要切换 Perspective
后才可以见到,即属下去配置步骤的老二步)。

图片 4

设置好Hadoop-Eclipse-Plugin插件后底职能

插件需要越来越的安排。

首先步:采用 Window 菜单下之 Preference。

图片 5

打开Preference

此时会弹有一个窗体,窗体的左会多生 Hadoop Map/Reduce
选项,点击是选项,采取 Hadoop
的安装目录(如/usr/local/hadoop,Ubuntu不好选目录,直接输入就实施)。

图片 6

挑 Hadoop 的安目录

仲步:切换 Map/Reduce 开发视图,选取 Window 菜单下摘 Open
Perspective -> Other(CentOS 是 Window -> Perspective -> Open
Perspective -> Other),弹出一个窗体,从中接纳 Map/Reduce
选项即可开展切换。

图片 7

切换 Map/Reduce 开发视图

其三步:建立和 Hadoop 集群的接连,点击 Eclipse软件右下角的 Map/Reduce
Locations 面板,在面板中单击右键,接纳 New Hadoop Location。

图片 8

确立与 Hadoop 集群的连天

在弹出来的 General 选项面板中,General 的设置要和 Hadoop
的部署一致。一般六只 Host 值是同的,如倘使伪分布式,填写 localhost
即可,另外我用的Hadoop伪分布式配置,设置
fs.defaultFS 为 hdfs://localhost:9000,则 DFS Master 的 Port 要转移也
9000。Map/Reduce(V2) Master 的 Port 用默认的即可,Location Name
随意填入。

末之安如下图所示:

图片 9

Hadoop Location 的设置

Advanced parameters 选项面板是本着 Hadoop 参数举行配置,实际上即使是填写
Hadoop 的布置项(/usr/local/hadoop/etc/hadoop中的配置文件),如我安排了
hadoop.tmp.dir
,就设举行相应的修改。但修改起来会于麻烦,我们得经复制配置文件之点子解决(下边会说及)。

可想而知,大家假设配置 General 就推行了,点击 finish,Map/Reduce Location
就创办好了。

再就是,Q宇宙也本着您的数学和情理水平有要求,因为角度与线条的长短是耍的要。比如,请吃藏黑色之球体接触到革命的区域(下图为手残小编的著述):

以 Eclipse 中操作 HDFS 中之文书

安排好后,点击左侧 Project Explorer 中的 MapReduce Location
(点击三角形展开)就会从来翻 HDFS 中之公文列表了(HDFS
中假诺发出文件,如下图是 WordCount
的出口结果),双击可以查内容,右键点击可以上传、下载、删除 HDFS
中之公文,无需另行经繁琐的 hdfs dfs -ls 等一声令下举办操作了。

图片 10

以Eclipse查看HDFS中的文件内容

假使不能查看,可右键点击 Location 尝试 Reconnect 或还开 Eclipse。

Tips

HDFS 中的情变更后,Eclipse 不汇合伙刷新,需要右键点击 Project
Explorer中的 MapReduce Location,选取 Refresh,才可以顾反后底文书。

对于难度比特别之关卡,它会叫来确切的提拔,比如:请让褐色之球接触到红区域,也就是说你可以杠杆原理,试着自一定低度要重物落下。

在 Eclipse 中创建 MapReduce 项目

点击 File 菜单,选择 New -> Project…:

图片 11

创建Project

选择 Map/Reduce Project,点击 Next。

图片 12

创建MapReduce项目

填写 Project name 为 WordCount 即可,点击 Finish 就创办好了色。

图片 13

填写项目名为

这儿以左的 Project Explorer 就可以看出刚才建立之花色了。

图片 14

色开创好

紧接着右键点击刚成立的 WordCount 项目,采纳 New -> Class

图片 15

新建Class

亟待填写简单个地点:在 Package 处填写 org.apache.hadoop.examples;在 Name
处填写 WordCount。

图片 16

填写Class信息

创 Class 完成后,在 Project 的 src 中虽可知看 WordCount.java
这个文件。将如下 WordCount 的代码复制到拖欠公文中。

 1 package org.apache.hadoop.examples;
 2  
 3 import java.io.IOException;
 4 import java.util.StringTokenizer;
 5  
 6 import org.apache.hadoop.conf.Configuration;
 7 import org.apache.hadoop.fs.Path;
 8 import org.apache.hadoop.io.IntWritable;
 9 import org.apache.hadoop.io.Text;
10 import org.apache.hadoop.mapreduce.Job;
11 import org.apache.hadoop.mapreduce.Mapper;
12 import org.apache.hadoop.mapreduce.Reducer;
13 import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
14 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
15 import org.apache.hadoop.util.GenericOptionsParser;
16  
17 public class WordCount {
18  
19   public static class TokenizerMapper 
20        extends Mapper<Object, Text, Text, IntWritable>{
21  
22     private final static IntWritable one = new IntWritable(1);
23     private Text word = new Text();
24  
25     public void map(Object key, Text value, Context context
26                     ) throws IOException, InterruptedException {
27       StringTokenizer itr = new StringTokenizer(value.toString());
28       while (itr.hasMoreTokens()) {
29         word.set(itr.nextToken());
30         context.write(word, one);
31       }
32     }
33   }
34  
35   public static class IntSumReducer 
36        extends Reducer<Text,IntWritable,Text,IntWritable> {
37     private IntWritable result = new IntWritable();
38  
39     public void reduce(Text key, Iterable<IntWritable> values, 
40                        Context context
41                        ) throws IOException, InterruptedException {
42       int sum = 0;
43       for (IntWritable val : values) {
44         sum += val.get();
45       }
46       result.set(sum);
47       context.write(key, result);
48     }
49   }
50  
51   public static void main(String[] args) throws Exception {
52     Configuration conf = new Configuration();
53     String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
54     if (otherArgs.length != 2) {
55       System.err.println("Usage: wordcount <in> <out>");
56       System.exit(2);
57     }
58     Job job = new Job(conf, "word count");
59     job.setJarByClass(WordCount.class);
60     job.setMapperClass(TokenizerMapper.class);
61     job.setCombinerClass(IntSumReducer.class);
62     job.setReducerClass(IntSumReducer.class);
63     job.setOutputKeyClass(Text.class);
64     job.setOutputValueClass(IntWritable.class);
65     FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
66     FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
67     System.exit(job.waitForCompletion(true) ? 0 : 1);
68   }
69 }

 

图片画这样丑,是以用底指,而前几天戏还未扶助用画来写,但是比如开发者所说,他们在开发是功用了。然后,你要就关卡拿到点数,来解锁下一个流的玩耍。当您自己脑子不敷用,绞尽脑汁也得不了常事,可以点击左上方的唤醒(hint),使用点数购买技术视频,来提携而就娱乐。但是提议大家不要这样做,点往往得慎用。

通过 Eclipse 运行 MapReduce

当运作 MapReduce
程序前,还亟需实施同一桩根本操作(也虽然是地点提到的经复制配置文件解决参数设置问题):将
/usr/local/hadoop/etc/hadoop 将官发出修改过的配备文件(如伪分布式需要
core-site.xml 和 hdfs-site.xml),以及 log4j.properties 复制到 WordCount
项目下的 src 文件夹(~/workspace/WordCount/src)中:

cp /usr/local/hadoop/etc/hadoop/core-site.xml ~/workspace/WordCount/src
cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml ~/workspace/WordCount/src
cp /usr/local/hadoop/etc/hadoop/log4j.properties ~/workspace/WordCount/src

 

从没复制那一个文件之说话程序将不可能正确运行,本学科最终再一次解释为啥用复制这多少个文件。

复制成功后,务必右键点击 WordCount 拔取 refresh
举行刷新(不会师自动刷新,需要手动刷新),可以观察文件结构如下所示:

图片 17

WordCount项目文件结构

点击工具栏中的 Run 图标,或者右键点击 Project Explorer 中之
WordCount.java,选取 Run As -> Run on Hadoop,就可以运行 MapReduce
程序了。可是由于没有点名参数,运行时会面唤醒 “Usage:
wordcount “,需要经Eclipse设定一下运行参数。

右键点击刚制造的 WordCount.java,选取 Run As -> Run
Configurations,在此地可以装运行时之连带参数(如若 Java Application
下边没有 WordCount,那么需要先双击 Java Application)。切换至
“Arguments” 栏,在 Program arguments 处填写 “input output” 就得了。

图片 18

安装程序运行参数

要么为堪直接当代码中安好输入参数。可将代码 main()函数的 String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); 改为:

// String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
String[] otherArgs=new String[]{"input","output"}; /* 直接设置输入参数 */

 

设定参数后,再一次运行程序,可以视运行成功的指示,刷新 DFS Location
后也能望输出的 output 文件夹。

图片 19

WordCount 运行结果

时至前些天,你就得下 Eclipse 方便的拓展 MapReduce程序的开了。

为何慎用点数为,原因是公可以交打的论坛或者社交网络求助,而游戏内置的论坛来那多少个玩家,可以共谈论,从此你即使不是一个人口形影相对的打单机游戏咯。

在 Eclipse 中运行 MapReduce 程序会赶上的问题

在以 Eclipse 运行 MapReduce 程序时,会宣读取 Hadoop-Eclipse-Plugin 的
Advanced parameters 作为 Hadoop
运行参数,假诺我们无开展修改,则默认的参数其实即使是单机(非分布式)参数,因而程序运行时凡读取本地目录而不是
HDFS 目录,就汇合唤起 Input 路径不在。

Exception in thread "main" org.apache.hadoop.mapreduce.lib.input.InvalidInputException: 
Input path does not exist: file:/home/hadoop/workspace/WordCountProject/input

 

从而大家仍旧修改插件参数,要么用配置文件复制到花色中之 src
目录来掩盖参数,才会被程序可以对运行。

此外,log4j 用于记录程序的输出日记,需要 log4j.properties
这一个布局文件,假设没复制该文件及花色面临,运行程序后每当 Console
面板中会并发警示指示:

log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

 

虽未影响程序的不错运行的,但程序运行时不可以观其它提示消息(只雅观看出错信息)。

在Q宇宙风靡日本之后,面向北美暨非洲市场推出了全新的远处版本。同时增加了初效率排名榜、每一日登录奖励、更丰富多彩的图,以及地点提到的技能摄像。玩家可以排榜榜中翻自己在交际网络被具备阶段同各样阶段的名次,甚至是天下的名次,画得进一步少,用之步数越少,名次就更为强。

参考资料

如上所述,这款概念简单,又极雄厚挑战性的益智游戏,是否唤起了而的心机风暴,快来尝试各样不同之化解方案吧。

使信息:适用于 中兴 & surface 设备 iOS6.0 及重新强网版本,大小为 70.9
MB;适用于安卓设备 Android 2.3和 以上系版本,大小为46 MB

本文由易屁屁原创,撰稿作者:Cher

得到下载地址:传送门→

爱屁屁,取自 APP(application)谐音,专注让移动
APPS(应用/游戏)个性化评测,意在令而存之各一样天和怦然心动的强格调应用相遇。更多特殊应用推荐可活动官网:http://www.appnz.com/
关注微信公众号:爱屁屁(ID:AppKeji)不定时发放兑换码等利!

发表评论

电子邮件地址不会被公开。 必填项已用*标注