我的系统配置:

Ubuntu 18.04
java:jdk1.8.0 (java8)
hadoop version: 3.0.3

准备工作

  1. 下载,安装好hadoop。
    国内的话去镜像源列表找找看http://www.apache.org/mirrors/
    注意要下载binary release,也就是文件名不带src的
    给一个华科的镜像地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.0.3/hadoop-3.0.3.tar.gz
    找个能记住的地方解压,最好把名字改成hadoop

  2. 安装java
    去官网找一下,注意对应自己的系统版本,最好装java8,高版本不太能支持spark,想了一下就放弃了

配置路径

关键的一步,博主认为新开一个用户是不必须的,于是把路径配置在了/etc/profile
打开 /etc/profile,首先配置java路径:

export JAVA_HOME={你安装java的根目录}

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/lib:$JRE_HOME/lib:$PATH

之后记得source /etc/profile。终端输入java -version 如果有java版本输出,那就是配置好了。确认好java之后,再配置hadoop

同样打开/etc/profile

export HADOOP_HOME={你装hadoop的根目录}
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

完成之后同样source /etc/profile一下。
测试hadoop:输入hadoop version.看到输出了版本信息,说明没有问题

配置XML

这里就是博主写这篇毫无营养的博客的原因,因为我配置了好多次yarn,全部失败了。对着书上的方法随便试了一下就成功了,这就说明一件事情。网上很多博主完全就是照抄,以至于有问题都不知道。
最主要的是,官网的Doc还是错的!

由于是伪分布式方法,单机版的方法就不在赘述。

测试ssh免密码登录

没装ssh的先装个ssh:sudo apt-get install ssh
如果本地没有RSA秘钥,请执行下面的命令:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
如果本地有秘钥就不用重新生成了,之后将秘钥放到authorized_keys文件夹中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
好了下面测试一下能不能免密码登录ssh localhost成功的话不需要输入密码,直接登录上去了

配置一下XML

xml文件都在$HADOOP_HOME/etc/hadoop,不放心的可以先备份一下。
下面有四个XML文件,都配置一下。
core-site.xml

<configuration>
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://localhost/</value>
        </property>
</configuration>

hdfs-site.xml

<configuration>
        <property>
             <name>dfs.replication</name>
             <value>1</value>
        </property>
</configuration>

yarn-site.xml

<configuration>
     <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
     </property>
     <property>
           <name>yarn.resourcemanager.hostname</name>
           <value>localhost</value>
     </property>
</configuration>

mapred-site.xml

<configuration>
   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
  </property>
</configuration>

开始启动yarn

再以上程序均运行无误之后,打开命令行,深吸一口气,让自己冷静一下:
1.格式化hdfs:
hdfs namenode -format
仔细看输出,没有异常的话继续
2.启动守护进程:

start-dfs.sh
start-yarn.sh
mr-jobhistory-deamon.sh start historyserver

全部启动完成之后,输入jps,查看一下启动了几个进程,如果没有问题的话,是下面这几个:

12432 ResourceManager
13075 Jps
11731 NameNode
13013 JobHistoryServer
12181 NameNode
12614 NodeManager
11935 DataNode

ResourceManager,NodeManager对应yarn,NameNode,DataNode对应hdfs,剩下的JobHistorySever就是JobHistorySever……
3.现在就到了打开网页查看奇迹的时刻的时候了
首先打开namenode的管理网页:
注意3.0.3版本的地址是localhost:9870
打开发现写着namenode的信息而不是404,就说明hdfs启动成功了
下面打开localhost:8088,打开时hadoop yarn的资源管理器而不是404,就说明yarn启动成功了
接着打开localhost:19888,这个是历史服务器。
全部打开成功之后,伪分布式配置就完成了。
关闭请运行stop-all.sh,但是joshistoryserver要单独关闭:
mr-jobhistory-daemon.sh stop historyserver

总结:

仔细看log,仔细对照步骤就能完成。
谁叫配环境就是基本功呢

01-31 05:47