Hadoop3.1.0(伪分布式)安装教程

原文地址:https://blog.csdn.net/sven119/article/details/79930878

这篇文章包涵了  常出现的hdfs启动错误的解决办法。

一、支持的平台

  • 支持GNU/Linux作为开发和生产平台。
  • Windows也是一个支持的平台,下面步骤仅适用于Linux。

二、所需软件

所需的Linux软件包括:

  1. Java必须安装。
  2. 如果要使用可选的启动和停止脚本,必须安装ssh,并且必须运行sshd才能使用管理远程Hadoop守护程序的Hadoop脚本。此外,建议安装pdsh以获得更好的ssh资源管理。

三、安装软件

    如果你的集群没有必要的软件,你需要安装它。

    $ sudo apt-get install ssh

    $ sudo apt-get install pdsh

四、下载

    在hadoop.apache.org中下载当前最新版本hadoop3.1.0。

五、准备启动Hadoop集群

    解压下载的Hadoop发行版。在发行版中,编辑文件etc/hadoop/hadoop-env.sh来定义一些参数,如下所示:

[html]  view plain  copy
  1. #设置为Java安装的根目录  
  2.   导出JAVA_HOME=/usr/java/latest  

    尝试以下命令:

[html]  view plain  copy
  1. $ bin/hadoop  

    这将显示hadoop脚本的使用文档。

    启动hadoop集群有三种模式:

  1. 本地(独立)模式
  2. 伪分布式模式
  3. 完全分布式模式

    1、本地(独立)模式

        默认情况下,Hadoop被配置为以非分布式模式运行,作为单个Java进程。这对调试很有用。

        以下示例将解压后的conf目录复制为输出,然后查找并显示给定正则表达式的每个匹配项。输出写入给定的输出目录。

[html]  view plain  copy
  1. $ mkdir输入  
  2. $ cp etc / hadoop / *。xml输入  
  3. $ bin / hadoop jar share / hadoop / mapreduce / hadoop-mapreduce-examples-3.1.0.jar grep input output'dfs [az。] +'  
  4. $ cat输出/ *  

    2、伪分布式操作

        Hadoop也可以在伪分布式模式下的单节点上运行,其中每个Hadoop守护进程都在单独的Java进程中运行。

        使用一下配置:

            在etc/hadoop/core-site.xml中:

[html]  view plain  copy
  1. <configuration>  
  2.     <property>  
  3.         <name>fs.defaultFS</name>  
  4.         <value>hdfs://hadoop000:9000</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>hadoop.tmp.dir</name>  
  8.         <value>/home/hadoop/hadoopdata</value>  
  9.         <description>Abase for other temporary directories.</description>  
  10.     </property>  
  11. </configuration>  

            在etc/hadoop/HDFS-site.xml中:

[html]  view plain  copy
  1. <configuration>  
  2.     <property>  
  3.         <name>dfs.replication</name>  
  4.         <value>1</value>  
  5.     </property>  
  6. </configuration>  

           设置passphraseless ssh

                现在检查是否可以在没有密码的情况下ssh到本地主机:

[html]  view plain  copy
  1. $ ssh localhost  

                如果不能再没有密码的情况下ssh到本地主机,请执行一下命令:

[html]  view plain  copy
  1. $ ssh-keygen -t rsa -P''-f〜/ .ssh / id_rsa  
  2. $ cat〜/ .ssh / id_rsa.pub >>〜/ .ssh / authorized_keys  
  3. $ chmod 0600〜/ .ssh / authorized_keys  

            修改etc/hadoop/workers,注意:workers这个文件就是hadoop2.x版本中的slaves。

[html]  view plain  copy
  1. hadoop000  #主机名  

            格式化文件系统:

[html]  view plain  copy
  1. $ bin / hdfs namenode -format  

            启动NameNode守护进程和DataNode守护进程:

[html]  view plain  copy
  1. $ sbin / start-dfs.sh  

            浏览NameNode的Web界面:

[html]  view plain  copy
  1. http://localhost:9870  

            配置YARN在单个节点上:

            在etc/hadoop/mapred-site.xml中:

[html]  view plain  copy
  1. <configuration>  
  2.     <property>  
  3.         <name>mapreduce.framework.name</name>  
  4.         <value>yarn</value>  
  5.     </property>  
  6.     <property>  
  7.         <name>mapreduce.application.classpath</name>  
  8.         <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>  
  9.     </property>  
  10. </configuration>  

            在etc/hadoop/yarn-site.xml中:

[html]  view plain  copy
  1. <property>  
  2.        <name>yarn.nodemanager.aux-services</name>  
  3.        <value>mapreduce_shuffle</value>  
  4.    </property>  
  5.    <property>  
  6.        <name>yarn.nodemanager.env-whitelist</name>  
  7.        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>  
  8.    </property>  

            启动ResourceManager守护进程和NodeManager守护进程:

[html]  view plain  copy
  1. $ sbin / start-yarn.sh  

            浏览ResourceManage的Web界面:

[html]  view plain  copy
  1. http://localhost:8088/  

            运行MapReduce作业。

            停止进程:

[html]  view plain  copy
  1. $ stop-dfs.sh  
  2. $ stop-yarn.sh  

注:

    如果启动HDFS时出现以下错误:

[html]  view plain  copy
  1. Starting namenodes on [hadoop000]  
  2. ERROR: Attempting to operate on hdfs namenode as root  
  3. ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.  
  4. Starting datanodes  
  5. ERROR: Attempting to operate on hdfs datanode as root  
  6. ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.  
  7. Starting secondary namenodes [hadoop000]  
  8. ERROR: Attempting to operate on hdfs secondarynamenode as root  
  9. ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.  
  10. 2018-04-13 07:37:05,439 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable  

     解决办法:

            一定要在文档的最前面添加参数!!!

[html]  view plain  copy
  1. $ vim start-dfs.sh  
  2. $ vim stop-dfs.sh  
  3. #分别在文档的最前面,添加如下参数:  
  4. HDFS_DATANODE_USER=root  
  5. HADOOP_SECURE_DN_USER=hdfs  
  6. HDFS_NAMENODE_USER=root  
  7. HDFS_SECONDARYNAMENODE_USER=root   

如果启动YARN时出现以下错误:

[html]  view plain  copy
  1. Starting resourcemanager  
  2. ERROR: Attempting to operate on yarn resourcemanager as root  
  3. ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.  
  4. Starting nodemanagers  
  5. ERROR: Attempting to operate on yarn nodemanager as root  
  6. ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.  

     解决办法:

            一定要在文档的最前面添加参数!!!

[html]  view plain  copy
  1. $ vim start-yarn.sh  
  2. $ vim stop-yarn.sh  
  3. #分别在两个文件最前端,添加如下参数:  
  4. YARN_RESOURCEMANAGER_USER=root  
  5. HADOOP_SECURE_DN_USER=yarn  
  6. YARN_NODEMANAGER_USER=root  

猜你喜欢

转载自blog.csdn.net/qq_38318622/article/details/80521643
今日推荐