unbuntu下进行YARN环境搭建


环境:
ubuntu 18.04.1
hadoop 3.1.4
参考:https://blog.51cto.com/zero01/2091635

一.准备

搭建YARN环境之前一般已经进行好了HDFS的环境搭建,具体内容参考:
在ubuntu下进行HDFS伪分布式环境搭建

二.YARN环境搭建

因为已经安装好了hadoop,所以直接开始配置

1.配置

编辑/usr/local/hadoop/etc/hadoop/yarn-env.sh文件,加入下列几行代码:

export JAVA_HOME=usr/lib/jvm/java-11-openjdk-amd64
#这两句只有当jdk是9以上才用
export YARN_RESOURCEMANAGER_OPTS="--add-modules=ALL-SYSTEM"
export YARN_NODEMANAGER_OPTS="--add-modules=ALL-SYSTEM"

编辑yarn-site.xml文件:

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property> 
    <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> 
    <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.address</name> 
    <value>127.0.0.1:8032</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.scheduler.address</name> 
    <value>127.0.0.1:8030</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.resource-tracker.address</name> 
    <value>127.0.0.1:8031</value> 
</property> 

2.启动YARN

cd usr/local/hadoop/sbin
./start-yarn.sh

如果进程能启动,则有:
在这里插入图片描述但是jps后发现并没有Resourcemanager和nodemanager进程,localhost:8088也进不去。进/usr/local/hadoop/logs查看resourcemanager日志,发现如下报错:
在这里插入图片描述上网查了一圈,发现是因为jdk版本问题这里有给解决方法,尝试未果。故手动安装jdk8(可安装多个jdk系统),并将hadoop的环境配置为jdk8
安装JAVA8方法:
华为镜像源
下载jdk-8u191-linux-x64.tar.gz,解压到/usr/lib/jvm8下。sudo vim ~/.bashrc修改环境变量:

#set oracle jdk environment
export JAVA_HOME=/usr/lib/jvm8/jdk1.8.0_191  ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH  

source ~/.bashrc
系统注册jdk:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_191/bin/java 300

在多个java版本中切换:

sudo update-alternatives --config java

在这里插入图片描述切换到JAVA8后重新启动各个结点,仍报错。在JAVA和hadoop安装的环境变量处将JAVA_HOME设为JAVA8的路径。再重新启动结点,报错:

在这里插入图片描述只能把路径改回去…
按照这里的方法重新格式化了结点,start-all,得到
在这里插入图片描述然后stop all ,再start all,jps又没有那两个进程了…
想不出方法,未完待续…

9.24:
按照这里的内容,修改了一些配置文件,结果出了更多错误了…,找时间再修改回来…

重新开了个虚拟机,按照这里配置,直到start-all.sh之前都没啥问题,跟博客中的一样,而运行start-all后报错:
在这里插入图片描述估计哪里配置有问题,准备重新修改下配置然后重新格式化试试…结果是下面这个拼写错误
在这里插入图片描述把default改了回来,重启再报错:
在这里插入图片描述进入core-site.xml,把fs.defaultFS的value改为hdfs://localhost:8020(hadoop改为localhost,端口改为8020,用9000无法启动resourcemanager进程!!!localhost代表127.0.0.1即本机,hadoop为用户名,两者有区别)
再在hdfs-site.xml后面加入:

<property>
  <name>dfs.namenode.http-address</name>
  <value>0.0.0.0:9870</value>  #hadoop3下hdfs的监听端口为9870,这样才能通过localhost:9870访问namenode
</property>

<property>
    <name>dfs.namenode.name.dir</name>  #name节点的存储位置
    <value>file:/opt/data/tmp/dfs/name</value>
</property>

<property>
    <name>dfs.datanode.data.dir</name>   #data节点的存储位置
    <value>file:/opt/data/tmp/dfs/data</value>
</property>

重启,成功
(如果过了一段时间resourcemanager进程没有的话,stopall再startall即可)
(注:这里有对namenode等进程做一个介绍,具体来说:
HDFS包括namenode/datanode/secondarynode,YARN包括resourcemanager/nodemanager)

按照这里进行mapreduce的测试:出现错误:
在这里插入图片描述进入yarn-site-xml文件,将resourcemanager.hostname由hadoop改为localhost,stopall再startall,重新运行,成功。
在这里插入图片描述运行过程如上
注:hdfs简单命令,hdfs下的文件系统有一套和linux不同的命令格式,如下:

hdfs dfs -ls /     #查看当前目录信息
hdfs dfs -ls /hdfs路径     #查看hdfs下某个文件夹路径下的文件
hdfs dfs -put /本地文件路径 /hdfs路径    #从linux上传文件到hdfs
hdfs dfs -mkdir -p /hdfs路径      #在hdfs上创建目录
hdfs dfs -cat /文件路径         #查看hdfs下某个文件
hdfs dfs -rm /文件路径         #删除hdfs下某个文件
hdfs dfs -rm -r /文件夹名      #删除hdfs下某个文件夹

输入文件一般都是在linux写好再上传

最后,在yarn-site.xml加入

    <property> 
        <name>yarn.resourcemanager.address</name> 
        <value>127.0.0.1:8032</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.scheduler.address</name> 
        <value>127.0.0.1:8030</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.resource-tracker.address</name> 
        <value>127.0.0.1:8031</value>

重启,访问8088端口可得到关于resourcemanager的信息

注:MapReduce2.x架构下,看到JobTracker和TaskTracker已经不复存在了,取而代之的是ResourceManager和NodeManager。不仅架构变了,功能也变了,2.x之后新引入了YARN,在YARN之上我们可以运行不同的计算框架,不再是1.x那样只能运行MapReduce了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值