博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

启动Hadoop集群 namenode 未启动 检查日志和xml配置 原因 java 版本太高

启动失败:

1
2
3
4
5
6
7
8
9
10
11
12
[root@hadoop106 ~]# shells/jps.sh
==== jps 106 ===
17086 DataNode
16942 NameNode
17582 Jps
==== jps 107 ===
16466 DataNode
17017 Jps
==== jps 108 ===
16308 SecondaryNameNode
16550 Jps
16185 DataNodeb

hadoop version

Hadoop 3.1.3

查看日志:cd  /opt/module/hadoop/logs

vim hadoop-root-datanode-hadoop106.log 

查找关键词:/SHUTDOWN 

n上一个  N下一个

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: RECEIVED SIGNAL 15

vim hadoop-root-namenode-hadoop106.log

NMWebapps failed to start.

解决:将  /etc/profile.d/my_env.sh 中的 java 环境变量 从 11 变为 1.8 即可

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk
export JAVA_VERSION=8
export PATH=$PATH:$JAVA_HOME/bin

用户查看 hdfs 浏览器地址栏:hadoop106:9870     内部端口 8020

============???===shell 脚本 ${parameter:offset:length}===???===========

查看xml配置

cd /opt/module/hadoop/etc/hadoop

ls *.xml

vim core-site.xml

复制代码
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop106:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop/data</value>
</property>

<!--使用HiveServer2 and Beeline模式运行时,启动好HiveServer后运行
     beeline -u jdbc:hive2://localhost:10000 -n root 连接server时出现
java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
User root is not allowed to impersonate anonymous 错误。故配置:-->
<property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
 </property>
<property>
        <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
<!--Hadoop.proxyuser.root.hosts配置项名称中root部分为报错User:* 中的用户名部分
例如User: zhaoshb is not allowed to impersonate anonymous则需要将xml变更为如下格式-->
<property>
        <name>hadoop.proxyuser.zhaoshb.hosts</name>
        <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.zhaoshb.groups</name>
        <value>*</value>
</property>
<!--lzo 编码 压缩-->
<property>
<name>io.compression.codecs</name>
<value>
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec,
com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec
</value>
</property>

<property>
    <name>io.compression.codec.lzo.class</name>
    <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

</configuration>
                         
复制代码

vim hdfs-site.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- nn web 端访问地址-->
<property>
 <name>dfs.namenode.http-address</name>
 <value>hadoop106:9870</value>
 </property>
<!-- 2nn web 端访问地址-->
 <property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>hadoop108:9868</value>
 </property>
<!--
<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/opt/module/hadoop/tmp/dfs/name</value>
</property>
<property>
 <name>dfs.datanode.data.dir</name>
 <value>file:/opt/module/hadoop/tmp/dfs/data</value>
</property>
-->
<!--HDFS存储 多目录-->
<!--
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///dfs/data1,file:///hd2/dfs/data2,file:///hd3/dfs/data3,file:///hd4/dfs/data4</value>
</property>
-->
<!--HDFS参数调优 hdfs-site.xml
     NameNode有一个工作线程池,用来处理不同DataNode的并发心跳以及客户端并发的元数据操作。
对于大集群或者有大量客户端的集群来说,通常需要增大参数dfs.namenode.handler.count的默认值10。
System.out.println(20*Math.log(3));==21-->
<property>
    <name>dfs.namenode.handler.count</name>
    <value>21</value>
</property>
</configuration>
                                            
复制代码

vim mapred-site.xml 

复制代码
<configuration>

<!-- 指定 mr 框架为 yarn 方式 -->
<property>
 <name>mapreduce.framework.name</name>
  <value>yarn</value>
<!--<value>yarn-tez</value>-->
<!-- <final>true</final>-->
</property>

<!-- 历史服务器端地址 -->
<property>
 <name>mapreduce.jobhistory.address</name>
 <value>hadoop106:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>hadoop106:19888</value>
</property>
<!-- 你当前装的hadoop的地址 -->
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=/opt/module/hadoop</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=/opt/module/hadoop</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=/opt/module/hadoop</value>
</property>

<!--Hadoop 配置调优处理-->
<property>
  <name>mapreduce.map.memory.mb</name>
  <value>1536</value>
</property>
<property>
  <name>mapreduce.map.java.opts</name>
  <value>-Xmx1024M</value>
</property>
<property>
  <name>mapreduce.reduce.memory.mb</name>
  <value>3072</value>
</property>
<property>
  <name>mapreduce.reduce.java.opts</name>
  <value>-Xmx2560M</value>
</property>
</configuration>
复制代码

vim yarn-site.xml

复制代码
<configuration>

<!-- Site specific YARN configuration properties -->
<property>
<!-- 指定 MR 走 shuffle -->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
 <!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop107</value>
</property>

<property>
 <name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
</property>
 <!-- 开启日志聚集功能 -->
<property>
 <name>yarn.log-aggregation-enable</name>
 <value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
 <name>yarn.log.server.url</name>
 <value>http://hadoop106:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
 <name>yarn.log-aggregation.retain-seconds</name>
 <value>604800</value>
</property>
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!--Hive查询时,报错java.lang.OutOfMemoryError: Java heap space-这种情况属于JVM堆内存溢出了,在yarn-site.xml文件中添加如下代码-->
<property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>20480</value>
</property>
<!--
<property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>2048</value>
</property>
<property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
</property>
<property>
        <name>mapred.child.java.opts</name>
        <value>-Xmx1024m</value>
</property>
-->
<!--NodeManager内存和服务器实际内存配置尽量接近,如服务器有128g内存,但是NodeManager默认内存8G,不修改该参数最多只能用8G内存。NodeManager使用的CPU核数和服务器CPU核数尽量接近。
     ①yarn.nodemanager.resource.memory-mb       NodeManager使用内存数
②yarn.nodemanager.resource.cpu-vcores   NodeManager使用CPU核数-->
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>20480</value>
</property>

</configuration>
复制代码

vim hadoop-env.sh

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

 

posted @   CHANG_09  阅读(268)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示