windows 搭建和配置 hadoop + 踩过的坑

一、配置步骤
  1. hadoop官网 下载 tar.gz 镜像
  2. 下载安装winRAR , 管理员权限打开CMD, 切换到hadoop目录下, 输入start winrar x -y hadoop-3.1.2.tar.gz  执行解压(不下载安装winRAR, 用7zip解压会报错)
 
  1. 配置hadoop环境
  •    JAVA 配置:
            新建变量名  JAVA_HOME, 路径 :java路径, 比如 E:\Java\jdk1.8.0_191
                    path中,最前面加上%JAVA_HOME%\bin
  •      Hadoop 配置:
                    新变量:  HADOOP_HOME, hadoop的路径, 如 E:\hadoop\hadoop-3.1.2
                    path中,添加%HADOOP_HOME%\bin
 
  1. 设置hadoop中的jdk路径
  •             notepad ++ 编辑 hadoop\hadoop-3.1.2\etc\hadoop\ hadoop-env.cmd, 找到       set JAVA_HOME, 设置为:
                  set JAVA_HOME=%JAVA_HOME%  或者  set JAVA_HOME="jdk的路径”(到jdk1.x.x_xxx)
            注意: 如果你的JAVA在C盘的 Program Files中,那么路径改为  D:\Softwares\jdk1.8,如果是 Program Files(x86),还要另一种路径,这我忘了。。。。(我用的前者%JAVA_HOME%)
        注: 设置好后, cmd内输入 hadoop version, 出现下图说明环境配置好了
  1. hadoop\hadoop-3.1.2 目录下创建:
             tmp文件夹、datanode文件夹和namenode文件夹
 
  1. hadoop 文件配置(文件都在“hadoop-3.1.2\etc\hadoop\”目录下)
  • core-site.xml 
        hadoop.tmp.dir 和其路径是必须要加的(之前没加出错了)
    <property>
        <name> hadoop.tmp.dir</name>
        <value> file:E:/hadoop/hadoop-3.1.2/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
 
 
    <property>       
    <name>fs.defaultFS</name>       
    <value>hdfs://localhost:9000</value>   
    </property>
  • mapred-site.xml
    <property>       
    <name>mapreduce.framework.name</name>       
    <value>yarn</value>   
    </property>
 
 
  • hdfs-site.xml
    dfs.namenode.name.dir 下配置 刚才创建的namenode文件夹路径
    dfs.datanode.data.dir 下配置 datanode文件夹路径
<configuration>
    <property>       
        <name>dfs.replication</name>       
        <value>1</value>   
    </property>   
    <property>       
        <name>dfs.namenode.name.dir</name>       
        <value> /E:/hadoop/hadoop-3.1.2/namenode</value>   
    </property>   
    <property>       
        <name>dfs.datanode.data.dir</name>     
        <value> /E:/hadoop/hadoop-3.1.2/datanode</value>   
    </property>
</configuration>
 
  • yarn-site.xml
    <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>
 
  1. 启动hadoop服务
  •  初始化 hdfs :  hdfs namenode -format
  •  启动hadoop服务(同时启动了dfs,yarn):
             切换路径到  sbin目录下  “hadoop\hadoop-3.1.2\sbin”, 输入  start-all.cmd 启动
  • 查看启动情况: 输入jps
        如果结果如下图,就是启动成功了, 说明明NodeManager和NameNode都没出错
        
 
二、踩到的坑
         1、没有winutil.exe 可供加载
               网上找一个winutils.exe 和 hadoop.dll防御  bin目录下(hadoop.dll文件,我用的hadoop3.1.2,找了一个hadoop3.0.0的,可能这都能用吧,侥幸能用
 
         2、namenode启动失败
               如果上述2个错误出现的话 start-all.cmd命令会在nodename下创建文件,需要在nodename目录下删除所用命令,再执行start-all.cmd 即可修复
 
     3 、没有tmp文件夹来使用
             在core-site.xml中配置 hadoop.tmp.dir和其路径(上面都有)
 
         4.  将java从C盘移动到D盘, 修改好java环境变量后,  java -version找不到java版本
             将 path中的 JAVA_HOME优先级上移解决

猜你喜欢

转载自www.cnblogs.com/HankCui/p/11061377.html