Hadoop伪分布式安装配置流程

打印 上一主题 下一主题

主题 923|帖子 923|积分 2769

Hadoop摆设

前置预备

关闭防火墙和SELinux
  1. systemctl stop firewalld
  2. systemctl disable firewalld
复制代码
  1. # 此步可选(可做可不做,目前没发现有什么影响)
  2. vim /etc/sysconfig/selinux
  3. # 将第七行,SELINUX=enforcing 改为
  4. SELINUX=disabled
  5.   
  6. # 保存退出后,重启虚拟机即可,千万要注意disabled单词不要写错,不然无法启动系统
复制代码
SSH免密

设置本机登录本机免暗码(教程参照网上资料,大概逻辑为:服务端生成私钥和公钥,服务器端持有私钥,公钥交由客户端,今后客户端可免暗码登录服务器端)
具体代码实施如下(在 ~/.ssh目录下进行如下操作):

  1. ssh localhost
  2. # 进入 ~/.ssh目录
  3. cd ~/.ssh
  4. ssh-keygen -t rsa
  5. # 在之后跳出的文字交互界面一路回车+yes即可
  6. cat id_rsa.pub >> authorized_keys
  7. # 将公钥追加到authorized_keys文件中去
  8. chmod 600 authorized_keys
  9. # 将authorized_keys文件权限更改为600
  10. # 至此设置免密操作完毕
复制代码
开始配置


  • 下载Hadoop安装包、解压、配置软链接
    1. # 1. 上传
    2. # 2. 解压
    3. mkdir -p /export/server
    4. tar -zxvf hadoop-3.3.0.tar.gz -C /export/server/
    5. # 3. 构建软链接
    6. ln -s /export/server/hadoop-3.3.0 /export/server/hadoop
    复制代码
  • cd /export/server/hadoop/etc/hadoop,
    进入文件夹中,配置文件都在这里。
           Hadoop的配置文件要修改的地方很多,请仔细
    此文件是配置一些Hadoop用到的环境变量
    这些是暂时变量,在Hadoop运行时有用
    如果要永久见效,须要写到/etc/profile中
        vim hadoop-env.sh

    1. # 在文件开头加入:
    2. # 配置Java安装路径
    3. export JAVA_HOME=/export/server/jdk
    4. # 配置Hadoop安装路径
    5. export HADOOP_HOME=/export/server/hadoop
    6. # Hadoop hdfs配置文件路径
    7. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    8. # Hadoop hdfs 日志文件夹
    9. export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs
    10. # Hadoop的使用启动用户配置
    11. export HDFS_NAMENODE_USER=root
    12. export HDFS_DATANODE_USER=root
    13. export HDFS_SECONDARYNAMENODE_USER=root
    14. export YARN_RESOURCEMANAGER_USER=root
    15. export YARN_NODEMANAGER_USER=root
    16. export YARN_PROXYSERVER_USER=root
    复制代码
  • vim core-site.xml

    1. <configuration>
    2.          <property>
    3.              <name>fs.defaultFS</name>
    4.              <value>hdfs://localhost:9000</value>
    5.              <description>The name of the default file system.</description>
    6.          </property>
    7. <!--
    8.                 localhost可以设置为主机名以及IP地址中的任意一个,如 hdfs://xx:9000
    9. -->
    10.          <property>
    11.           <name>hadoop.tmp.dir</name>
    12.           <value>/export/server/hadoop/tmp</value>
    13.           <description>Base for other temporary directories.</description>
    14.       </property>
    15.   <!-- 你可以自由指定 hadoop.tmp.dir 中的目录,只要确保该目录存在且有合适的权限 -->
    16. </configuration>
    复制代码
  • vim hdfs-site.xml

    1. <configuration>
    2. <!-- HDFS 存储的基本目录 -->
    3.      <property>
    4.          <name>dfs.replication</name>
    5.          <value>1</value>
    6.          <description>Default block replication. The default is 1 unless overridden in the file.</description>
    7.      </property>
    8.      <!-- HDFS 数据目录 -->
    9.      <property>
    10.          <name>dfs.namenode.name.dir</name>
    11.          <value>file:///export/server/hadoop/dfs/name</value>
    12.          <description>Directories on the local filesystem where the NameNode stores its metadata.</description>
    13.      </property>
    14.      <!-- HDFS 数据节点目录 -->
    15.      <property>
    16.          <name>dfs.datanode.data.dir</name>
    17.          <value>file:///export/server/hadoop/dfs/data</value>
    18.          <description>Directories on the local filesystem where the DataNode stores its data blocks.</description>
    19.      </property>
    20.      <!-- Secondary NameNode 目录 -->
    21.      <property>
    22.          <name>dfs.namenode.secondary.http-address</name>
    23.          <value>localhost:9868</value>
    24.          <description>The address for the secondary NameNode.</description>
    25.      </property>
    26.      <!--
    27.             localhost可以设置为主机名以及IP地址中的任意一个,如 xx:9868
    28.             -->
    29. </configuration>
    复制代码
  • vim mapred-env.sh

    1. # 在文件的开头加入如下环境变量设置   shift+o即可在第一行进行插入
    2. # 指定 Java 安装路径
    3. export JAVA_HOME=/export/server/jdk
    4. # 指定 Hadoop 安装路径
    5. export HADOOP_HOME=/export/server/hadoop
    6. # 允许指定 MapReduce 任务使用的 Java 选项,比如内存设置等
    7. # 可以设置为 JVM 的内存限制、GC 选项等
    8. export HADOOP_MAPRED_HOME=$HADOOP_HOME
    9. export HADOOP_MAPRED_LOG_DIR=$HADOOP_HOME/logs/mapred
    10. # 如果需要调试,可以开启以下选项,方便查看日志
    11. export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hadoop
    12. export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true"
    13. export HADOOP_HEAPSIZE=2048
    14. export MAPRED_JAVA_OPTS="-Xmx1024m"
    15. # 如果有其他附加类路径,可以指定
    16. # export HADOOP_CLASSPATH=$HADOOP_HOME/share/hadoop/mapreduce/lib
    17. # 如果你有多节点,需要配置这些变量为用户权限相关内容
    18. # export HADOOP_MAPRED_PID_DIR=/export/server/hadoop/pids
    复制代码
  • vim mapred-site.xml

    1. <configuration>
    2.   <!-- 指定 MapReduce 框架使用 YARN -->
    3.   <property>
    4.       <name>mapreduce.framework.name</name>
    5.       <value>yarn</value>
    6.       <description>MapReduce should run as a YARN application</description>
    7.   </property>
    8.   <!-- MapReduce JobHistory Server 的地址,用于查看作业历史 -->
    9.   <property>
    10.       <name>mapreduce.jobhistory.address</name>
    11.       <value>localhost:10020</value>
    12.       <description>Address of the JobHistory Server</description>
    13.   </property>
    14.   <!-- JobHistory Server 的 web 界面地址 -->
    15.   <property>
    16.       <name>mapreduce.jobhistory.webapp.address</name>
    17.       <value>localhost:19888</value>
    18.       <description>WebUI for JobHistory Server</description>
    19.   </property>
    20.   <!-- 指定临时文件目录 -->
    21.   <property>
    22.       <name>mapreduce.jobhistory.done-dir</name>
    23.       <value>/export/server/hadoop/mapreduce/done</value>
    24.       <description>Directory where history of finished jobs are stored</description>
    25.   </property>
    26.   <!-- 指定中间结果的临时存储目录 -->
    27.   <property>
    28.       <name>mapreduce.jobhistory.intermediate-done-dir</name>
    29.       <value>/export/server/hadoop/mapreduce/intermediate-done</value>
    30.       <description>Directory for intermediate results during job processing</description>
    31.   </property>
    32.   <property>
    33.       <name>mapreduce.application.classpath</name>
    34.       <value>
    35.           $HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:
    36.           $HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/common/lib/*:
    37.           $HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/hdfs/lib/*:
    38.           $HADOOP_HOME/share/hadoop/yarn/*:$HADOOP_HOME/share/hadoop/yarn/lib/*
    39.       </value>
    40.   </property>
    41.     <!--
    42.               localhost可以设置为主机名以及IP地址中的任意一个,如 xx
    43.          -->
    44. </configuration>
    复制代码
  • vim yarn-env.sh

    1. # 在文件的开头加入如下环境变量设置
    2. # 设置 Java 环境
    3. export JAVA_HOME=/export/server/jdk
    4. # 设置 Hadoop 安装路径
    5. export HADOOP_HOME=/export/server/hadoop
    6. # Hadoop 配置文件路径
    7. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    8. # Hadoop 日志路径(包括 YARN 和 HDFS)
    9. export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs
    复制代码
  • vim yarn-site.xml

    1. <configuration>
    2.      <!-- ResourceManager 地址配置 -->
    3.      <property>
    4.          <name>yarn.resourcemanager.hostname</name>
    5.          <value>localhost</value> <!-- 改为主机名或IP地址 -->
    6.          <description>The hostname of the ResourceManager.</description>
    7.      </property>
    8.      <!-- 设置 ResourceManager 的 web 界面端口 -->
    9.      <property>
    10.          <name>yarn.resourcemanager.webapp.address</name>
    11.          <value>localhost:8088</value><!-- 改为主机名或IP地址 -->
    12.          <description>ResourceManager web interface.</description>
    13.      </property>
    14.      <!-- 设置 YARN 的临时目录 -->
    15.      <property>
    16.          <name>yarn.nodemanager.local-dirs</name>
    17.          <value>/export/server/hadoop/tmp/nm-local-dir</value>
    18.          <description>Local directory where NM stores data.</description>
    19.      </property>
    20.      <!-- 设置 NodeManager 的日志目录 -->
    21.      <property>
    22.          <name>yarn.nodemanager.log-dirs</name>
    23.          <value>/export/server/hadoop/logs/nm-logs</value>
    24.          <description>Directory for logs.</description>
    25.      </property>
    26.      <!-- 设置 YARN 使用的资源调度器 -->
    27.      <property>
    28.          <name>yarn.resourcemanager.scheduler.class</name>
    29.          <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
    30.          <description>Class used for resource scheduling.</description>
    31.      </property>
    32.      <!-- 启用跨节点资源调度 -->
    33.      <property>
    34.          <name>yarn.nodemanager.aux-services</name>
    35.          <value>mapreduce_shuffle</value>
    36.          <description>Auxiliary services used by NodeManager.</description>
    37.      </property>
    38. </configuration>
    复制代码
  • vim /etc/profile

    在末了加入以下代码
    1. export HADOOP_HOME=/export/server/hadoop
    2. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    复制代码

    source /etc/profile

  • 格式化 HDFS(如果是初次运行):如果是初次启动 HDFS,须要格式化 namenode:
    hdfs namenode -format
   注意:格式化只需进行一次,下次启动不要再次格式化,否则会缺失DataNode进程。
在你已经执行过 hdfs namenode -format 并随后修改了配置文件的环境下,通常不须要再次格式化。格式化是一个破坏性的操作,会清空 HDFS 中的数据并重新初始化文件体系。
    如果你的配置文件修改并没有涉及到 HDFS 的存储路径(如 dfs.namenode.name.dir 和 dfs.datanode.data.dir),那么格式化操作不须要重复进行。
不过,如果你修改了涉及 HDFS 存储目录的配置,并且这些目录不再和之前的格式化路径一致,可能会导致启动时的错误。这时有以下几种操作发起:
  

  • 确认是否须要重新格式化:
    如果只是一些常规配置(如网络配置或日志路径),而没有更改涉及数据存储的目录(如 dfs.namenode.name.dir 或 dfs.datanode.data.dir),则不须要再次格式化。
    如果你修改了存储路径或数据目录,且这些目录是新的或空的,则须要重新格式化 HDFS。此操作会清除现有的数据存储结构。
  • 如果不重新格式化:
    直接启动 HDFS 服务,使用以下下令:
    start-dfs.sh
    查抄是否能正常启动。如果能正常启动并使用 jps 检察各个进程正常运行,那么不须要格式化。
  1. 总结:
  2. 如果没有修改存储路径,无需再次格式化。
  3. 如果修改了存储路径并且 HDFS 无法正常启动,可以选择格式化重新初始化,但这会清除所有数据。
复制代码
11. 验证 Hadoop 安装:
  1. 运行以下命令测试 Hadoop 是否安装成功,并确保配置生效:
复制代码


  • 验证 Hadoop 版本:
    hadoop version
    正常环境下,你会看到 Hadoop 版本的信息。
  • 启动 HDFS 和 YARN 服务(伪分布式模式): 运行以下下令启动 Hadoop 的 HDFS 和 YARN 服务:
    start-dfs.sh # 启动 HDFS 服务
    start-yarn.sh # 启动 YARN 服务
  • 查抄运行状态: 查抄 Namenode、Datanode 和 ResourceManager 是否正常启动:
    jps
    你应该看到如下服务的进程:
  • NameNode
  • DataNode
  • ResourceManager
  • NodeManager
  • SecondaryNameNode

至此,Hadoop配置乐成。

  1. 温馨提示:
  2. `start-all.sh` == `start-dfs.sh`  +  `start-yarn.sh`
  3. 注释:`start-dfs.sh`与`start-yarn.sh`可合并为一个命令,即输入一个`start-all.sh`即可,简化操作。
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表