当前位置: 首页 > news >正文

Hadoop分布式配置文件

 

 

Hadoop 安装模式分为三种:

单机模式:单机模式下注意将备份数量设置为1,设置为3是没有意义的

伪分布式:没有测试

完全分布式:

完全分布式需要3台-3台以上的服务器,由NameNode进行控制多台DataNode。

网上的详细配置十分齐全,可以进行参考,但是每份参考文件的配置并不完全相同。

配置文件说明:

hadoop-env.xml:对文件的运行环境进行配置,hadoop是基于java的,所以同样需要JDK

core-site.xml:hadoop的核心配置文件,配置指定集群NameNode,设置hadoop公用变量,创建hadoop的临时目录等

hdfs-site.xml:分布式文件系统配置,包含对存储文件时的文件设置,比如副本数量。配置DataNode的本地路径,dataNode节点路径等。

yarn-site.xml:配置yarn,yarn用于管理分布式系统的CPU利用率,磁盘使用情况等。shuffle过程使用的执行器(可以使用不同的执行器,比如spark)

mapreduce-site.xml:配置数据计算框架(支持多种框架),JobTracker的主机主机端口,存储缓冲数据配置,历史服务器配置等

slaves:存储所有的主机IP

master:并不是所有的配置文件中都包含这个文件,放置NameNode节点的IP

配置规则:

1.JDK(1.8)  

2.为你的计算机更名,当然这一步并不是必须的,你可以在每个文件需要IP的地方输入自己的IP

3.SSH免密登录.在hadoop多台机器需要数据交互,内部需要联通

4.hadoop(3.1)压缩包解压

5.hadoop/etc/hadoop  文件下拥有多个配置文件,其中包含上述文件(或者包含其临时文件)

  5-1:core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <!-- hserver1为当前机器名或者ip号 -->
    <value>hdfs://master:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <!-- 以下为存放临时文件的路径 -->
    <value>/data/local/hadoop/tmp</value>
   </property>
   <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
  </property>
  <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
  </property>
</configuration>

  5-2:hdfs-site.xml

<configuration>
  <property>
    <name>dfs.namenode.http-address</name>
    <!-- master 修改为你的机器名或者ip -->
    <value>master:50070</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <!-- 备份次数 -->
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/local/hadoop/hdfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/local/hadoop/hdfs/data</value>
  </property>
  <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.permissions</name>
    <value>false</value>
  </property>
</configuration>

  5-3:yarn-site.xml

<configuration>
  <!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <!-- 你的机器号或者ip -->
    <value>master</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <!-- cpu个数 需要根据当前机器cpu设置 -->
    <value>2</value>
  </property>
  <property>
    <name>yarn.application.classpath</name>      <value>$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*,$HADOOP_COMMON_HOME/share/hadoop/common/lib/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,$HADOOP_YARN_HOME/share/hadoop/yarn/*,$HADOOP_YARN_HOME/share/hadoop/yarn/lib/*</value>
  </property>  

  <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
  </property>
</configuration>

  4.mapreduce-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
  </property>
  <property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=/data/local/hadoop/hadoop-3.1.1</value>
  </property>
  <property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=/data/local/hadoop/hadoop-3.1.1</value>
  </property>
  <property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=/data/local/hadoop/hadoop-3.1.1</value>
  </property>
</configuration>

  5.workers

  该文件中存放所有工作的节点,也就是datanode节点。

master
slave1
slave2

  6./sbin/start-dfs.sh 和 /sbin/stop-dfs.sh

  增加内容

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

  7./sbin/start-yarn.sh  和 /sbin/stop-yarn.sh

  增加内容

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

  8.配置hadoop环境,该环境变量并不是必须的,配置之后能够直接使用hadoop命令进行hadoop系统的查看

    打开linux系统下的   /etc/profile   文件

    export HADOOP_HOME=/home/shang/soft/hadoop   //使用自己hadoop的存储位置
    export PATH=$HADOOP_HOME/bin:$PATH   //注意这行数据最后放在所有数据最后的,以保证能够取得其中所引用的所有数据

    配置完成后使文件立即生效,使用  sources  命令

  8.hadoop系统格式化 

    当你HADOOP_NAME配置成功的时候,这个命令可以在linux系统的任意位置使用

    命令如下:  hadoop namenode  -format   (出现提问输入y)/ hdfs namenode -format  这两个命令都是可以的

  9.hadoop文件夹下sbin目录下,使用  start-all.sh 启动整个hadoop分布式系统,如果配置了hadoop环境变量,能够直接在任何位置使用hadoop的启动命令

 

  10.结果如下:通过java 包下的 jps命令

    NameNode节点: 

      NameNode

      ResourceManager

      SecondaryNameNode

      jps

    所有的DataNode节点:

      jps

      DataNode

      NodeManager

    出现上述结果,配置正确。

  11.测试hadoop:

    11-1.尝试上传文件  hadoop fs -get  本地文件  上传路径

    11-2:访问hadoop 的NameNode 50070(hdfs web访问端口)/8088端口(yarn访问端口)(前提是你没有在配置文件改变这些端口)

  12.问题剖析:

    12-1:启动是出现任何Exception 请检查配置文件

    12-2:hadoop 命令不可用  检查HADOOP_NAME 环境变量

    12-3:如果有多次format(格式化),删除为hadoop、data、name 创建的所有临时文件夹重新创建

    12-4:没了,想不起来了

转载于:https://www.cnblogs.com/shangKaiGuo/p/9524366.html

相关文章:

  • Git 解决本地远端版本冲突
  • 使用Setup安装Windows8 RTM方法
  • Codeforces 101572 D - Distinctive Character
  • 中央政府释放重大利好 2015年信息消费将超3万亿
  • 在vue中使用SockJS实现webSocket通信
  • 虚度的日子们
  • Service 保活法之一
  • 新手学习SQL 注入式***
  • ajax取到数据后如何拿到data.data中的属性值
  • python中的魔术属性与魔法方法
  • 转:Android HttpClient基本使用方法
  • Uber开源其大规模指标平台M3
  • Java面试004-框架篇
  • Linux下调试工具
  • npm和node的版本过低时的解决办法
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Effective Java 笔记(一)
  • in typeof instanceof ===这些运算符有什么作用
  • JavaScript设计模式之工厂模式
  • Java方法详解
  • Laravel 中的一个后期静态绑定
  • MySQL用户中的%到底包不包括localhost?
  • Otto开发初探——微服务依赖管理新利器
  • spring + angular 实现导出excel
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 百度小程序遇到的问题
  • 程序员最讨厌的9句话,你可有补充?
  • 动态规划入门(以爬楼梯为例)
  • 基于axios的vue插件,让http请求更简单
  • 前端
  • 山寨一个 Promise
  • 微信小程序填坑清单
  • 移动端解决方案学习记录
  • 译自由幺半群
  • 字符串匹配基础上
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • #数学建模# 线性规划问题的Matlab求解
  • $ git push -u origin master 推送到远程库出错
  • (+4)2.2UML建模图
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (arch)linux 转换文件编码格式
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (三)终结任务
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (转)为C# Windows服务添加安装程序
  • .bat文件调用java类的main方法
  • .net core 控制台应用程序读取配置文件app.config
  • .NET 发展历程
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET连接MongoDB数据库实例教程
  • .project文件
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题