首页 > 系统相关 >linux系统下Hadoop集群环境搭建

linux系统下Hadoop集群环境搭建

时间:2023-04-09 23:01:12浏览次数:51  
标签:HOME hadoop yarn Hadoop export linux 集群 server root

1、前言

基于redhat7.6系统搭建全分布式Hadoop3.3.5集群环境(模拟三台机,1主角色,2从角色)。

 

2、安装虚拟机

参考:https://www.cnblogs.com/jpxjx/p/16800831.html

 

3、虚拟机安装redhat7.6

参考:https://www.cnblogs.com/jpxjx/p/16815045.html

 

4、修改主机名

vi /etc/hosts

 

5、关闭防火墙

firewall-cmd --state #查看防火墙状态
systemctl stop firewalld.service #停止firewalld服务
systemctl disable firewalld.service #开机禁用firewalld服务

6、集群时间同步

ntpdate ntp5.aliyun.com

 

7、ssh免密登录(只需要配置hadoop至hadoop01、hadoop02即可)

#node1生成公钥私钥 (一路回车)
ssh-keygen

#node1配置免密登录到hadoop hadoop01 hadoop02
  ssh-copy-id hadoop
  ssh-copy-id hadoop01
  ssh-copy-id hadoop02

 

8、安装JDK 1.8

卸载自带的openjdk:

rpm -qa|grep java #查看已安装的包

再执行以下命令删除包

rpm -e --nodeps 包名

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64

 

 创建目录export/server并将jdk安装包上传到该目录下

 解压:tar zxvf jdk-8u241-linux-x64.tar.gz

配置环境变量:vi /etc/profile

export JAVA_HOME=/root/export/server/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

重新加载环境变量文件:source /etc/profile

 

9、Hadoop安装

上传Hadoop安装包hadoop-3.3.5.tar.gz到hadoop /root/export/server

解压:tar zxvf hadoop-3.3.5.tar.gz

 

 

10、hadoop 的环境配置

路径:/root/export/server/hadoop-3.3.5/etc/hadoop

 

10.1、hadoop-env.sh

#文件最后添加
export JAVA_HOME=/root/export/server/jdk1.8.0_241

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 

10.2、core-site.xml

<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop:8020</value>
</property>

<!-- 设置Hadoop本地保存数据路径 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/root/export/data/hadoop-3.3.5</value>
</property>

<!-- 设置HDFS web UI用户身份 -->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>

<!-- 整合hive 用户代理设置 -->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>

<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

<!-- 文件系统垃圾桶保存时间 -->
<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>

10.3、hdfs-site.xml

<!-- 设置SNN进程运行机器位置信息 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop01:9868</value>
</property>

10.4、mapred-site.xml

<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

<!-- MR程序历史服务地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>hadoop:10020</value>
</property>
 
<!-- MR程序历史服务器web端地址 -->
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>hadoop:19888</value>
</property>

<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

10.5、yarn-site.xml

<!-- 设置YARN集群主角色运行机器位置 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop</value>
</property>

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

<!-- 是否将对容器实施物理内存限制 -->
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 开启日志聚集 -->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

<!-- 设置yarn历史服务器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://hadoop:19888/jobhistory/logs</value>
</property>

<!-- 历史日志保存的时间 7天 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

10.6、workers

hadoop
hadoop01
hadoop02

 

11、分发同步hadoop安装包到其他及其hadoop01、hadoop02

cd /root/export/server

scp -r hadoop-3.3.5 root@hadoop01:$PWD
scp -r hadoop-3.3.5 root@hadoop02:$PWD

 

12、将hadoop添加到环境变量(3台机器)

vi /etc/profile

export HADOOP_HOME=/root/export/server/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

 

13、Hadoop集群启动

首次启动需格式化namenode

hdfs namenode -format
在hadoop上,使用软件自带的shell脚本一键启动。前提:配置好机器之间的SSH免密登录和workers文件 启停路径:/root/export/server/hadoop-3.3.5/sbin

HDFS集群:
启动:start-dfs.sh
停止:stop-dfs.sh
YARN集群
启动:start-yarn.sh
停止:stop-yarn.sh
Hadoop集群
启动:start-all.sh
停止:stop-all.sh

 

14、Web UI页面

HDFS集群:http://namenode_host:9870/  

其中namenode_host是namenode运行所在机器的主机名或者ip 如果使用主机名访问,否则Windows配置hosts,否则输入ip地址

 

 

YARN集群:http://resourcemanager_host:8088/ 

其中resourcemanager_host是resourcemanager运行所在机器的主机名或者ip 如果使用主机名访问,需在Windows配置hosts,否则输入ip地址

 

标签:HOME,hadoop,yarn,Hadoop,export,linux,集群,server,root
From: https://www.cnblogs.com/jpxjx/p/17300912.html

相关文章

  • Linux umask命令
    Linuxumask命令暂时只需要知道有这么个东西Linuxumask命令指定在建立文件时预设的权限掩码。umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。语法umask[-S][权限掩码]参数说明:-S以文......
  • Linux which命令
    Linuxwhich命令Linuxwhich命令用于查找文件。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。语法which[文件...]参数:-n<文件名长度>指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。-p<文件名长度>与-n参数相同,但此处的<文件名长......
  • Linux cp 命令
    Linuxcp命令非常重要,运维必用命令Linuxcp(英文全拼:copyfile)命令主要用于复制文件或目录。语法cp[options]sourcedest或cp[options]source...directory参数说明:-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组......
  • Linux touch命令
    Linuxtouch命令常用命令Linuxtouch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。ls-l可以显示档案的时间记录。语法touch[-acfm][-d<日期时间>][-r<参考文件或目录>][-t<日期时间>][--help][--version][文件或目录......
  • Linux tee命令
    Linuxtee命令Linuxtee命令用于读取标准输入的数据,并将其内容输出成文件。tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。语法tee[-ai][--help][--version][文件...]参数:-a或--append附加到既有文件的后面,而非覆盖它.-i或--ignore-inte......
  • 基于k8s的web集群项目
     准备5台linux机器   系统是centos7.9 2核/4G的配置1.k8s的部署安装1.1.准备环境:先给每台服务器起好名字,使用固定的ip地址,防止后面因为ip地址的变化,导致整个集群异常(每台机器)master192.168.18.139node1192.168.18.138node2192.168.18.137......
  • Linux split命令
    Linuxsplit命令Linuxsplit命令用于将一个文件分割成数个。该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。语法split[--help][--version][-<行数>][-b<字节>][-C<字节>][-l<行数>][要切割的文件][输出文件名]参数说明:-<行数>:指定每......
  • unidac 在linux loongxarch64或arm64使用SQLite
    unidacSQLite默认使用静态连接方式,但UNIDAC官方SQLite未提供arm64或loongxarch64静态库,造成linuxfor龙芯或arm64无法使用SQLite,经跟踪unidac源码发现将souce/uniProviders/SQLite/LiteDac.inc添加{$DEFINENOSTATIC}然后安装liteprovider10.lpk就可以。//////////////////......
  • Zookeeper集群
    一、Zookeeper概述1.Zookeeper定义及工作机制定义:Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。工作机制:Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些......
  • Linux下的IO
    阻塞IO和非阻塞IOIO本质是基于操作系统接口来控制底层的硬件之间数据传输,并且在操作系统中实现了多种不同的IO的方式(模型)IO模型描述的是不同的IO方式,比较常用的几种阻塞型IO模型9非阻塞型IO模型多路复用IO模型阻塞型IO当进程发出IO请求后,阻塞进程(让......