本文将介绍利用三台虚拟机实现互相免密访问并搭建Hadoop集群。
一. 创建虚拟机
1. 下载操纵体系镜像源
本文利用Centos7.9版本,下载地址,需要其他版本可在阿里镜像源下载。
2. 下载虚拟机软件VMware
VMware官网链接,VMware下载指南
3. 配置三台Centos虚拟机
VMware中创建虚拟机教程,创建完成一个虚拟机之后,利用管理克隆得到三台虚拟机。
二. 虚拟机免密登录配置
1. 虚拟机IP设置
在centos下令行输入以下指令
(1) 切换到root用户
(2) 检察当前网络IP
可以检察到当前虚拟机的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
复制代码 再次输入
此时输入的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
复制代码 配置好后连接效果应如下:
三. 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
复制代码
- 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文件体系状态
(4) 检察历程状态
(5) 测试HDFS文件体系
此时HDFS文件体系没有文件
在当地创建一个文件 test.txt
- vi test.txt
- # 添加内容 hello hadoop
复制代码 (6) 上传文件
- hadoop fs -put test.txt /test.txt
复制代码 检察此时的HDFS文件体系
此时文件已经乐成从当地上传到HDFS文件体系。
附:利用云服务器配置Hadoop集群可参考博客
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |