Hadoop【部署 01】腾讯云Linux环境CentOS Linux release 7.5.1804单机版hadoop-3.1.3详细安装步骤(安装+配置+初始化+启动脚本+验证)

本文涉及的产品
云防火墙,500元 1000GB
简介: Hadoop【部署 01】腾讯云Linux环境CentOS Linux release 7.5.1804单机版hadoop-3.1.3详细安装步骤(安装+配置+初始化+启动脚本+验证)

我使用的安装文件是 hadoop-3.1.3.tar.gz ,以下内容均以此版本进行说明。

1.前置条件

Hadoop 的运行依赖 jdk 我安装的 openjdk11【这里有个很深的坑,随后会说明】。

[root@tcloud ~]# java -version
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

2.配置免密登录

Hadoop 组件之间需要基于 SSH 进行通讯。

2.1 配置映射

配置 ip 地址和主机名映射:很关键通过ifconfig查询本机的ip地址,这个地方没有配置正确的话节点会有问题。

vim /etc/hosts
# 文件末尾增加 通过ifconfig查询到的ip地址
xxx.xx.x.x tcloud tcloud

2.2 生成公私钥

执行下面命令行生成公匙和私匙:

[root@tcloud ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:BtWqdvRxf90QPhg5p2OOIBwgEGTu4lxAd92icFc5cwE root@tcloud
The key's randomart image is:
+---[RSA 2048]----+
|+*...o. +Eo...   |
|+ .o...= =..+ o  |
| o  o.+...+  B . |
|. .  .o.+ . * +  |
|.. .   +So * o oo|
|+ .   o.. o . . +|
| o   . .       . |
|                 |
|                 |
+----[SHA256]-----+

2.3 授权

进入 /root/.ssh/ 目录下,查看生成的公匙和私匙,并将公匙写入到授权文件:

[root@tcloud .ssh]# ll
total 16
-rw------- 1 root root  786 Jul  6 11:57 authorized_keys
-rw-r--r-- 1 root root    0 Jul  5 11:06 config
-rw-r--r-- 1 root root    0 Jul  5 11:06 iddummy.pub
-rw------- 1 root root 1679 Jul 27 17:42 id_rsa
-rw-r--r-- 1 root root  393 Jul 27 17:42 id_rsa.pub
-rw-r--r-- 1 root root 1131 Jul  6 13:31 known_hosts
# 写入公匙到授权文件
[root@tcloud .ssh]# cat id_rsa.pub >> authorized_keys
[root@tcloud .ssh]# chmod 600 authorized_keys

3.HDFS环境搭建

3.1 解压

# 解压安装包并移动到/usr/local/下
tar -zxvf hadoop-3.1.3.tar.gz
mv ./hadoop-3.1.3 /usr/local/

3.2 配置环境变量

配置环境变量的方法比较多,这里统一将环境变量放在 /etc/profile.d/my_env.sh 内。

# 配置环境变量:
vim /etc/profile.d/my_env.sh
# 添加 Hadoop的PATH要配置上bin和sbin
export HADOOP_HOME=/usr/local/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# 使得配置的环境变量立即生效:
  # 首先是要赋权限【只操作一次就行】
  chmod +x /etc/profile.d/my_env.sh
source /etc/profile.d/my_env.sh

3.3 修改Hadoop配置

进入 ${HADOOP_HOME}/etc/hadoop/ 目录下,修改以下配置:

  1. hadoop-env.sh 【JDK安装路径配置】
# 查询jdk路径
[root@tcloud ~]# echo $JAVA_HOME
/usr/local/java
[root@tcloud ~]# vim /usr/local/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
# 添加jdk路径
export JAVA_HOME=/usr/local/java
  1. core-site.xml
[root@tcloud ~]# vim /usr/local/hadoop-3.1.3/etc/hadoop/core-site.xml
<configuration>
    <!--指定 namenode 的 hdfs 协议文件系统的通信地址-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://tcloud:8020</value>
    </property>
    <!--指定 hadoop 存储临时文件的目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/tmp</value>
    </property>
    <!-- 设置用户及代理 -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
    <!-- 不开启权限检查 -->
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
</configuration>
  1. hdfs-site.xml
[root@tcloud ~]# vim /usr/local/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
<configuration>
    <!--由于我们这里搭建是单机版本,所以指定 dfs 的副本系数为 1-->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <!-- 开启webhdfs -->
    <property>
      <name>dfs.webhdfs.enabled</name>
      <value>true</value>
    </property>
    <!-- 配置namenode和datanode -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>tcloud:9870</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>tcloud:9868</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///${hadoop.tmp.dir}/dfs/name1,file:///${hadoop.tmp.dir}/dfs/name2</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/dfs/data2</value>
    </property>
</configuration>
  1. slaves 特别注意:hadoop3.0 以后 slaves 变为 workers。
[root@tcloud ~]# vim /usr/local/hadoop-3.1.3/etc/hadoop/workers
# 配置所有从属节点的主机名或 IP 地址,由于是单机版本,所以指定本机即可【原文件配置的是localhost】:
tcloud

3.4 关闭防火墙

不关闭防火墙可能导致无法访问 Hadoop 的 Web UI 界面【使用云服务器还需要在安全组内开启端口】:

# 查看防火墙状态
[root@tcloud hadoop]# firewall-cmd --state
not running
# 如果是开启状态,关闭防火墙:
[root@tcloud hadoop]# systemctl stop firewalld.service

3.5 初始化

第一次启动 Hadoop 时需要进行初始化,进入 ${HADOOP_HOME}/bin/ 目录下,执行以下命令:

[root@tcloud bin]# ./hdfs namenode -format

3.6 修改启动和停止shell脚本

[root@tcloud hadoop]# vim /usr/local/hadoop-3.1.3/sbin/start-dfs.sh
[root@tcloud hadoop]# vim /usr/local/hadoop-3.1.3/sbin/stop-dfs.sh

start-dfs.sh,stop-dfs.sh 这两个文件顶部添加以下参数:

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

3.7 启动HDFS

进入 ${HADOOP_HOME}/sbin/ 目录下,启动 HDFS:

[root@tcloud sbin]# ./start-dfs.sh

3.8 验证是否启动成功

方式一:执行 jps 查看 NameNode、SecondaryNameNode 和 DataNode 服务是否已经启动:

[root@tcloud ~]# jps
27346 DataNode
27603 SecondaryNameNode
29398 Jps
27198 NameNode

方式二:查看 Web UI 界面

根据配置的地址进行访问:

<property>
        <name>dfs.namenode.http-address</name>
        <value>tcloud:9870</value>
    </property>

至此,Hadoop单机版安装部署成功。

目录
相关文章
|
2月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
319 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
28天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
64 3
|
28天前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
34 3
|
2月前
|
Ubuntu 应用服务中间件 Linux
Linux下搭建Nginx环境的搭建
Linux下搭建Nginx环境的搭建
68 6
|
1月前
|
Linux UED iOS开发
|
2月前
|
监控 Linux 云计算
Linux操作系统在云计算环境中的实践与优化###
【10月更文挑战第16天】 本文探讨了Linux操作系统在云计算环境中的应用实践,重点分析了其在稳定性、安全性和高效性方面的优势。通过具体案例,阐述了Linux如何支持虚拟化技术、实现资源高效分配以及与其他开源技术的无缝集成。文章还提供了针对Linux系统在云计算中的优化建议,包括内核参数调整、文件系统选择和性能监控工具的应用,旨在帮助读者更好地理解和应用Linux于云计算场景。 ###
48 3
|
2月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
66 1
|
23天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
132 6
|
24天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
64 3
|
24天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
60 2