一.配置 Linux 系统基础环境
1.查看服务器的 IP 地址
ip add show
2.绑定主机名与 IP 地址
vi /etc/hosts
3.查看 SSH 服务状态
systemctl status sshd
4.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
5.创建 hadoop 用户
useradd hadoop
echo "1" |passwd --stdin hadoop
二.安装 JAVA 环境
1.下载 JDK 安装包
JDK 安 装 包 需 要 在 Oracle 官 网 下 载
2.卸载自带 OpenJDK
rpm -qa | grep java
rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64
rpm -e --nodeps tzdata-java-2022e-1.el7.noarch
rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.352.b08-2.el7_9.x86_64
rpm -qa | grep java
java --version
3.安装 JDK
tar -zxvf /opt/software/jdk-8u152-linux-x64.tar.gz -C /usr/local/src/
ls /usr/local/src/
4.设置 JAVA 环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/src/jdk1.8.0_152
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
echo $JAVA_HOME
java -version
三.安装 Hadoop 软件
1.安装 Hadoop 软件
tar -zxvf /opt/software/hadoop-2.7.1.tar.gz -C /usr/local/src/
ll /usr/local/src/
ll /usr/local/src/hadoop-2.7.1/
2.配置 Hadoop 环境变量
vi /etc/profile
export HADOOP_HOME=/usr/local/src/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
hadoop
3.修改目录所有者和所有者组
chown -R hadoop:hadoop /usr/local/src/
ll /usr/local/src/
四.安装单机版 Hadoop 系统
1.配置 Hadoop 配置文件
cd /usr/local/src/hadoop-2.7.1/
vi etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/local/src/jdk1.8.0_152
2.测试 Hadoop 本地模式的运行
(1).切换到 hadoop 用户
su - hadoop
(2).创建输入数据存放目录
mkdir ~/input
ls
(3).创建数据输入文件
vi input/data.txt
Hello World
Hello Hadoop
Hello Husan
(4).测试 MapReduce 运行
hadoop jar /usr/local/src/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount ~/input/data.txt ~/output
ll output/
cat output/part-r-00000
五.Hadoop平台环境配置
1.实验环境下集群网络配置
hostnamectl set-hostname slave1
bash
hostnamectl set-hostname slave2
bash
vi /etc/hosts
2.生成 SSH 密钥
(1).每个节点安装和启动 SSH 协议
rpm -qa | grep openssh
rpm -qa | grep rsync
(2).切换到 hadoop 用户
su - hadoop
(3).每个节点生成秘钥对
ssh-keygen -t rsa
(4).查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚 生产的无密码密钥对
ls ~/.ssh/
(5).将 id_rsa.pub 追加到授权 key 文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ls ~/.ssh/
(6).修改文件"authorized_keys"权限
chmod 600 ~/.ssh/authorized_keys
ll ~/.ssh/
(7).配置 SSH 服务
vi /etc/ssh/sshd_config
PubkeyAuthentication yes #找到此行,并把#号注释删除
(8).重启 SSH 服务
systemctl restart sshd
(9).切换到 hadoop 用户
su - hadoop
(10).验证 SSH 登录本机
ssh localhost
3.交换 SSH 密钥
(1).将 Master 节点的公钥 id_rsa.pub 复制到每个 Slave 点
scp ~/.ssh/id_rsa.pub hadoop@slave1:~/
scp ~/.ssh/id_rsa.pub hadoop@slave2:~/
(2).在每个 Slave 节点把 Master 节点复制的公钥复制到authorized_keys 文件
cat ~/id_rsa.pub >>~/.ssh/authorized_keys #slave1
cat ~/id_rsa.pub >>~/.ssh/authorized_keys #slave2
(3).在每个 Slave 节点删除 id_rsa.pub 文件
rm -rf ~/id_rsa.pub #slave1
rm -rf ~/id_rsa.pub #slave2
(4).将每个 Slave 节点的公钥保存到 Master
scp ~/.ssh/id_rsa.pub hadoop@master:~/ #slave1
cat ~/id_rsa.pub >>~/.ssh/authorized_keys
rm -rf ~/id_rsa.pub
scp ~/.ssh/id_rsa.pub hadoop@master:~/ #slave2
cat ~/id_rsa.pub >>~/.ssh/authorized_keys
rm -rf ~/id_rsa.pub
4.验证 SSH 无密码登录
(1).查看 Master 节点 authorized_keys 文件
cat ~/.ssh/authorized_keys
(2).查看 Slave 节点 authorized_keys 文件
cat ~/.ssh/authorized_keys
(3).验证 Master 到每个 Slave 节点无密码登录
ssh slave1
ssh slave2
(4).验证两个 Slave 节点到 Master 节点无密码登录
ssh master #slave1
ssh master #slave2
(5).配置两个子节点slave1、slave2的JDK环境
#master
cd /usr/local/src/
ls
scp -r jdk1.8.0_152 root@slave1:/usr/local/src/
scp -r jdk1.8.0_152 root@slave2:/usr/local/src/
#slave1 #slave2
ls /usr/local/src/
vi /etc/profile
source /etc/profile
java -version
六.Hadoop集群运行
1.在 Master 节点上安装 Hadoop
(1).将 hadoop-2.7.1 文件夹重命名为 Hadoop
cd /usr/local/src/
mv hadoop-2.7.1 hadoop
ls
(2).配置 Hadoop 环境变量
vim /etc/profile
tail -n 4 /etc/profile
(3).使配置的 Hadoop 的环境变量生效
su - hadoop
source /etc/profile
exit
(4).执行以下命令修改 hadoop-env.sh 配置文件
cd /usr/local/src/hadoop/etc/hadoop/
vim hadoop-env.sh
export JAVA_HOME=/usr/local/src/jdk1.8.0_152
2.配置 hdfs-site.xml 文件参数
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/src/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/src/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
3.配置 core-site.xml 文件参数
vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.10.10:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/src/hadoop/tmp</value>
</property>
</configuration>
4.配置 mapred-site.xml
pwd
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
5.配置 yarn-site.xml
vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
6.Hadoop 其他相关配置
(1).配置 masters 文件
vim masters
cat masters
(2).配置 slaves 文件
vim slaves
cat slaves
(3).新建目录
mkdir /usr/local/src/hadoop/tmp
mkdir /usr/local/src/hadoop/dfs/name -p
mkdir /usr/local/src/hadoop/dfs/data -p
(4).修改目录权限
chown -R hadoop:hadoop /usr/local/src/hadoop/
(5).同步配置文件到 Slave 节点
scp -r /usr/local/src/hadoop/ root@slave1:/usr/local/src/
scp -r /usr/local/src/hadoop/ root@slave2:/usr/local/src/
七.hadoop 集群运行
1.配置 Hadoop 格式化
(1).NameNode 格式化
cd /usr/local/src/hadoop/
bin/hdfs namenode –format
(2).启动 NameNode
hadoop-daemon.sh start namenode
jps
2.查看 Java 进程
(1).slave节点 启动 DataNode
hadoop-daemon.sh start datanode #slave1
jps
hadoop-daemon.sh start datanode #slave2
jps
(2).启动 SecondaryNameNode
hadoop-daemon.sh start secondarynamenode
jps
(3).查看 HDFS 数据存放位置
ll dfs/
3.查看 HDFS 的报告
hdfs dfsadmin -report
4.使用浏览器查看节点状态
(1).在 HDFS 文件系统中创建数据输入目录
start-yarn.sh
jps
hdfs dfs -mkdir /input
hdfs dfs -ls /
(2).将输入数据文件复制到 HDFS 的/input 目录中
cat ~/input/data.txt
hdfs dfs -put ~/input/data.txt /input
hdfs dfs -ls /input
(3).运行 WordCount 案例,计算数据文件中各单词的频度
hdfs dfs -mkdir /output
hdfs dfs -ls /
hdfs dfs -rm -r -f /output
hadoop jar share/hadoop/mapreduce/hadoop/mapreduce op-- -examples-2.7.1.jar wordcount /input/data.txt /output
hdfs dfs -cat /output/part-r-00000