我的系统配置:
Ubuntu 18.04
java:jdk1.8.0 (java8)
hadoop version: 3.0.3
准备工作
下载,安装好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安装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,仔细对照步骤就能完成。
谁叫配环境就是基本功呢