Linux环境Hadoop安装配置

转载地址:YBCarry

Linux下,配置Hadoop的相关配置文件:
在这里插入图片描述

1. 准备工作

(1)linux配置IP(NAT模式)

  • 相关信息必须与VMnet8保持一致
  • 通过命令:vi /etc/sysconfig/network-scripts/ifcfg-(自己的名字) 进行编辑
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=9cbcf25a-600d-4d9c-88ad-ab509ab6e52a
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.44.121
PREFIX=24
GATEWAY=192.168.44.2
DNS1=8.8.8.8
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
  • 重启网络服务:service network restart

(2)linux关闭防火墙

  • 查看防火墙状态:firewall-cmd --state ->running
  • 关闭防火墙-本次有效:systemctl stop firewalld.service
  • 禁用防火墙-永久生效:systemctl disable firewalld.service ->not running

(3)设置主机名

  • 位置:vi /etc/hostname,输入主机名
  • **注意:**需要重启:reboot

(4)设置映射

  • 位置:vi /etc/hosts,输入集群全部IP和主机名
  • 格式:192.168.44.111 bigdata111

(5)设置免密登录

  • 生成密钥:ssh-keygen (三次回车键)
  • 拷贝到主机:ssh-copy-id 主机名 (所有节点都拷贝)

2. 安装jdk

(1)上传安装包:

CRT:alt+p
winscp:拖入目录

(2)解压:

tar -zxvf jdkXXXXX.tar.gz -C 目标目录

(3)配置环境变量:

命令:

export JAVA_HOME=jdk目标目录
export PATH=JAVA_HOME/bin

**注意:**需要使环境变量生效:source /etc/profile

3. 分发jdk到其他节点

(1)发送文件:

scp jdk 目标主机名:目标目录
scp /etc/profile 目标主机名:目标目录
source /etc/profile

(2)验证:

javac java java -version

4. 安装hadoop

(1)上传安装包:

CRT:alt+p
winscp:拖入目录

(2)解压:

tar -zxvf HadoopXXXXX.tar.gz -C 目标目录

(3)配置环境变量:

命令:

vi /etc/profile

export HADOOP_HOME=HADOOP目标目录
export PATH=HADOOP_HOME/bin:$HADOOP_HOME/sbin

**注意:**需要使环境变量生效:source /etc/profile

(4)修改配置文件:

hadoop-env.sh
export JAVA_HOME=Java路径

core-site.xml

  <!-- 指定HDFS中NameNode的地址 -->
  <property>
          <name>fs.defaultFS</name>
          <value>hdfs://bigdata121:9000</value>
  </property>

  <!-- 指定hadoop运行时产生文件的存储目录 -->
  <property>
          <name>hadoop.tmp.dir</name>
          <value>/opt/module/hadoop-2.7.3/tmp</value>
  </property>

  <!-- 回收站设置,保存时间两天  -->
  <property>
          <name>fs.trash.interval</name>
          <value>2880</value>
  </property>

hdfs-site.xml

  <!-- 指定HDFS副本的数量,数据块冗余度(默认为3) -->
  <property>
          <name>dfs.replication</name>
          <value>2</value>
  </property>

  <!-- 指定hadoop产生namenode、datanode文件的存储目录 -->

    <!--注释配置HDFS的权限检查,默认是true-->
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>

    <!-- hdfs副本的配置bigdata122 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>bigdata122:50090</value>
    </property>

    <!-- 配置checkpoint时间 -->
    <property>
        <name>dfs.namenode.checkpoint.period</name>
        <value>3600</value>
	</property>

mapred-site.xml(默认没有) $ cp mapred-site.xml.template mapred-site.xml mapreduce.framework.name yarn

yarn-site.xml

  <!--配置Yarn的ResourceManager的地址-->
  <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>bigdata121</value>
  </property>
  <property>  
  	<name>yarn.resourcemanager.address</name>  
  	<value>bigdata121:8032</value>  
  </property>  
  <property>  
  	<name>yarn.resourcemanager.scheduler.address</name>  
  	<value>bigdata121:8030</value>  
  </property>  
  <property>  
  	<name>yarn.resourcemanager.resource-tracker.address</name>  
  	<value>bigdata121:8031</value>  
  </property>

  <!--NodeManager执行MR任务的方式是Shuffle洗牌-->
  <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>

(5)修改slaves文件:

加入从节点的主机名

(6)格式化namenode

hadoop namenode -format

(7)启动:

start-all.sh	//不推荐这种方式

//Hadoop启动停止
分别启动hdfs组件: hadoop-daemon.sh start|stop   namenode|datanode|secondartnamenode
启动yarn:		yarn-daemon.sh		start|stop	resourecemanager|nodemanager

各个模块分开启动:(配置ssh是前提)
start|stop-dfs.sh		start|stop-yarn.sh

重复格式化:hadoop.tmp.dir

  • 停止集群
  • 删除原来的tmp文件。(rm -rf)
  • 重新格式化
  • 启动集群

Hadoop集群结构

在这里插入图片描述

HDFS_DownLoad

在这里插入图片描述

HDFS_Upload

在这里插入图片描述

namenode工作机制

在这里插入图片描述

datanode工作机制

在这里插入图片描述

maptask决定机制

在这里插入图片描述

yarn工作流程

在这里插入图片描述

mapreduce流程

在这里插入图片描述

shuffle机制

在这里插入图片描述

原文地址:https://www.cnblogs.com/aixing/p/13327400.html