Hadoop伪分布式搭建


版本

本教程基于hadoop 2.7.7、java 1.8、CentOS 8.3

基本配置顺序相同,有区别处会标明

使用此教程之前确保虚拟机安装完毕,并且可以连接Xshell

1. 基础配置

关闭防火墙

systemctl stop firewalld

禁止防火墙开机自启

systemctl disable firewalld.service

更改时区

timedatectl set-timezone Asia/Shanghai

安装vim

yum install vim

2. 安装jdk

进入安装包目录

cd /usr/local/software/

解压jdk压缩包

tar -xzf jdk-8u202-linux-x64.tar.gz
// 或者
tar -xzvf jdk-8u202-linux-x64.tar.gz

注:参数也可添加v两者的区别是v参数可以查看解压过程信息

重命名,并将文件夹放入/usr/local下

mv jdk1.8.0_202/ /usr/local/jdk

配置系统环境变量

vim /etc/profile

添加

JAVA_HOME=/usr/local/jdk
JRE_HOME=/usr/local/jdk/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

使配置生效

source /etc/profile

查看java版本

java -version

3. SSH

首先配置hosts文件注:把ip修改为自己的ip

vim /etc/hosts
192.168.43.24 master

设置本地ssh

ssh master

cd ~/.ssh
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

设置后测试

ssh master

4. Hadoop安装

进入安装包目录

cd /usr/local/sortware/

解压hadoop压缩包

tar -zxf hadoop-2.7.7.tar.gz

重命名并改变位置

mv hadoop-2.7.7 /usr/local/hadoop

查看hadoop版本信息

cd /usr/local/hadoop
./bin/hadoop version

配置系统环境变量

vim /etc/profile

添加

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

使配置生效

source /etc/profile

5. Hadoop配置

编辑hadoop-env.sh环境配置文件,找到export JAVA_HOME=${JAVA_HOME},将该语句修改为

cd /usr/local/hadoop/etc/hadoop
vim hadoop-env.sh

export JAVA_HOME=/usr/local/jdk

编辑 core-site.xml

vim core-site.xml

fs.defaultFS
hdfs://master:9000



hadoop.tmp.dir
/root/hadoopData/tmp

编辑 hdfs-site.xml

vim hdfs-site.xml

dfs.namenode.name.dir
file:/root/hadoopData/name


dfs.datanode.data.dir
file:/root/hadoopData/data



dfs.replication
1


dfs.permissions.enabled
false

通过yarn在单节点中管理MapReduce任务,配置 mapred-site.xml

由于没有mapred-site.xml 文件,需要从模板文件复制一个注:使用ls查看文件,如果有那就不用复制

jobhistroy服务不是必选项,如果后期学mapreduce,有jobhistroy服务更方便一点。

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

mapreduce.framework.name
yarn



mapreduce.application.classpath
$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*




mapreduce.jobhistory.address
master:10020


mapreduce.jobhistory.webapp.address
master:19888


配置 yarn-site.xml

vim yarn-site.xml

yarn.nodemanager.aux-services
mapreduce_shuffle



yarn.nodemanager.env-whitelist
JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSP
ATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME

初始化

hadoop namenode -format

启动

/usr/local/hadoop/sbin/start-all.sh

开启 jobhistoryserver

/usr/local/hadoop/sbin/mr-jobhistory-daemon.sh start historyserver

最后使用jps命令查看服务是否都打开

jps

6. 测试运行

进入网页Web页面,分别在主机浏览器地址栏输入以下地址(用自己ip)

50070:HDFS WEB UI端口
8088 : Yarn 的WEB UI 接口
19888:jobhistory WEB UI端口

注:对于50070,如果hadoop版本为3.X,进入端口为9870

192.168.34.56:50070
192.168.34.56:8088
192.168.34.56:19888

运行mapreduce实例,结果为4.000000

cd /usr/local/hadoop/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-2.7.7.jar pi 2 3