解决运行 Hadoop MapReduce 任务时错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster

近来在新安装了 Hadoop 后运行 HDFS 的任务没问题,但一运行 MapReduce 任务时就出错,提示“错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster”。但是在 Hadoop 的 classpath 中明明有该主类所在的包“hadoop-mapreduce-client-app-x.x.x.jar”。查阅了谷歌之后发现还要在 mapred-site.xml 文件中添加 mapreduce 程序所用到的 classpath。在此记录一下,遇到同样问题的朋友可以试一下下面的方法。 想看更多?点我点我 “解决运行 Hadoop MapReduce 任务时错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster”

Wordpress 首页显示文章摘要或者内容以及个性化设置”阅读更多”

Wordpress 首页和归档页面显示文章的方式有两种:内容模式(the_content)和摘要模式(the_excerpt)

内容模式:如果文章设置的有“阅读更多”的标签,即“<!--more-->”,就会显示全部的文章内容,如果有“阅读更多”的标签,则只会显示“阅读标签”前的内容,并在后面添加一个“阅读更多”的链接指向文章剩下的内容。因此,如果文章内容较多的话一定要设置“阅读更多”的标签,否则加载首页的时候会耗费更多的服务器资源(亲测 :(笑尿) )。

摘要模式:只显示文章的摘要,后面跟一个“更多”标签。如果作者没有在编写某篇文章时编辑文章摘要,那么默认截取文章的的前55个字作为摘要显示出来,并添加一个“more”标签(不是“read more”,即“阅读更多”),默认显示为“[…]”。如果作者在编辑文章时编写了文章摘要,那么在首页就只会显示作者编写的摘要,默认不添加“more”标签。因此建议在编写文章的时候顺便编写文章摘要。

我个人认为,内容模式比较适合我,因为可以自定义显示的内容和长度。

下面我来说说如何设置这两种模式以及两种模式的个性化。

想看更多?点我点我 “Wordpress 首页显示文章摘要或者内容以及个性化设置”阅读更多””

基于 IDEA 开发 Hadoop 程序

安装好 Hadoop 之后我们搞 Hadoop 开发总不能只用 vim 吧 :(不高兴) 选择一个顺手的 IDE 是最好的选择,Java 的 IDE 有名的当然是 Eclipse 和 IntelliJ IDEA 了。前者是免费的,而后者呢,虽然专业版是收费的,但是有开源的社区版。对于高级一点的 Java 开发, IDEA 是首选,关于 IDEA 的 专业版,我们可以通过学生邮箱认证来免费使用(关于我们学校申请学生邮箱的文章和学生优惠信息在我之前的问文章里:喜大普奔,HAUT学生邮箱开放注册(内附一些学生优惠)Github Student Pack的申请方法(无需edu邮箱)[内含福利]

这里我已经用学生邮箱申请了一个 JetBrains 账号,凭借着这个账号就可以免费使用 JetBrains 旗下的所有 IDE,每一有效期一年,可以续期,优惠还是挺大的。好了,不打广告了,下面开始正题:基于 IDEA 开发 Hadoop 程序(多图预警 :(滑稽) )。

想看更多?点我点我 “基于 IDEA 开发 Hadoop 程序”

服务器运维的好帮手:Putty 和 WinSCP

对于搞服务器和 Linux 的人来说,SSH 、 FTP、SCP 和 SFTP 协议是经常用到的,Linux 下还好说,有现成的命令可以使用这些协议,然而在 Windows 下,尤其对于新手,使用命令是很难受的事。这里我推荐两个 Windows 下的 SSH 和 SCP 客户端:Putty 和 WinSCP。

想看更多?点我点我 “服务器运维的好帮手:Putty 和 WinSCP”

关于 Java 中的堆内存和栈内存

最近在看 Java 书的过程中发现书中多次提到了堆内存和栈内存。在之前学习的数据结构中,我的认知还仅仅限于堆栈,不知道堆和栈是两个不同的概念。问了算法&数据结构大佬( @Simple )之后自己又上网查了查,才发现原来在 Java 中所说的堆和栈是两个不同的内存区,这里做个笔记。

在 Java 中,栈(stack)是由编译器自动分配和释放的一块内存区域,主要用于存放一些基本类型(8种基本类型:int,short, long, byte, float, double, boolean, char)的变量、指令代码、常量以及对象的引用。

堆(heap)是一个程序运行时动态分配的内存区域,在 Java 中,构建对象时所需要的内存从堆中分配。这些对象通过 new 指令来显式建立,堆内存在使用完毕后,由垃圾回收(GC)器来隐式回收的。

想看更多?点我点我 “关于 Java 中的堆内存和栈内存”

Ubuntu16.04 安装配置 Hadoop3.0.0 —— 集群模式

这篇博客是上一篇:Ubuntu16.04 安装配置 Hadoop3.0.0 —— 单机模式和伪集群模式 的第二部分,即配置 Hadoop 的集群模式。那么接下来的步骤就接着第一部分,假设集群中所有节点都已经按照第一部分配置过了。所以有需要的伙伴们还请先看一下上一篇。 :(小红脸)

其实本来我是打算一下子写完的,谁知到内容太多,编辑器后台占用了太多的 CPU ,导致我网站所在的虚拟主机被服务商给关停了 :(惊哭) 虽然我严重怀疑它的 CPU 是虚标的,但那也没办法,谁让那是免费的虚拟主机呢 :(犀利) 我连夜把网站迁到一位大佬的服务器上才完成了第一部分的教程,虽然延迟高了一点,不过资源不受限了。好了,不发牢骚了,开始第二部分:集群模式的教程。

想看更多?点我点我 “Ubuntu16.04 安装配置 Hadoop3.0.0 —— 集群模式”

Ubuntu16.04 安装配置 Hadoop3.0.0 —— 单机模式和伪集群模式

最近在上大数据课程,老师让自己搞一个 Hadoop 的集群,费了好大劲算是配置好了三个机器的 Hadoop 集群,这里特地记录一下。

本篇是整个配置的第一部分,即单机模式和伪分布式模式,第二部分集群模式的配置见:Ubuntu16.04 安装配置 Hadoop3.0.0 —— 集群模式

环境:Ubuntu 16.04 x64;JDK1.8;Hadoop 3.0.0

2018-3-29 更新:修复设置 Java和Hadoop环境变量的问题,之前配置过的可能需要重新配置

想看更多?点我点我 “Ubuntu16.04 安装配置 Hadoop3.0.0 —— 单机模式和伪集群模式”