利用vmware和linux模拟安装hadoop集群
用到的工具和版本有vmware,centos 6,jdk1.8.0_201, hadoop-2.6.1
- 在vmware上安装三个linux(centos 6) 操作系统
- 对三个虚拟机实现ssh免密码登录
- 2.1 修改三个机器名称
- 2.2 修改/etc/hosts文件,使三台机器可以通过名称ping通
- 2.3 给机器生成密钥文件
- 2.4 在master机器上生成authorized_keys文件
- 2.6 将authorized_keys文件复制到其余机器上去
- 2.7 测试使用ssh进行无密登录
- 安装jdk
- 3.1 解压安装jdk
- 3.2 修改环境变量
- 3.3 测试java
- 3.4 在slave中克隆相关的java文件以及环境变量的修改
- 安装hadoop
- 4.1 官网下载hadoop
- 4.2 解压安装hadoop
- 4.3 新建目录
- 4.4 修改/etc/hadoop中的一系列配置文件
- 4.5 在slave中克隆hadoop以及相关的配置文件
- 启动hadoop
- 5.1 在namenode上执行初始化
- 5.2 在namenode上执行启动命令
- 测试hadoop
一、安装linux
在vmware的主页找到如下图片
image.png,点击,一路下一步,看到
image.png,选择你的linux系统镜像的所在位置,下一步,直到输入客户名,密码等等
image.png
,完成等待linux操作系统的安装。重复上述操作建立三个同样的虚拟机
二、对三个虚拟机实现ssh免密码登录
相关操作都是在root客户权限下进行
①在终端输入hostname查看机器的名称 ,如下
[root@master Desktop]# hostname
master
hostname [新名字] 是将机器修改成你想要的名字,这里我改成master
另外两台机器对应的改成slave1,和slave2
②查看对应机器的ip地址,使用ifconfig指令
image.png
③在/etc/hosts 中增加下列代码:
指令为vim /etc/hosts(在vim中,按i为进入输入模式,输入结束后,按esc,而后输入:wq,保存并退出)image.png
每台机器的ip和它对应的hostname
此时,可以测试一下三台机器能否可以互相ping通(两台互相ping的机器要处于开机状态)
代码为(展现为在master上ping slave1的机器)
ping -c 3 slave1
参数-c是指定次数,这里为三次。
假如一切正常,应该出现下图所示画面:
image.png
④给机器生成免密文件,由于hadoop集群需要频繁的登录其余两台机器,所以最好不要频繁的输入密码。此处是在master上进行,其余两台机器照样。
ssh-keygen -t rsa -P ”
此时,机器会讯问你在何处保存密钥,直接敲回车就可
在 /root/.ssh/目录下应该有如下两个文件
image.png
⑤接下来创立一个新的文件夹叫,authorized_keys,将刚才三台机器上的密钥复制到这个文件夹中,并将authorized_keys拷贝到其余两台机器上.
在/root/.ssh/目录下创立authorized_keys
touch /root/.ssh/authorized_keys
我的master 上id_rsa.pub内容为
![master上id_rsa.pub中的内容(https://upload-images.jianshu.io/upload_images/7230999-a9c1016d4df89ab9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240),将这段内容复制粘贴到authorized_keys中,换行,粘贴同样的slave1机器中的id_rsa.pub内容,而后slave2中的内容同样粘贴进来。保存退出。
authorized_keys中的内容
⑥复制authorized_keys到其余两台机器的对应目录中,而后在任意一台机器上测试能否可以ssh其余两台机器,注意登录成功后,要在终端输入exit,才退回原来的主机中。以master为例,注意其中的hostname不一样
ssh登录展现
三、安装JDK
3.1下载解压安装JDK:
在官网下载对应的JDKhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载JDK
将压缩包拖曳到vmware对应的linux中,假如拖曳不成功,VMware上vmware tools点击这个,有一个安装vmtools的选项,安装,而后拖曳。
解压JDK
在opt目录下创立一个java 文件夹
mkdir /opt/java
将下载的压缩包拷贝到这个文件夹中
cp 压缩包所在的路径 /opt/java
打开JDK所在的目录
cd /opt/java
执行解压缩命令
tar -zxvf jdk-8u201-linux-x64 (1).tar.gz
此时会多处一个文件夹,解压后的jdk
jdk解压完成后
3.2修改环境变量
vim /etc/profile
内容为
export JAVA_HOME=/opt/java/jdk1.8.0_121export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/export PATH=$PATH:$JAVA_HOME/bin
修改环境变量
而后将这个代码执行一遍
source /etc/profile
编辑环境变量
3.3测试java
输入
java -version
测试java版本
只需java指令有用就可。
其余两台电脑重复此操作。
两台主机之间文件的传递可用:
scp root@192.168.224.129:/opt/java /opt/
第一个参数是需要从192.168.224.129的/opt/java目录中拷贝, 而后拷贝到当前操作主机的/opt/目录下
PS:环境变量还是需要重新修改的
四、安装hadoop
4.1 可以去hadoop官网下载,对照jdk的下载,这里给一个3.1版本的链接
https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz
4.2将hadoop拖曳到对应linux中,在/opt目录下创立一个hadoop目录
mkdir /opt/hadoop
新建hadoop目录
将压缩包拖到/opt/hadoop目录下,执行
tar -xvf 对应的hadoop压缩包
hadoop解压下的目录
4.3新建几个目录
在root目录下新建如下目录
mkdir /root/hadoopmkdir /root/hadoop/tmpmkdir /root/hadoop/varmkdir /root/hadoop/dfsmkdir /root/hadoop/dfs/namemkdir /root/hadoop/dfs/data
4.4修改配置文件
PS:复制代码时注意自己的hadoop版本和主机名
①修改/opt/hadoop/hadoop-2.6.1/etc/hadoop/core-site.xml文件
vim /opt/hadoop/hadoop-2.6.1/etc/hadoop/core-site.xml
在<configuration>节点内加入配置:注意修改自己的主机名
<!--用来指定使用hadoop时产生文件的存放目录--><property> <name>hadoop.tmp.dir</name> <value>/root/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property><!--指定namenode的地址,此处主机名需要修改master--> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property></configuration>
② 修改/opt/hadoop/hadoop-2.6.1/etc/hadoop/hadoop-env.sh
修改jdk路径
③ 修改/opt/hadoop/hadoop-2.6.1/etc/hadoop/hdfs-site.xml 文件
<property> <name>dfs.name.dir</name> <value>/root/hadoop/dfs/name</value> <description>namenode在本地文件系统存储命名空间,事务日志的路径.</description></property><property> <name>dfs.data.dir</name> <value>/root/hadoop/dfs/data</value> <description>指定hdfs中datanode的存储位置.</description></property><property> <name>dfs.replication</name> <value>2</value></property><!--指定hdfs保存数据的副本数量-->
④ 修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml.template 将其改名为mapred-site.xml
指令为:
cp /opt/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml.template /opt/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml
在configuration节点加入配置,注意修改主机名称
<property> <name>mapred.job.tracker</name> <value>master:49001</value></property><property> <name>mapred.local.dir</name> <value>/root/hadoop/var</value></property><property><!--告诉hadoop以后MR(Map/Reduce)运行在YARN上--> <name>mapreduce.framework.name</name> <value>yarn</value></property>
⑤修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/slaves文件,将里面的localhost删除,增加如下内容:
slave1slave2
⑥修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/yarn-site.xml文件,注意主机名
<property> <!--指定ResourceManager的地址--> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <description>RM管理界面的地址.</description> <name>yarn.resourcemanager.address</name> <value>${yarn.resourcemanager.hostname}:8032</value> </property> <property> <description>The address of the scheduler interface.</description> <description>调度器界面的地址</description> <name>yarn.resourcemanager.scheduler.address</name> <value>${yarn.resourcemanager.hostname}:8030</value> </property> <property> <description>The http address of the RM web application.</description> <description>RMweb应用的http地址</description> <name>yarn.resourcemanager.webapp.address</name> <value>${yarn.resourcemanager.hostname}:8088</value> </property> <property> <description>The https adddress of the RM web application.</description> <name>yarn.resourcemanager.webapp.https.address</name> <value>${yarn.resourcemanager.hostname}:8090</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>${yarn.resourcemanager.hostname}:8031</value> </property> <property> <description>The address of the RM admin interface.</description> <name>yarn.resourcemanager.admin.address</name> <value>${yarn.resourcemanager.hostname}:8033</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>2048</value> <discription>每个节点可用内存,单位MB,默认8182MB</discription> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>2.1</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>2048</value></property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <description>忽略内存检查 由于是在虚拟机上</description> <value>false</value></property>
在另外两台机器上用scp 复制hadoop以及相关文件的配置
五、启动hadoop
PS:由于slave的机器都是datanode,所以以下操作只要要在namenode(即master)上执行就可
5.1执行
cd /opt/hadoop/hadoop-2.6.1/bin
进入该目录,执行初始化脚本,格式化hdfs
./hadoop namenode -format
稍等片刻,会在/root/hadoop/dfs/name/目录多了一个current目录
current目录
该目录中有一系列文件。
5.2在namenode上执行启动命令
cd /opt/hadoop/hadoop-2.6.1/sbin./start-all.sh
第一次执行命令,会有几个需要确认的地方,直接打印yes就可
六、测试hadoop
第一步首先需要关闭防火墙,centos6 是
service iptables stop
centos7是
systemctl stop firewalld.service
由于master是我们的namenode,所以,对应的ip地址192.168.224.129. 在windows的电脑上输入
http://192.168.224.129:50070/
出现
hadoop测试网页
在浏览器中输入
http://192.168.224.129:8088/
将转到cluster页面cluster
即成功了。。写的好累/
⑦⑧⑨⑩
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 利用vmware和linux模拟安装hadoop集群