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

饭宝  论坛元老 | 2024-7-23 08:25:42 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1021|帖子 1021|积分 3063

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

1. 下载操纵体系镜像源

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

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

VMware中创建虚拟机教程,创建完成一个虚拟机之后,利用管理克隆得到三台虚拟机。

二. 虚拟机免密登录配置

1. 虚拟机IP设置

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

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

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

(1) 节点配置
分别进入每个节点(虚拟机,修改它们的名字)
  1. ssh 192.168.3.100
  2. vi /etc/hostname
  3. # 修改内容
  4. Namenode
  5. ssh 192.168.3.110
  6. vi /etc/hostname
  7. # 修改内容
  8. Datanode1
  9. ssh 192.168.3.120
  10. vi /etc/hostname
  11. # 修改内容
  12. Datanode2
复制代码
设置IP和主机名对应
  1. vi /etc/hosts
  2. # 将里面内容替换为
  3. 192.168.3.100        Namenode  
  4. 192.168.3.110        Datanode1
  5. 192.168.3.120        Datanode2
复制代码
将Namenode节点配置复制到datanode上,即复制/etc/hosts的内容
  1. #自行调整IP
  2. scp /etc/hosts root@192.168.3.110:/etc/hosts
  3. scp /etc/hosts root@192.168.3.120:/etc/hosts
复制代码
(2) 设置密钥
  1. # 密钥生成
  2. ssh-keygen -t rsa //点击三次enter即可
  3. ssh Datanode1
  4. ssh-keygen -t rsa //点击三次enter即可
  5. scp /root/.ssh/id_rsa.pub root@Namenode:/root/.ssh/id_rsa.pub.Datanode1
  6. ssh Datanode2
  7. ssh-keygen -t rsa //点击三次enter即可
  8. scp /root/.ssh/id_rsa.pub root@Namenode:/root/.ssh/id_rsa.pub.Datanode2
  9. # 密钥交互
  10. ssh Namenode
  11. cd /root/.ssh
  12. cat id_rsa.pub >> authorized_keys
  13. cat id_rsa.pub.Datanode1 >> authorized_keys
  14. cat id_rsa.pub.Datanode2 >> authorized_keys
  15. chmod 644 authorized_keys
  16. scp ~/.ssh/authorized_keys root@Datanode1:/root/.ssh/authorized_keys
  17. scp ~/.ssh/authorized_keys root@Datanode2:/root/.ssh/authorized_keys
复制代码
(3) 防火墙设置
关闭三台虚拟机的防火墙
  1. ssh Namenode
  2. systemctl stop firewalld
  3. ssh Datanode1
  4. systemctl stop firewalld
  5. ssh Datanode2
  6. systemctl stop firewalld
复制代码
(4) 连接测试
  1. ssh Datanode1
  2. ssh Datanode2
  3. ssh Namenode
复制代码
配置好后连接效果应如下:

三. Hadoop 配置

1. 配置主节点

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

  1. source ~/.bash_profile //保存配置
复制代码
(3) 修改Hadoop配置文件(以下都是将原有的配置举行更换)
配置公共属性 core-site.xml
  1. cd $HADOOP_HOME
  2. mkdir namenode
  3. mkdir datanode
  4. cd etc/hadoop/
  5. vi core-site.xml
  6. # 替换配置<configuration>中内容
  7. <configuration>
  8.         <property>
  9.                 <name>fs.default.name</name>
  10.                 <value>hdfs://Namenode:9000</value>
  11.         </property>
  12.         <property>
  13.                 <name>hadoop.tmp.dir</name>
  14.                 <value>/home/hadoop/hadoop-2.6.0/tmp/hadoop-${user.name}</value>
  15.         </property>
  16. </configuration>
复制代码
配置hdfs-site.xml文件
  1. vi hdfs-site.xml
  2. # 替换配置<configuration>中内容
  3. <configuration>
  4.         <property>
  5.                 <name>dfs.replication</name>
  6.                 <value>2</value>
  7.         </property>
  8.         <property>
  9.                 <name>dfs.namenode.name.dir</name>
  10.                 <value>/home/hadoop/hadoop-2.6.0/namenode/name_1, /home/hadoop/hadoop-2.6.0/namenode/name_2</value>
  11.         </property>
  12.         <property>
  13.                 <name>dfs.datanode.data.dir</name>
  14.                 <value>/home/hadoop/hadoop-2.6.0/datanode/data_1, /home/hadoop/hadoop-2.6.0/datanode/data_2</value>
  15.         </property>
  16. </configuration>
复制代码
配置 mapred-site.xml文件
  1. vi mapred-site.xml
  2. # 替换配置<configuration>中内容
  3. <configuration>
  4.         <property>
  5.                 <name>mapred.job.tracker</name>
  6.                 <value>Namenode:9001</value>
  7.         </property>
  8. </configuration>
复制代码
配置java路径
  1. vi hadoop-env.sh
  2. # 替换原来路径内容
  3. export JAVA_HOME=/home/jdk/jdk1.7.0_75
复制代码
设置数据节点
  1. vi slaves
  2. # 将内容替换为
  3. Datanode1
  4. Datanode2
复制代码
2. 配置从节点

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

(1) 关闭namenode安全模式(告急)
  1. ssh namenode
  2. hdfs dfsadmin -safemode leave
复制代码
关于安全模式题目参考博客
(2) 初始化并启动hadoop
  1. cd $HADOOP_HOME
  2. cd etc/hadoop
  3. hdfs namenode -format   //初始化hadoop,不要多次初始化,可能会导致生成id不唯一
  4. start-all.sh
复制代码
多次初始化导致的异常可参照博客办理
(3) 检察HDFS文件体系状态
  1. hdfs dfsadmin -report
复制代码

(4) 检察历程状态
  1. jps
复制代码

(5) 测试HDFS文件体系
  1. hadoop fs -ls /
复制代码

此时HDFS文件体系没有文件
在当地创建一个文件 test.txt
  1. vi test.txt
  2. # 添加内容 hello hadoop
复制代码
(6) 上传文件
  1. hadoop fs -put test.txt /test.txt
复制代码
检察此时的HDFS文件体系
  1. hadoop fs -ls /
复制代码

此时文件已经乐成从当地上传到HDFS文件体系。
附:利用云服务器配置Hadoop集群可参考博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

饭宝

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表