Hadoop: 安装一个单节点集群
最近准备开始学习hadoop,所以需要自己配置hadoop集群。短期的目标是学会配置hadoop环境(版本3.2.2 为当前的稳定版本),熟悉linux系统(安装版本Centos8.3)以及初步了解虚拟机模拟客户端以及集群的使用。本文的教程都来来自于hadoop的官网,以及个人在安装过程中,所需要补充的知识。
hadoop官方文档连接:setting up a single node cluster
目的
这份文档的目标是展示如何安装以及配置一个单节点集群,这样我们可以快速上手mr和hdfs
先决条件(软件依赖)
支持的平台
- GNU/Linux
- windows, 但本文不涉及windows的安装教程
需要安装的软件
- Java (Apache Hadoop from 3.0.x to 3.2.x now supports only Java 8) 由于我将要安装3.2.2, 所以这里Java只能安装 Java 8
- ssh 必须安装并且在使用hadoop的时候要开启sshd。另外pdsh也建议安装,这样可以更好的ssh资源管理
ssh是一个远程连接全协议,sshd是ssh的守护进程,pdsh是用来并行分发指令的。
Java 配置非常麻烦,因为需要配置环境变量。
但当我使用yum安装的时候,不知道是否配置好了变量
考虑另外一种:
下载java的解压包,安装到目录。
配置环境变量:
JAVA_HOME
ClASSPATH
PATH (编译器的位置)
安装软件
上述软件是必须要安装的。但因为我使用的是centos 8.3. apt-get是ubuntu的安装工,类似于centos的yum, 所以我需要使用centos的安装工具来安装上述软件
官方例子for Ubuntu Linux:
$ sudo apt-get install ssh
$ sudo apt-get install pdsh
下载hadoop
可以从hadoop的镜像网站下,获取资源。
hadoop镜像资源
清华镜像
准备启动一个hadoop分布式集群
按照我的理解,其实安装好java, 并不需要去配置java的虚拟环境。
hadoop需要你在 hadoop目录下 etc/hadoop/hadoop-env.sh 环境脚本中,设置环境变量
export JAVA_HOME=/usr/lib/jvm/java $ bin/hadoop
本质上就是运行了hadoop,hadoop指令会展示hadoop使用文档
standalone Operation
这个就是一个分布式的模型,本质上是单个single java process
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar grep input output 'dfs[a-z.]+'
$ cat output/*
伪分布式操作
按照多进程的方式运行
如果ssh localhost需要输入密码,那么你就要利用下面的命令。