hadoop2.8.0 + jdk1.7 + windows7(不用linux环境) 搭建与异常处理

本文详细介绍了如何在Win7 64位系统上搭建Hadoop2.8.0环境,包括下载与解压、配置环境变量、下载必要组件、修改配置文件、格式化namenode、启动服务以及运行单词计数Demo等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文所写内容,在win7(64位)环境下搭建hadoop2.8.0环境,亲测可行。

注:1、hadoop3以上版本需jdk1.8以上


一、下载hadoop2.8.0,解压

地址:http://hadoop.apache.org/releases.html


如果不需要源码的话,下载binary就可以了


二、配置环境变量

1、配置HADOOP_HOME(根据自身情况配置)


2、往path中添加%HADOOP_HOME%\bin;%HADOOP_HOME%\sbin;



三、下载hadoop.dll和winutils.exe

其中hadoop.dll各个版本不兼容,如果你不是下载hadoop2.8.0,则去百度搜索下载对应版本的hadoop.dll和winutils.exe,本文仅提供hadoop2.8.0版本的下载地址

下载地址:http://download.youkuaiyun.com/detail/a327919006/9882492

下载后把这hadoop.dll和winutils.exe放到hadoop-2.8.0\bin,hadoop.dll也放一份到C:\Windows\System32下


四、修改配置文件

文件目录:hadoop-2.8.0\etc\hadoop

1、core-site.xml

<configuration>
	<property>  
       <name>fs.defaultFS</name>
       <value>hdfs://localhost:9000</value>
    </property>
	
	<property>
       <name>hadoop.tmp.dir</name>
       <value>/E:/hadoop-2.8.0/tmp</value>
    </property>
	<property>
        <name>dfs.name.dir</name>
        <value>/E:/hadoop-2.8.0/tmp/name</value>
    </property>
</configuration>

注:hadoop.tmp.dir与dfs.name.dir可根据自身情况配置目录



2、hdfs-site.xml

<configuration>
	<property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/E:/hadoop-2.8.0/tmp/data</value>
    </property>
</configuration>

注:dfs.data.dir可根据自身情况配置目录


3、重名mapred-site.xml.template为mapred-site.xml然后配置

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

4、yarn-site.xml


<configuration>

<!-- Site specific YARN configuration properties -->
	<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.resourcemanager.hostname</name>
       <value>localhost</value>
    </property>
</configuration>

注:yarn.resourcemanager.hostname可根据自身情况配置目录


然后可以起个cmd,运行 hadoop version,结果如下:


五、格式化namenode

1、cmd下,进入hadoop所在盘,我电脑是e盘

2、执行hadoop namenode -format   没报错的情况下,只要执行一次


执行后会根据core-site.xml配置的目录,进行格式化


执行完,看下打印出来的日志的最后几行,应该有一句类型 ***(你所配置的目录)***  has been successfully formatted.说明格式化成功


六、启动dfs和yarn

1、cmd下执行start-dfs,实际上运行的文件在hadoop-2.8.0\sbin下,因为配置了环境变量,可以直接执行

启动后会自动启两个cmd窗口,一个是datanode,一个是namenode,不要关掉,关掉就等于停止dfs

启动完后可访问节点管理GUI, 地址:http://localhost:50070/  

2、cmd下执行start-yarn


启动后也会起两个cmd窗口,一个是nodemanager,一个是resoucemanager,不要关掉,关掉等于停止yarn

启动完后可访问资源管理GUI,地址:http://localhost:8088/


七、运行hadoop提供的demo,计算单词数量

1、在你电脑任意位置创建一个文本文件如E:\hadoop-2.8.0\tmp\hadoop_test.txt

输入一些英文单词如:

my name is zhangsan.
I'm from china.
I'm ok.

2、用dfs创建一个文件夹,名字任意



3、把hadoop_test.txt上传到dfs,并查看

-put 是上传命令

-ls是查看命令

如图:已经上传成功


4、运行hadoop提供的demo,计算单词数

demo文件所在目录为E:\hadoop-2.8.0\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.8.0.jar

cmd下运行hadoop jar E:\hadoop-2.8.0\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.8.0.jar wordcount /zhangsan/input/ /zhangsan/output/


运行结果在dfs中的/zhangsan/output文件夹下,可用命令查看



到此为止:hadoop环境及demo运行已完成。大笑下面是我遇到的坑,有的坑可能忘了记录,但是只要拿异常百度下,都能找到解决方法。


异常处理:

一、hadoop jar E:\hadoop-2.8.0\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.8.0.jar wordcount /zhangsan/input/ /zhangsan/output/


1、错误信息:17/06/26 16:52:28 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy isRetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)


解决办法:在yare-site.xml里添加如下信息之后问题得到解决


<property>
   <name>yarn.resourcemanager.hostname</name>
   <value>localhost</value>
</property>


2、错误信息:org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/chennan/output already exists


解决办法:输出文件夹hadoop要自行创建,如果输出文件夹已手工创建,删除即可


二、在hadoop/sbin下启动start-yarn


1、错误信息:FATAL nodemanager.NodeManager: Error starting NodeManagerjava.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)V


解决办法:hadoop.dll的版本与当前hadoop版本不一致,我用的是hadoop2.8.0,但是hadoop.dll用的是2.7.1
就会报此错误,去百度上下个2.8.0的hadoop.dll就可以了,放在bin和system32下。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值