Hadoop分布式安装笔记

参考https://blog.csdn.net/hliq5399/article/details/78193113这篇博客,自己用docker安装了3个容器来模拟了下hadoop分布式的安装

Hadoop我用2.8.5的安装, 解压放在/hadoop/modules/hadoop-2.8.5,hdfs目录
JDK1.8

服务器模块功能规划如下:

名称 IP 运行的模块
bigdata-01.com 172.17.0.2 NamNode,DataNode,NodeManager,HistoryServer
bigdata-02.com 172.17.0.3 DataNode,ResourceManager,NodeManager
bigdata-03.com 172.17.0.4 SecondaryNameNode,DataNode,NodeManager

对应在3台服务器建好Hadoop用户,并相互SSH免密登录。


下面配置3台服务器保持一致

配置Hostname

/etc/hosts 添加服务器名字路由

172.17.0.2  bigdata-01.com
172.17.0.3  bigdata-02.com
172.17.0.4  bigdata-03.com

配置core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://bigdata-01.com:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/hadoop/data/tmp</value>
    </property>
    <property>
     	<name>dfs.namenode.name.dir</name>
     	<value>file://${hadoop.tmp.dir}/dfs/name</value>
  	</property>
	<property>
     	<name>dfs.datanode.data.dir</name>
     	<value>file://${hadoop.tmp.dir}/dfs/data</value>
  	</property>
</configuration>

配置hdfs-site.xml

<configuration>
    <property>
       <name>dfs.replication</name>
       <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>bigdata-03.com:50090</value>
    </property>
</configuration>

bigdata-03 运行secondary name node,将文件备份设置为2

配置slaves

/etc/hadoop/slaves文件修改:

bigdata-01.com
bigdata-02.com
bigdata-03.com

配置yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>bigdata-02.com</value>
    </property>
    <!-- 是否启用日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 在HDFS上最多保存多长时间 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>106800</value>
    </property>
</configuration>

配置mapred-site.xml

<configuration>
	<!-- mapreduce.framework.name设置mapreduce任务运行在yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 设置mapreduce的历史服务器安装在BigData01机器上 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>bigdata-01.com:10020</value>
    </property>
    <!-- web -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>bigdata-01.com:19888</value>
    </property>
</configuration>              

接下来在NameNode机器上(bigdata01.com)执行格式化:
在这里插入图片描述
成功后会生成下图所示
在这里插入图片描述
配置,环境到此完结。接下来按规划启动模块。


启动hdfs

在bigdata-01机器上运行 sbin/start-dfs.sh
在这里插入图片描述
namenode 、secondarynamenode、datanode就分别在3个环境中启动了

启动yarn

在bigdata-01机器上运行sbin/start-yarn.sh
在这里插入图片描述
nodemanager就在3个环境中启动

在bigdata-02机器上运行sbin/yarn-daemon.sh start resourcemanager
在这里插入图片描述
resourcesmanager在bigdata-02上运行

日志服务器

在bigdata-01 上运行 sbin/mr-jobhistory-daemon.sh start historyserver
在这里插入图片描述


到此各个模块就在不同容器中运行了。下面做测试,创建一个input目录,并上传一个wc.input文件
在bigdata-01.com上运行

bin/hdfs dfs -mkdir /input
bin/hdfs dfs -put /hadoop/data/wc.input /input/wc.input

在这里插入图片描述

hdfs web

成功后,可打开bigdata-01的web管理页面http://192.168.3.14:50070/ (宿主机器端口映射到bigdata-01的端口)查看:
在这里插入图片描述
文件有2个备份。

yarn web在这里插入图片描述

jobhistory web

在这里插入图片描述


环境基本上搭建完毕,接下来关注如何使用,运维方面暂不深究了。通过搭建环境对各个模块是做什么用的有个大致的了解。

运行example,统计wc.input单词个数
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /input /out
在这里插入图片描述
电脑运行效率太差,导致中途有报错,看了下,大概是网络连接超时和reduce执行的内存不够重来,毕竟3个容器运行在一个10年前的笔记本,cpu、mem都不够,不过总算是执行完毕,运行结果截图截图纪念一下:
在这里插入图片描述
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章