云服务器搭建配置单节点Hadoop踩坑记录
Hadoop官方指南:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
准备
根据团队情况申请云服务器,本文的配置为:
8核;16G;系统盘:100G;数据盘:500G
TencentOS Server
方便起见,这里没有使用容器,直接将服务部署在机器上原生运行(后续实际生产应该会转移到docker上)
Hadoop安装
安装Java,ssh
机器自带,略
官方推荐安装pdsh
yum install pdsh
下载镜像
目前最新版:https://dlcdn.apache.org/hadoop/common/current/hadoop-3.4.0.tar.gz
在主机下载完毕,使用scp命令将镜像上传到服务器:
scp -P 36000 hadoop-3.4.0.tar.gz <user>@xxx.xxx.xxx.xxx:/data/download
服务器上解压缩
tar -zxvf hadoop-3.4.0.tar.gz
进入hadoop目录,由于没有配置系统路径,后续操作默认在该目录下进行
配置Java
找到Java安装位置
java -XshowSettings:properties -version 2>&1 | grep 'java.home'
编辑etc/hadoop/hadoop-env.sh
# set to the root of your Java installation
export JAVA_HOME=/usr/java/latest
运行
此时会出现使用文档
HDFS测试
Hadoop集群可设置成如下模式:
- Local (Standalone) Mode (单节点单进程)
- Pseudo-Distributed Mode (伪分布式,单节点多进程)
- Fully-Distributed Mode (全分布式,多节点多进程)
由于只有一个机器,对前两种模式进行测试
Standalone Operation
mkdir input
cp etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep input output 'dfs[a-z.]+'
cat output/*
该示例是一个grep应用,使用MapReduce任务正则匹配特定字符串