饭宝 发表于 2024-7-23 08:25:42

三台虚拟机搭建Hadoop集群(云计算实验新)

本文将介绍利用三台虚拟机实现互相免密访问并搭建Hadoop集群。
一. 创建虚拟机

1. 下载操纵体系镜像源

本文利用Centos7.9版本,下载地址,需要其他版本可在阿里镜像源下载。
2. 下载虚拟机软件VMware

VMware官网链接,VMware下载指南
3. 配置三台Centos虚拟机

VMware中创建虚拟机教程,创建完成一个虚拟机之后,利用管理克隆得到三台虚拟机。
https://img-blog.csdnimg.cn/c91b6dc8573e450ea182724d24cd5c9d.png
二. 虚拟机免密登录配置

1. 虚拟机IP设置

在centos下令行输入以下指令
(1) 切换到root用户
su root
(2) 检察当前网络IP
ip add

https://img-blog.csdnimg.cn/23599371d4dd4e369fc34b99cb445b3f.png
可以检察到当前虚拟机的IP,我这里是192.168.3.89,但这个默认IP再次启动时会变革,我们希望有一个固定的署理IP。
(3) 打开虚拟机网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
在其中参加
IPADDR=192.168.3.110         #ip地址 (更改为自己设定的IP)
重启网络服务(告急)
systemctl restart network
再次输入
ip add

https://img-blog.csdnimg.cn/247dd56e6cc64643a818b0dd8169c34b.png
此时输入的192.168.3.110成为了署理IP。
依照此方法将三台虚拟机的IP设定下表:
Namenode192.168.3.100Datanode1192.168.3.110Datanode2192.168.3.120 2. 设置三个节点间免密访问

(1) 节点配置
分别进入每个节点(虚拟机,修改它们的名字)
ssh 192.168.3.100
vi /etc/hostname
# 修改内容
Namenode

ssh 192.168.3.110
vi /etc/hostname
# 修改内容
Datanode1

ssh 192.168.3.120
vi /etc/hostname
# 修改内容
Datanode2
设置IP和主机名对应
vi /etc/hosts
# 将里面内容替换为
192.168.3.100        Namenode
192.168.3.110        Datanode1
192.168.3.120        Datanode2
将Namenode节点配置复制到datanode上,即复制/etc/hosts的内容
#自行调整IP
scp /etc/hosts root@192.168.3.110:/etc/hosts
scp /etc/hosts root@192.168.3.120:/etc/hosts
(2) 设置密钥
# 密钥生成
ssh-keygen -t rsa //点击三次enter即可
ssh Datanode1
ssh-keygen -t rsa //点击三次enter即可
scp /root/.ssh/id_rsa.pub root@Namenode:/root/.ssh/id_rsa.pub.Datanode1
ssh Datanode2
ssh-keygen -t rsa //点击三次enter即可
scp /root/.ssh/id_rsa.pub root@Namenode:/root/.ssh/id_rsa.pub.Datanode2

# 密钥交互
ssh Namenode
cd /root/.ssh
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.Datanode1 >> authorized_keys
cat id_rsa.pub.Datanode2 >> authorized_keys
chmod 644 authorized_keys
scp ~/.ssh/authorized_keys root@Datanode1:/root/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@Datanode2:/root/.ssh/authorized_keys
(3) 防火墙设置
关闭三台虚拟机的防火墙
ssh Namenode
systemctl stop firewalld
ssh Datanode1
systemctl stop firewalld
ssh Datanode2
systemctl stop firewalld
(4) 连接测试
ssh Datanode1
ssh Datanode2
ssh Namenode
配置好后连接效果应如下:
https://img-blog.csdnimg.cn/d027da9e057744e09757658ef6cf1500.png
三. Hadoop 配置

1. 配置主节点

(1) 下载并解压所需包
ssh Namenode    //连接Namenode节点
mkdir/home/hadoop
cd /home/hadoop/
wget http://denglab.org/cloudcomputing/download/hadoop.tar.gz
tar -zxvf hadoop.tar.gz
mkdir /home/jdk
cd /home/jdk/
wget http://denglab.org/cloudcomputing/download/jdk.tar.gz
tar -zxvf jdk.tar.gz
(2) 设置bash profile
vi ~/.bash_profile
# 替换配置文件内容
# export PATH
export JAVA_HOME=/home/jdk/jdk1.7.0_75
export JAVA_JRE=/home/jdk/jdk1.7.0_75/jre
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0

# path
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH=$JAVA_HOME/bin:$PATH
https://img-blog.csdnimg.cn/db781db4e5ab4793bf724a4bc4447df6.png
source ~/.bash_profile //保存配置
(3) 修改Hadoop配置文件(以下都是将原有的配置举行更换)
配置公共属性 core-site.xml
cd $HADOOP_HOME
mkdir namenode
mkdir datanode
cd etc/hadoop/
vi core-site.xml
# 替换配置<configuration>中内容
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://Namenode:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hadoop/hadoop-2.6.0/tmp/hadoop-${user.name}</value>
        </property>
</configuration>
配置hdfs-site.xml文件
vi hdfs-site.xml
# 替换配置<configuration>中内容
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/home/hadoop/hadoop-2.6.0/namenode/name_1, /home/hadoop/hadoop-2.6.0/namenode/name_2</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/home/hadoop/hadoop-2.6.0/datanode/data_1, /home/hadoop/hadoop-2.6.0/datanode/data_2</value>
        </property>
</configuration>
配置 mapred-site.xml文件
vi mapred-site.xml
# 替换配置<configuration>中内容
<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>Namenode:9001</value>
        </property>
</configuration>
配置java路径
vi hadoop-env.sh
# 替换原来路径内容
export JAVA_HOME=/home/jdk/jdk1.7.0_75
设置数据节点
vi slaves
# 将内容替换为
Datanode1
Datanode2
2. 配置从节点

(1) 将bash_profile从主节点复制到从节点
scp ~/.bash_profile root@Datanode1:~/.bash_profile
scp ~/.bash_profile root@Datanode2:~/.bash_profile
(2) 把hadoop,jdk文件和配置从主节点复制到从节点中(这一步花费时间略长)
scp -r /home/hadoop/ root@Datanode1:/home/hadoop
scp -r /home/hadoop/ root@Datanode2:/home/hadoop
scp -r /home/jdk/ root@Datanode1:/home/jdk
scp -r /home/jdk/ root@Datanode2:/home/jdk

3. 启动及测试hadoop

(1) 关闭namenode安全模式(告急)
ssh namenode
hdfs dfsadmin -safemode leave
关于安全模式题目参考博客
(2) 初始化并启动hadoop
cd $HADOOP_HOME
cd etc/hadoop
hdfs namenode -format   //初始化hadoop,不要多次初始化,可能会导致生成id不唯一
start-all.sh
多次初始化导致的异常可参照博客办理
(3) 检察HDFS文件体系状态
hdfs dfsadmin -report
https://img-blog.csdnimg.cn/6d828721a48e4deb8059d93190d4738f.png
(4) 检察历程状态
jps
https://img-blog.csdnimg.cn/27c8d7482faf43e3af5395150141b2e8.png
(5) 测试HDFS文件体系
hadoop fs -ls /

https://img-blog.csdnimg.cn/8dd3cd147a8a4e20816bbbbf5c76ac45.png
此时HDFS文件体系没有文件
在当地创建一个文件 test.txt
vi test.txt
# 添加内容 hello hadoop
(6) 上传文件
hadoop fs -put test.txt /test.txt
检察此时的HDFS文件体系
hadoop fs -ls /

https://img-blog.csdnimg.cn/f921191fe3d04afe8f034e91c2f8da84.png
此时文件已经乐成从当地上传到HDFS文件体系。
附:利用云服务器配置Hadoop集群可参考博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 三台虚拟机搭建Hadoop集群(云计算实验新)