HADOOP平台搭建

本文详细介绍了如何在Linux系统上配置基础环境,包括查看IP地址、主机名绑定、SSH服务管理、关闭防火墙、JAVA环境安装、Hadoop软件安装和配置,以及单机版Hadoop的设置、MapReduce测试和集群环境配置,如SSH密钥交换和HDFS操作。
摘要由CSDN通过智能技术生成

一.配置 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 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值