文档章节

windows上编译和安装hadoop(二)

序章1984
 序章1984
发布于 2016/06/18 11:24
字数 1363
阅读 118
收藏 4

一、 配置hadoop

1.1 程序文件

上篇文章已经编译了hadoop,并拿到一个targz的包,后来发现这个压缩包只是hadoop-common\hadoop-dist\target\hadoop-3.0.0-SNAPSHOT的压缩版本而已,编译好的全部文件就是这个文件夹,所以把这个目录拷贝到你想要的目录,下面称这个程序目录为 %HADOOP_PERFIX% (这个环境变量下面要配置,所以这里先用上)。

1.2 配置文件

下面的配置文件均位于 %HADOOP_PERFIX%\etc 目录,所以只标志文件名

1.2.1 hadoop-env.cmd

在这个文件夹里设置几个环境变量(这里需要改的就是 HADOOP_PERFIX,改成自己本机的目录)

set HADOOP_PREFIX=**你的程序目录**
set HADOOP_CONF_DIR=%HADOOP_PREFIX%\etc\hadoop
set YARN_CONF_DIR=%HADOOP_CONF_DIR%
set PATH=%PATH%;%HADOOP_PREFIX%\bin    

1.2.2 core-site.xml

这个文件默认只有configuratiion节,因为我们部署的是单机节点,直接把wiki上的复制过来就行了。

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://0.0.0.0:19000</value>
  </property>
</configuration>

1.2.3 hdfs-site.xml

同上直接复制到对应文件里。

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>

1.2.4 slaves

用记事本打开这个文件,看一下里面是不是有一行

localhost

1.2.5 mapred-site.xml

这是对 mapReduce nextGen,也就是 YARN 的配置。我们既然学习,自然要学习最新的 ^_^ 。直接复制到文件中即可(如果没有文件,则直接创建)

<configuration>

   <property>
     <name>mapreduce.job.user.name</name>
     <value>%USERNAME%</value>
   </property>

   <property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
   </property>

  <property>
    <name>yarn.apps.stagingDir</name>
    <value>/user/%USERNAME%/staging</value>
  </property>

  <property>
    <name>mapreduce.jobtracker.address</name>
    <value>local</value>
  </property>

</configuration>

1.2.6 yarn-site.xml

同上,是yarn的配置文件,如果没有,则创建。

<configuration>
  <property>
    <name>yarn.server.resourcemanager.address</name>
    <value>0.0.0.0:8020</value>
      </property>

  <property>
    <name>yarn.server.resourcemanager.application.expiry.interval</name>
    <value>60000</value>
  </property>

  <property>
    <name>yarn.server.nodemanager.address</name>
    <value>0.0.0.0:45454</value>
  </property>

  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>

  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>

  <property>
    <name>yarn.server.nodemanager.remote-app-log-dir</name>
    <value>/app-logs</value>
  </property>

  <property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/dep/logs/userlogs</value>
  </property>

  <property>
    <name>yarn.server.mapreduce-appmanager.attempt-listener.bindAddress</name>
    <value>0.0.0.0</value>
  </property>

  <property>
    <name>yarn.server.mapreduce-appmanager.client-service.bindAddress</name>
    <value>0.0.0.0</value>
  </property>

  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>

  <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>-1</value>
  </property>

  <property>
    <name>yarn.application.classpath</name>
    <value>%HADOOP_CONF_DIR%,%HADOOP_COMMON_HOME%/share/hadoop/common/*,%HADOOP_COMMON_HOME%/share/hadoop/common/lib/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/lib/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/lib/*</value>
  </property>
</configuration>

二、 测试hadoop

  1. 用管理员模式打开一个cmd窗口,切换到 %HADOOP_PERFIX% 目录(不用管理员模式的cmd窗口容易出现读取文件的权限问题)。
  2. 运行 etc\hadoop\hadoop-env.cmd 进行环境变量的设置。 因为cmd中的set只对本次cmd有效,所以接下来都在这同一个cmd中操作。
  3. 运行 bin\hdfs namenode -format 命令,初始化一个hdfs文件系统。默认初始化的目录为 当前盘符:\tmp 也就是我在P盘下,会自动创建一个 P:\tmp 目录。
  4. 运行 sbin\start-dfs.cmd

如果正常,会弹出两个cmd窗口千万不要关@_@

运行dfs

2.1 测试 hdfs

打开一个cmd,或者回到最开始的cmd也可以。 先输入hdfs 命令试一下。 如果提示不是内部或外部命令,则重新运行 etc\hadoop\hadoop-env.cmd 如果正常,则会提示一些hdfs的相关命令。 cd到一个目录,往hdfs里放个文件试一下。

cd P:\java\apache-tomcat-8.0.35\logs
hdfs dfs -put localhot.2016-06-10.log /

就是把 .log 这个文件放到 hdfs的 / 下面。 如果有什么奇怪的提示,先不管。如果报错,额... 博主没遇到问题,根据错误信息自行搜索一下。不过我想首先,确保不要手贱的把刚才的两个服务的cmd关了。。 然后看一下文件是不是放到dfs中了。

hdfs dfs -ls /

测试dfs

好了,dfs 测试成功!

2.2 测试MapReduce/YARN

下面就是测试一下mapreduce了。

2.2.1 运行yarn

如果刚才测试dfs的时候你cd到了其他目录,现在需要先cd回到 %HADOOP_PERFIX% 然后运行

sbin\start-yarn.cmd

不出意外的话,又是两个cmd弹了出来,好了,现在yarn就在运行中了。 然后测试一下yarn,运行:

bin\yarn jar %HADOOP_PREFIX%\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.5.0.jar wordcount /localhot.2016-06-10.log /out

简单分析一下这个命令,执行某jar包中的wordcount任务(这个任务是做啥的,等等下面看一下输出)。输出到hdfs的out目录下。不出意外的话,你会拿到这么一个输出。

mapreduce

当然,为了验证是否真的正确,我们得看一下结果。 继续在cmd中输入命令:

hdfs dfs -get /out P:\

把out目录从hdfs中复制到P盘下。 好了,现在打开P:\out 文件夹。发现一个0k的 _SUCCESS 看来只是标志任务成功的文件。还有一个 10k的part-r-00000,打开之后发现:

结果

原来,这个任务是统计文件中各词出现的次数,另外,中文在文件里面乱码了。看来hadoop的编码问题还要解决一下,这个之后再解决吧。

总结

好了,本文就此结束,单机版的hadoop还是挺好部署的。是不是有点成就感爆棚呢,感谢apache,感谢开源社区和各位辛苦的程序猿大大,提供了这么好的软件和wiki。下篇开始部署hbase,再见。

© 著作权归作者所有

序章1984
粉丝 1
博文 15
码字总数 16228
作品 0
杭州
程序员
私信 提问
从零开始的 Win7 64Bit 编译Hadoop3

前言 最近在接触Hadoop方面的知识。去官网逛了一圈发现最新版本已经是3.0.0-alpha1了。刚好在搭建Hadoop的环境,就决定使用最新版本的Hadoop试试水。因为自己使用的机器是windows的,逛了一圈...

Alex_Nine
2016/11/02
2.2K
0
编译hadoop2.x的hadoop-eclipse-plugin和配置

一、编译 1.安装jdk,并且配置好环境变量。 2.eclipse已经下载并且配置好了。 3.安装ant,并且配置好了环境变量。 4.hadoop包在windows本地已经有了,要和hadoop集群上的hadoop包一样,eclip...

cjun1990
2015/07/06
437
0
Eclipse远程调试Hadoop集群

准备工作: Hadoop安装完成(我的版本为1.2.1)。 搞一个比较干净的Eclipse。 下载与Hadoop版本相匹配的插件:hadoop-eclipse-plugin-1.2.1.jar 安装、配置: 1. 将插件拷贝到eclipse安装目录...

Jackson_Mu
2014/12/17
2.7K
1
CentOS 64位系统进行Hadoop2.3.0本地编译及完全分布式集群的部署

本文是在小编的博文《 基于Hadoop1.2.1完全分布式集群的部署 》的基础上写作的,所有硬件环境跟之前博文的硬件环境一模一样,因此本文不想再这方面费过多的口舌,关于hosts配置、JDK的安装和...

灯下黑鬼吹灯
2016/11/28
97
0
windows上编译和安装hadoop2 (一)

本文操作来自hadoop2官方wiki 博主进行了稍许整理,另外遇到一些问题,参考搜索引擎 一、编译Hadoop 1.1 部署编译环境 博主曾尝试使用官方提供的依赖软件最新版,被翻来覆去的打了好几次脸,...

在别处的老张头
2016/06/16
599
0

没有更多内容

加载失败,请刷新页面

加载更多

程序设计基础(C)第06讲例程

1summing.c /* summing.c -- 根据用户键入的整数求和 */#include <stdio.h>int main(void){ long num; long sum = 0L; /* 把sum 初始化为0 */ int status; p......

树人大学数字媒体吴凡
19分钟前
4
0
聊聊nacos config的publishConfig

序 本文主要研究一下nacos config的publishConfig ConfigController nacos-1.1.3/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigController.java @Controller@R......

go4it
46分钟前
3
0
Eureka应用注册与集群数据同步源码解析

在之前的EurekaClient自动装配及启动流程解析一文中我们提到过,在构造DiscoveryClient类时,会把自身注册到服务端,本文就来分析一下这个注册流程 客户端发起注册 boolean register() t...

Java学习录
55分钟前
11
0
Java描述设计模式(15):责任链模式

本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景描述 1、请假审批流程 公司常见的请假审批流程:请假天数 当 day<=3 天,项目经理审批当 3<day<=5 天,部门经理审批当 day>5 天...

知了一笑
今天
10
0
总结:数组与链表

1、内存申请:数组在内存上是连续的空间;链表,内存地址上可以是不连续的。 2、查询速度:数组可以随机访问,链表必须顺序访问,即从首个元素开始遍历,逐个查找,所以数组查询很快。 3、写入...

浮躁的码农
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部