Hadoop伪分布模式是在单机上模拟Hadoop分布式。单机上的分布式并不是真正的分布式,而是使用线程模拟分布式。Hadoop本身并不区分伪分布和分布式,配置相似。
物理机:Windows10
虚拟机:Vmware14+CentOS6.7(安装JDK1.8)
l 网络配置以及JDK安装,参考文章:Linux虚拟机NAT网络以及JDK安装
l 为了是普通用户能使用sudo命令,需要修改 /etc/sudoers文件
方法:root账户下
由于/etc/sudoers 默认为只读文件,需要先给该文件加上可写权限
执行:chmod +w /etc/sudoers
执行:vi /etc/sudoers 修改如下
然后普通用户就可以使用sudo命令 临时获得root权限了。
注意:
下面命令是在普通用户下执行的,所以有些需要root权限的命令加上的sudo,如果是root账户执行则不需要。
修改主机名:也可以使用原有主机名
方法:执行命令 sudo vi /etc/sysconfig/network
配置如下:
接着修改主机名和IP的映射关系,查看本机ip地址的命令:ifconfig
执行: sudo vi /etc/hosts
配置如下:
为了后面学习过程中能在宿主机访问虚拟机,还需要关闭防火墙
执行:sudo service iptables stop 关闭防火墙
执行:sudo chkconfig iptables off 关闭防火墙开机启动
配置ssh免密登录:
cd ~/.ssh
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、 id_rsa.pub(公钥)
将公钥拷贝到要免登陆的机器上
ssh-copy-id hadoop1
然后使用ssh hadoop1 登录就不需要密码了
文章链接:Apache Hadoop下载方法
上传Hadoop到虚拟机中,我这里使用SecureCRT连接虚拟机进行上传(如果安装的是图形化版本的CentOS可以拖放文件到虚拟机中)
为了节约资源我建议虚拟机只开启命令行界面就可以了,然后使用SecureCRT或者其他工具远程登录虚拟机进行操作。
方法:使用root账户登录修改 /etc/inittab 文件
我下载好hadoop压缩包后上传至用户home目录:
接下来解压至我创建的apps目录
执行命令:tar -zxvf hadoop-2.6.5.tar.gz -C apps/ (注意参数 –C 字母为大写)
解压后进入apps目录会有一个hadoop文件夹就是刚才解压出来的了:
我们要修改配置的文件存放在HADOOP_HOME/etc/hadoop/ 目录下:
HADOOP_HOME 是指hadoop存放的路径,我这里存放在/home/hadoop/hadoop-2.6.5/apps 下,也就是刚才解压的目录
进入该目录可以看到很多配置文件:
这次搭建Hadoop伪分布模式我们要配置的文件为:
core-site.xml hadoop-env.sh hdfs-site.xml mapred-site.xml yarn-site.xml slaves
修改第一个文件:
我这里使用 vi 编辑器:
执行 vi core-site.xml 配置如下:
2.修改 hadoop-env.sh 给hadoop 指定JAVA_HOME路径,没有配置安装JDK的先安装
可使用 echo $JAVA_HOME 查看java的环境变量
然后修改hadoop-env.sh 配置如下:
3.hdfs-site.xml
4.mapred-site.xml
mapred文件为mapred-site.xml.template 需要重命名为 mapred-site.xml
执行 mv mapred-site.xml.template mapred-site.xml
然后再修改mapred-site.xml 文件
5.修改yarn-site.xml
6.修改 slaves 文件 添加主机名 hadoop1
slaves 表示节点数量,这里只使用了一台机器
好了,配置文件终于配置完成了!
接下来配置 Hadoop 的环境变量:
需要将 HADOOP_HOME/hadoop-2.6.5/bin 和 HADOOP_HOME/hadoop-2.6.5/sbin 配置到环境变量中去:
执行:sudo vi /etc/profile
然后执行: source /etc/profile 使配置生效
进入sbin目录看看配置的环境变量里有什么文件:
start-dfs.sh stop-dfs.sh…等等 就是用来启动和关闭hdfs mapreduce…的了
启动hadoop前需要先格式化:
执行:hadoop namenode –format 或者 hdfs namenode –format
接着可以启动了:
执行:start-all.sh 开启全部(hdfs、yarn、mapreduce)
启动完成了!!
使用jps命令查看增加了那些进程,可以看到NameNode、DataNode等说明成功启动了
接下来可以在宿主机(win10)上使用浏览器访问 http://ip:50070
CentOS需要关闭防火墙,才能访问 如果宿主机配置了hosts与主机名的映射关系可以直接使用http://主机名:50070访问。
写在最后,本人才疏学浅,学生党,学习过程做点笔记,可能有些许错漏,还望莫怪。
最后,最后,我开通了一个微信公众号「datanode」,欢迎关注我,与我交流,我们共同进步。
原文链接