伪分布式Hadoop集群

单机模式(Standalone )

  hadoop默认情况是以非分布式单机方式运行的,所有的Hadoop服务都是运行在一个JVM虚拟机上,这种模式下Hadoop采用操作系统本地文件而不是HDFS(Hadoop File System)进行数据的存储。

伪分布式(Pseudo-Distributed )

  模式可以模拟真实多节点集群,可以让Hadoop守护进程(DataNode、NameNode和ResourceManager)运行在单一服务器上,意味着这种单节点的Hadoop集群无法保证高可用性与数据的安全性,生产环境不推荐使用。

全分布式(Fully-Distributed)

  Hadoop守护进程(DataNode、NameNode和ResourceManager)在不同的机器上运行,这种模式可以保证Hadoop集群的高可用性、数据安全性。常应用在生产环境中。

SSH免密登录设置

       Hadoop应用提供了很多脚本用来管理和维护Hadoop守护进程,这其中就用了SSH登录相关命令

       生成SSH密钥

## 生成密钥命令:ssh-keygen -t rsa

     拷贝公钥

     使用ssh免密登录本地

相关配置文件

  Hadoop为启动和停止Hadoop应用提供了以上三个环境变量脚本,其中 hadoop-env.sh用来设置hadoop运行环境相关的配置mapred-env.sh用来指定mapReduce操作环境相关配置、yarn-env.sh是用来指定yarn使用的环境变量的值。

  没有在自定义配置文件中配置参数对应的值,则默认以xx.default.xml配置的值为准,否则以自定义xx.site的值为准

  core-default.xml:hadoop核心配置文件,可以在core-site.xml中设置变量来覆盖此文件的默认配置值。
  hdfs-default.xml :HDFS相关服务的默认配置文件,可以设置hdfs-site.xml覆盖此文件中的默认配置值。
  yarn-default.xml:YARN默认配置文件,可以设置yarn-site.xml覆盖此文件中默认配置值。
  mapred-default.xml:MapReduce默认配置文件,可以设置mapred-site.xml覆盖此文件中默认配置值。

配置Hadoop核心属性(core-site.xml)

  • fs.defaultFS:设置文件系统的名称以及NameNode所在主机和端口信息

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://node_slave_one:9000</value>
  <description>hdfs内部通讯访问地址</description>
</property>

  • hadoop.http.staticuser.user    设置操作hdfs为用户为hdfs
<property>
  <name>hadoop.http.staticuser.user</name>
  <value>hdfs</value>
</property>
  • hadoop.tmp.dir    设置hadoop本地数据存储目录
<property>
   <name>hadoop.tmp.dir</name>
   <value>/soft/data/hadoop/tmpDir</value>
</property>
  • fs.trash.interval

      设置Hadoop文件存储在垃圾箱中的时间,默认值为0,即永久删除被删除的所有文件库,这里我们默认设置1440分钟(1天)

<property>
  <name>fs.trash.interval</name>
  <value>1440</value>
</property>

配置Mapreduce(mapred-site.xml)

  • mapreduce.framework.name      设置hadoop使用YARN作为执行MapReduce的框架
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
 </property>
  • yarn.app.mapreduce.am.env     指定mapruce APP MASTER 环境变量
  <property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>
  • mapreduce.map.env      指定mapreduce Reuce Task 环境变量
  <property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>
  • mapreduce.reduce.env     指定mapreduce Reuce Task 环境变量
  <property>
    <name>mapreduce.reduce.env</name>
     <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
  </property>

配置Yarn(yarn-site.xml)

  yarn.nodemanager.aux-services:此属性可以让NodeManager指定MapReduce容器从map任务到reduce任务所需要执行的shuffle操作,只有设置了这个值才可以运行MapReduce任务。

  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  • yarn.nodemanager.aux-services.mapreduce_shuffle.class

  设置YARN使用这个设置值对应的类执行shuffle操作

  <property>
    <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  • yarn.nodemanager.resource.memory-mb  设置YARN在每一个节点消耗的总内存值单位MB
   <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>2048</value>
  </property>
  • yarn.scheduler.minimum-allocation-mb   设置每一个启动的容器节点最小内存单位MB
   <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>512</value>
  </property>

配置HDFS(hdfs-site.xml)

  • dfs.namenode.secondary.http-address    设置SecondaryNameNode运行主机和端口
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node_slave_one:9868</value>
  </property>
  • dfs.replication    参数配置默认的文件块数量为3,但我们这里搭建伪分布式所以需要设置为1
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  • dfs.datanode.data.dir    设置DataNode数据快本地存储目录
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hdfs/data</value>
    </property>
  • dfs.namenode.name.dir   设置NameNode核心文件如fsimage如edit日志文件存储位置,只有NameNode服务可以读取和写入这些文件。
  <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hdfs/name</value>
    </property>
  • dfs.namenode.checkpoint.dir    指定SecondaryNameNode存储元数据文件位置
  <property>
    <name>dfs.namenode.checkpoint.dir</name>
    <value>file:/soft/data/hadoop/hdfs/snn</value>
  </property>
  •   修改worker

[root@slaveone hadoop-3.3.2]# cat etc/hadoop/workers 
slaveone
  • 对于start-dfs.sh和stop-dfs.sh添加下列参数:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
  • 对于start-yarn.sh和stop-yarn.sh文件,添加下列参数:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

格式化集群

       使用hdfs用户执行NameNode格式化,需要注意的是NameNode的格式化只需要做一次就够。

hdfs namenode -format

  

  

posted on 2023-05-13 09:46  溪水静幽  阅读(99)  评论(0)    收藏  举报