centos7搭建hadoop集群(超详细)
前提:
第一部分:
1.centos7安装虚拟机的文章链接: https://www.runoob.com/w3cnote/vmware-install-centos7.html.
2.需要三台及以上虚拟机,并保证能通网
3.三台都需要ping网试一下
4.在三台机器的/etc/hosts中添加ip和名称(三台机器都需要)
第二部分:给三台虚拟机配置ssh密钥
1.1:生成文件,红色箭头处需要敲一次空格
1.2:查看生成的文件
三台机器都需要操作1.1 1.2两步
2.1:创建authorized_keys 文件**(三台机器都需要)**
2.2:将三台虚拟机的id_rsa.pub内容全部保存至mater的authorized_keys文件内
三台虚拟机中都需要
3.1:测试ssh
建议ssh测试完后exit退出,不然操作就是在ssh后的虚拟机上操作的
正文:安装Hadoop
1.将hadoop下载好的包传入到虚拟机并解压(三台机器都需要做)
2.进入hadoop解压后的文件中/etc/hadoop/下
修改hadoop的四个配置文件:core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml
core-site.xml如下:
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000/</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:///usr/soft/hadoop-2.7.5/tmp/</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
<description>Number of minutes between trash checkpoints.
If zero, the trash feature is disabled.
</description>
</property>
hdfs-site.xml如下
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/soft/hadoop-2.7.5/etc/hadoop/dfs/name</value>
<description>NameNode directory for namespace and transaction logs storage.</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/soft/hadoop-2.7.5/etc/hadoop/dfs/data</value>
<description>DataNode directory</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
mapred-site.xml如下:
<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>
yarn-site.xml如下:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
完成后需要在usr/soft/hadoop-2.7.5/etc/hadoop文件下创建文件如下
修改slaves文件
启动hadoop
进入hadoop/bin目录下执行
./hadoop namenode -format
执行成功页面
启动hadoop
进入hadoop包下的sbin目录下执行:./start-all.sh
我在执行时遇到错误,这错误也很简单,在slava1,slave2的hadoop-daemon.sh脚本没有权限,我们去到slava1,slave2给他赋予权限。
并且把hadoop包下的bin 文件夹也赋予权限不然也会报错,三台机器都需要
之后重新启动
在master机器jps可以看到这几个进程
在slave1和slave2机器jps可以看到这几个进程