参考https://blog.csdn.net/qq_43605654/article/details/90746563
参考https://blog.csdn.net/weixin_50198333/article/details/108768630
三台机器配置环境
前期准备:
安装
三台虚拟机将hadoop2.4.0解压到/usr/local中。改名
mv hadoop2.4.0 hadoop
三台机器配置环境变量
三台虚拟机修改/etc/profile,这里写出hadoop和yarn的日志路径,hadoop脚本会读取到相应变量。
openjdk的默认安装路径/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
环境变量:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
export YARN_LOG_DIR=$HADOOP_LOG_DIR
export ZOOKEEPER_HOME=/usr/local/zookeeper
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$KAFKA_HOME/bin:$ZOOKEEPER_HOME/bin
source /etc/profile
三台机器创建目录
mkdir /usr/local/hadoop/tmp 用来存放临时文件
mkdir /usr/local/hadoop/logs 用来存放日志文件
mkdir /usr/local/hadoop/hdfs 用来存储集群数据
mkdir /usr/local/hadoop/name 用来存储文件系统元数据
mkdir /usr/local/hadoop/data 用来存储真正的数据
三台机器修改JAVA_HOME的值
进入hadoop解压后的目录下,找到两个.sh文件,修改JAVA_HOME的值,虽然有的时候可以读出来变量,但是还是写死,防止出错。
cd /usr/local/hadoop/etc/hadoop
vi hadoop-env.sh
vi yarn-env.sh
报no namenode to stop等问题
为了以防万一,三台机器安装就修改。
1.问题描述
长时间启动hadoop后,使用stop-all.sh停止时报 no namenode to stop,但jps显示namenode 确实存在
2.造成原因
hadoop默认配置是将namenode,datanode等相关进程的pid存放在/tmp目录下,但linux会定期清理/tmp目录,所以pid信息丢失,导致出现该问题
3.解决方法
修改/usr/local/hadoop/etc/hadoop/hadoop-env.sh文件中的HADOOP_PID_DIR
三台机器修改核心配置文件
vi /usr/local/hadoop/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
<description>HDFS的URI</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description>节点上本地的hadoop临时文件夹</description>
</property>
</configuration>
vi /usr/local/hadoop/etc/hadoop/mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>指定mapreduce使用yarn框架</description>
</property>
vi yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
<description>指定resourcemanager所在的hostname</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行 MapReduce程序</description>
</property>
vi slaves
格式化hdfs
在master机器上输入 hdfs namenode -format 格式化namenode。
第一次使用需格式化一次,之后就不用再格式化,如果修改了一些配置文件,则需要重新格式化。(由于配置了环境变量任意位置执行都可以)
hdfs namenode -format
启动hadoop
start-all.sh
使用jps查看每个节点的进程
用web端查看节点信息
在浏览器打开master:8088(hadoop管理)或master:50070(hdfs管理)
关闭集群
stop-all.sh
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。