windows下安装和配置hadoop

1.安装hadoop

下载hadoop,下载地址:

建议不要下载最高版本,而是下载稳定版本,我下载的是3.2.3版本;将压缩包解压到安装目录,注意安装目录的路径中不要有空格;
我将hadoop压缩包解压到D:\ruanjian\hadoop路径下,解压后hadoop的目录是D:\ruanjian\hadoop\hadoop-3.2.3;
然后下载winutils,在github上可以找到:
找到winutils中对应hadoop版本的文件夹,我的安装版本是3.2.2,将winutils下名为3.2.2文件夹中的文件,复制到hadoop安装目录下的bin文件夹中,替换所有同名的文件;
在环境变量中加入HADOOP_HOME,路径为D:\hadoop\hadoop-3.2.2,并在path中加入%HADOOP_HOME%\bin和%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:/ruanjian/hadoop/hadoop-3.3.5/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:/ruanjian/hadoop/hadoop-3.3.5/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:/ruanjian/hadoop/hadoop-3.3.5/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/D:/ruanjian/hadoop/hadoop-3.3.5/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
执行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安装目录>\share\hadoop\yarn\timelineservice\hadoop-yarn-server-timelineservice-3.1.4.jar复制到<hadoop安装目录>\share\hadoop\yarn\下一份
报错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,查看报错,根据报错内容解决具体问题
 
posted @ 2023-09-21 15:10  皮卡皮卡妞  阅读(546)  评论(0编辑  收藏  举报