运行环境
ubuntu18.04
hadoop2.7.1
jdk1.8
1.修改每台服务器的主机名
vim /etc/hostname
4台服务器的主机名分别为 Master、Slave1、Slave2、Slave3
保存修改后重启服务器reboot
2.修改每台服务器的hosts文件
vim /etc/hosts
添加以下内容
[Master的ip] Master
[Slave1的ip] Slave1
[Slave2的ip] Slave2
[Slave3的ip] Slave3
3.免密进入下面网址教程
https://blog.csdn.net/qq_39124136/article/details/101313888
4.安装JDK
安装jdk1.8
下载jdk1.8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
解压
mkdir /usr/lib/jvm
tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/lib/jvm
修改配置文件
vim ~/.bashrc
添加以下内容
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_211
export JRE_HOME= J A V A H O M E / j r e e x p o r t C L A S S P A T H = . : {JAVA_HOME}/jre export CLASSPATH=.: JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib: J R E H O M E / l i b e x p o r t P A T H = {JRE_HOME}/lib export PATH= JREHOME/libexportPATH={JAVA_HOME}/bin:$PATH
使修改生效
source ~/.bashrc
5.安装hadoop2.7
安装hadoop3.2
下载hadoop3.2 https://hadoop.apache.org/releases.html
解压
tar zxvf hadoop-3.2.0.tar.gz -C /usr/local
cd /usr/local
mv hadoop-3.2.0 hadoop
修改配置文件
vim ~/.bashrc
添加以下内容
export HADOOP_HOME=/usr/local/hadoop
export PATH= P A T H : PATH: PATH:HADOOP_HOME/sbin:$HADOOP_HOME/bin
使修改生效
source ~/.bashrc
修改hadoop配置文件
一共需要修改5个文件,位于 /usr/local/hadoop/etc/hadoop/
配置 slaves ,添加以下内容
Slave1
Slave2
Slave3
具体配置情况
mapred-site.xml.template(hadoop本身,将其复制重命名为mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
配置-env.sh文件:
配置 hadoop-env.sh文件:
cd /usr/local/hadoop/etc/hadoop
sudo vim hadoop-env.sh
将JAVA_HOME文件配置为本机JAVA_HOME路径
配置 yarn-env.sh
将其中的JAVA_HOME修改为本机JAVA_HOME路径(先把这一行的#去掉)
将master配置好的Hadoop复制到从节点上:
在从节点slave上建立好放置的文件目录,与master上相同位置:
sudo mkdir /usr/local/hadoop
master上执行指令:
scp -r /usr/local/hadoop/hadoop-2.7.1 hadoop@slave1: /usr/local/hadoop
(如果出现权限问题,请看https://blog.csdn.net/qq_39124136/article/details/102782284)
6.启动hadoop:
cd /usr/local/hadoop
hadoop namenode -format # 格式化
sbin/start-all.sh # 启动hadoop
(如果从节点输入jps后没有datanode:https://blog.csdn.net/qq_39124136/article/details/102782284)
7.测试
7.1 最后用自带的样例测试hadoop集群能不能正常跑任务
hadoop jar /home/hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar pi 10 10
7.2 hadoop自带的wordcount例子,这个是统计单词个数的,首先要在hdfs系统中创建文件夹,要查看hdfs系统可以通过hadoop fs -ls来查看hdfs系统的文件以及目录情况,如下图所示:
(1)使用如下命令在hdfs中创建一个word_count_input文件夹:
hadoop fs -mkdir word_count_input
(2)然后使用如下命令在本地创建两个文件file1.txt和file2.txt:
sudo vim file1.txt
然后在file1.txt输入如下内容,由此可以看到:hello 5,hadoop 4,sunxj 2 win 1:
hello hadoop
hello sunxj
hello hadoop
hello hadoop
hello win
sunxj hadoop
(ESC :wq 进行保存)
(3)在file2.txt输入如下内容,由此可以看到:hello 2,linux 2,window 2:
linux window
hello linux
由此可以计算出world的个数分别为:hello有7个,hadoop有4,sunxj有2个,win有1个inux,有2个,window有2个。
(4