Hadoop【1】- Hadoop的配置

环境说明:

  • Centos 8, 三个节点

服务器配置

(1)设置主机名(三个节点)

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=had-node1 

(2)配置IP、主机名映射

vi /ect/hosts
192.168.33.101 had-node1
192.168.33.102 had-node
192.168.33.103 had-node3

(3)配置免密ssh登陆(从主节点到从节点)

  1. 生成ssh免登陆密钥,生成私钥和公钥

    ssh-keygen -t rsa

  2. 将公钥拷贝到免密登陆的目标机器上

    ssh-copy-id had-node1

    ssh-copy-id had-node2

    ssh-copy-id had-node3

(4)配置防火墙

systemctl stop firewalld.service (临时关闭)
systemctl disable firewalld.service (禁止firewall开机启动)
firewall-cmd --state (查看防火墙状态)

一、安装jdk

(先检查是否安装了JDK, 如果安装了,先卸载当前版本)

  • (1) 去官网下载jdk , 并解压

  • (2)设置环境变量

打开文件

vi /etc/profile

在该文件末尾加上

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

刷新配置

source /etc/profile
  • (3) 检查

      java -version
    
  • (4)scp到从节点

       scp -r ~/java root@had-node2:/root/
       scp -r ~/java root@had-node3:/root/
       scp -r /etc/profile root@had-node2:/etc/
       scp -r /etc/profile root@had-node3:/etc/
    

注意: 到从节点机器也要刷新配置

二、Hadoop 安装包目录结构:

(1)bin: Hadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现, 用户可以直接使用这些脚本管理和使用Hadoop。

(2)etc:Hadoop配置文件所在的目录, 包括core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml等相关的配置文件。

(3)include:对外提供的编程库头文件(具体动态库和静态库在lib目录中)。这些头文件均是C++定义的。通常用于C++程序访问HDFS或者编程MapReduce程序。

(4)lib:该目录包含了Hadoop对外提供的编程动态库和静态库, 与include目录中的头文件结合使用。

(5)libexec:各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数等信息。

(6)sbin:Hadoop管理脚本所在的目录, 主要包含HDFS和YARN中各类服务的启动/关闭脚本。

(7)share:Hadoop各个模块编译后的jar包所在的目录。

三、Hadoop配置文件修改

Hadoop安装主要就是配置文件的修改, 一般在主节点进行修改, 完成后scp下发给其他各个从节点。

3.1 hadoop-env.sh

文件中设置的是hadoop运行时需要的环境遍历。JAVA_HOME是必须设置的。即使我们当前的系统中设置了JAVA_HOME,它也是不认识的,因为Hadoop即使是在本机上执行, 它也是把当前的执行环境当作远程服务器。

vi hadoop-env.sh
export JAVA_HOME=/root/java/jdk1.8.0_251

3.2 core-site.xml

Hadoop核心配置

vi core-site.xml
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://had-node1:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name> 
    <value>/home/David_Wolfowitz/Hadoop/tmp</value>
</property>

3.3 hdfs-site.xml

vi hdfs-site.xml
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>had-node2:50090</value>
</property>

3.4 mapred-site.xml

vi mapred-site.xml
<!-- 指定mr运行时框架, 这里指定是在yarn上, 默认时local -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

3.5 yarn-site.xml

vi yarn-site.xml
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>had-node1</value>
</property>

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

3.6 slaves

vi slaves
had-node1
had-node2
had-node3

四、Hadoop集群启动

1、启动方式

要启动Hadoop集群, 需要启动HDFSYARN两个集群。
注意:首次启动HDFS时, 必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的HDFS在物理上是不存在的。

hdfs namenode -format 

或者
hadoop namenode -format

关于hdfs的格式化:

  • 首次启动需要进行格式化
  • 格式化本质是进行文件系统的初始化操作,创建一些自己需要的文件
  • 格式化之后, 集群启动成功, 后续再也不要进行格式化
  • 格式化的操作在hdfs集群的主角色(namenode)所在的机器上操作
1.1 单节点逐个启动

在主节点上使用以下命令启动HDFS NameNode:

hadoop-daemon.sh start namenode

在每个节点上使用以下命令启动 HDFS DataNode:

hadoop-daemon.sh start datanode

在主节点上使用以下命令启动YARN ResourceManager:

hadoop-daemon.sh start nodemanager

以上脚本位于$HADOOP_PREFIX/sbin/目录下, 如果想停止某个节点上的某个角色,只需将命令中的start改为stop即可。

1.2 脚本一键启动

如果配置了/etc/hadoop/slaves和ssh免密登录, 则可以使用程序脚本启动所有Hadoop两个集群的相关进程, 在主节点所设定的机器上执行。
(在所安装的hadoop路径下的sb)
hdfs:

$HADOOP_PREFIX/sbin/start-dfs.sh

yarn:

$HADOOP_PREFIX/sbin/start-yarn.sh

停止集群:

stop-dfs.sh、stop-yarn.sh

QAQ

hdfs:

Starting namenodes on [had-node1]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [had-node2]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

在start-dfs.sh 和stop-dfs.sh中添加:

HDFS_DATANODE_USER=root

HADOOP_SECURE_DN_USER=hdfs

HDFS_NAMENODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

yarn:
在start-yarn.sh 和 stop-yarn.sh中添加:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

参考文献:

【1】 腾讯课堂:大数据hadoop入门教程

【2】 Hadoop之JDK的安装

【3】安装JDK、Hadoop及其配置

【4】CentOS7查看和关闭防火墙

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值