windows下安装和配置hadoop

1.安装java

hadoop基于java开发,安装hadoop前需要安装java,并在环境变量中加入JAVA_HOME,hadoop通过JAVA_HOME的地址找到java;

2.安装hadoop

下载hadoop,下载地址:

 
建议不要下载最高版本,而是下载稳定版本,我下载的是3.2.2版本;将压缩包解压到安装目录,注意安装目录的路径中不要有空格;
 
我将hadoop压缩包解压到D:hadoop路径下,解压后hadoop的目录是D:hadoophadoop-3.2.2;
 
然后下载winutils,在github上可以找到:
 
找到winutils中对应hadoop版本的文件夹,我的安装版本是3.2.2,将winutils下名为3.2.2文件夹中的文件,复制到hadoop安装目录下的bin文件夹中,替换所有同名的文件;
 
在环境变量中加入HADOOP_HOME,路径为D:hadoophadoop-3.2.2,并在path中加入%HADOOP_HOME%in和%HADOOP_HOME%sbin;
 
跟安装java检查环境变量是否配置正确类似,可以在cmd中输入hadoop version,检查hadoop环境变量配置是否正确;
 
 
3.配置hadoop
hadoop的主要配置在安装目录中etc/hadoop目录下;
 
(1)修改core-site.xml
其中第一个property,hadoop.tmp.dir配置的是保存数据的临时路径,在hadoop安装路径下新建data文件夹,value配置为/D:/hadoop/hadoop-3.2.2/data,注意路径前加了一个'/';
fs.defaultFS配置的是hdfs的ip和端口号,因为安装在本地,ip配置为localhost,端口配置为9000;
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/D:/hadoop/hadoop-3.2.2/data</value>
    </property>
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
    </property>
</configuration>
(2)修改hadoop-env.cmd
其中JAVA_HOME默认配置为%JAVA_HOME%,可以按实际情况修改;
set JAVA_HOME=%JAVA_HOME%
(3)修改hdfs-site.xml
其中dfs.replication是数据库的副本数,默认为3;
dfs.namenode.name.dir是DFS名称节点在本地文件系统中存储名称表(fsimage)的位置;
dfs.datanode.data.dir是DFS数据节点在本地文件系统中的位置;
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/D:/hadoop/hadoop-3.2.2/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/D:/hadoop/hadoop-3.2.2/data/datanode</value>
    </property>
</configuration>
(3)修改mapred-site.xml
其中mapreduce.framework.name是指定执行mapreduce作业时使用的框架,可以配置local、classic、yarn,我这里配置的是yarn;
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
     <property>
            <name>mapreduce.framework.name</name>
             <value>yarn</value>
    </property>
</configuration>
(4)修改yarn-site.xml
其中yarn.nodemanager.aux-services用于指定在进行mapreduce作业时,yarn使用mapreduce_shuffle混洗技术;
yarn.nodemanager.aux-services.mapreduce.shuffle.class用于指定混洗技术对应的字节码文件;
<?xml version="1.0"?>
<configuration>
     <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.hahoop.mapred.ShuffleHandler</value>
    </property>
</configuration>
4.节点格式化
正常情况下,格式话结束会显示'namenode has been successfully formated',如果格式话失败,原因可能是环境变量配置问题、hadoop版本和winutils版本不一致、etc中配置错误;
hdfs namenode -format
5.启动hadoop
以管理员身份打开cmd,使用win+r快捷键打开运行,输入cmd,然后ctrl+shift+enter,选择‘是’,打开cmd;
执行start-all.cmd,会新打开4个cmd,分别是namenode、resourcemanager、nodemanager、datanode的4个进程,如果这4个cmd启动没有报错,则启动成功;
 
 
6.访问hadoop服务网页
 
访问集群节点:
http://localhost:8088/
 
访问HDFS:
http://localhost:9870/
 
 
7.启动hadoop遇到的报错和解决方法
 
报错1: 
java.lang.NoClassDefFoundError: org/apache/hadoop/yarn/server/timelineservice/collector/TimelineCollectorManager
 
解决方法:
将<hadoop安装目录>sharehadoopyarn imelineservicehadoop-yarn-server-timelineservice-3.1.4.jar复制到<hadoop安装目录>sharehadoopyarn下一份
 
 
报错2:
Permissions incorrectly set for dir ... should be rwxr-xr-x, actual value = rw-rw-rw-
 
解决方法:
执行节点格式化语句(hdfs namenode -format)后,会在C盘tmp下生成hadoop-yarn-...的文件夹,删除这个文件夹后重新运行hadoop
 
 
报错3:
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Failed to setup local dir ... /nm-local-dir, which was marked as good.
 
解决方法:
使用管理员权限运行cmd
 
 
报错4:
util.SysInfoWindows: ExitCodeException exitCode=-1073741515
 
解决方法:
运行hadoop安装目录bin下的winutils.exe,查看报错,根据报错内容解决具体问题
 
 
参考:
-1.WIN10安装配置Hadoop  https://zhuanlan.zhihu.com/p/111844817
-2.Hadoop集群的四个配置文件的常用属性解析  https://zhuanlan.zhihu.com/p/114278318
 
 
原文地址:https://www.cnblogs.com/xhj123/p/15359298.html