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

来源:互联网 发布:mac自带画图工具 编辑:程序博客网 时间:2024/05/22 04:51

本文所写内容,在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.csdn.net/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下。


阅读全文
2 0
原创粉丝点击