最近在重新学习Hadoop、spark相关课程
之前学习过一次,但长期不用,倒也忘得差不多了,所以本次学习,笔者会将所有的学习步骤和成果记录在个人的博客中,一方面是对自己的鞭策,另一方面也希望能帮助到其他同学。
前言:
* 大数据的相关环境搭建一般都需要运行在Linux系统下,笔者用的是VMWare虚拟机和CentOS7,用于模拟Linux环境
* Hadoop搭建在Linux环境下(Windows环境下也可以,但是太麻烦),所以我们需要对Linux的基本命令有所认识。
* Hadoop的搭建运行有三种模式,分别是本地模式、伪分布式模式、分布式模式。生产环境用的都是分布式模式,可以实现真正的备份容灾、分布式任务运行。但是笔者由于环境所限,计算机暂无法支持分布式模式,所以搭建的是伪分布式模式
准备工作:
* VMWare虚拟机、CentOS7安装
* 安装FillZilla用于在两个环境之间传递文件
* 安装SecureCRT来远程连接
以上为本地Windows环境的软件准备工作
* 设置hostname为hadoop(笔者的Linux Ip地址为192.168.241.129)
* 关闭Linux的防火墙
* 安装jdk(笔者使用的是JDK8)
以上为Linux的环境准备,不太会做的同学可以参考网上其他文章来设置
1.Apache-Hadoop伪分布式环境搭建
1)下载对应hadoop安装包
我们到http://archive.apache.org/dist/hadoop/core/ 下去下载我们所需要的hadoop包,笔者选择使用2.7.0版本的hadoop,下载对应的hadoop-2.7.0.tar.gz
2)安装hadoop
将hadoop-2.7.0.tar.gz通过FillZilla工具传递到虚拟机,然后解压缩
tar -zxf hadoop-2.7.0.tar.gz -C /opt/software
下文所说的HADOOP_HOME路径为/opt/software/hadoop-2.7.0
下面的工作主要就是修改HADOOP_HOME/etc/hadoop下的配置文件
3)修改hadoop-env.sh、yarn-env.sh、mapred-env.sh三个文件
export JAVA_HOME=/opt/software/jdk1.8.0_131
将JAVA_HOME设置为我们配置的JDK路径地址,我们可以通过以下方式来查看JAVA_HOME地址
[hxw@hadoop ~]$ echo $JAVA_HOME
/opt/software/jdk1.8.0_131
4)配置core-site.xml文件
fs.defaultFS
hdfs://hadoop:9000
hadoop.tmp.dir
/opt/software/hadoop-2.7.0/data/temp
注意:有关于这些配置的含义我们可以到hadoop官网上去查看
官网地址为http://hadoop.apache.org ,点击里面的GettingStarted,进入http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html 界面, 我们可以看到在左侧最下面有core-default.xml等文件,里面有关于所有配置的详细信息
我们在本例中配置的fs.defaultFS就是指定我们使用的存储,有本地存储file:///和hdfs://存储两种,在这里我们选择hdfs存储,端口号为9000;hadoop.tmp.dir就是我们的文件存储路径
5)修改hdfs-site.xml
dfs.replication
1
注意:dfs.replication就是数据块复制数,我们是伪分布式环境,所以复制数就是1,也就是不复制
6)修改mapred-site.xml
mapreduce.framework.name
yarn
注意:mapreduce.framework.name默认为local本地运行,我们使用yarn来管理运行mapreduce任务
7)修改yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop
注意:yarn.nodemanager.aux-services是NodeManager上运行的附属服务,需要配置成mapreduce_shuffle才可以运行MapReduce程序;yarn.resourcemanager.hostname默认是0.0.0.0,配置成hostname即可
到此为止,伪分布式的文件配置就结束了,下面开始格式化namenode、启动任务
8)格式化namenode
./HADOOP_HOME/bin/hdfs namenode -format
切记该命令运行一次即可,会在data/tmp下生成fsimage和edits文件
9)启动
./HADOOP_HOME/sbin/start-dfs.sh # 启动namenode和datanode
./HADOOP_HOME/sbin/start-yarn.sh # 启动resourcemanager和nodemanager
10)验证
可以通过jps命令查看对应的服务是否启动,正常来说,应该有以下五个服务启动
[hxw@hadoop hadoop-2.7.0]$ jps
3539 SecondaryNameNode
3332 DataNode
3813 NodeManager
3704 ResourceManager
3224 NameNode
还可以通过查看对应http请求是否有响应
访问http://hadoop:8088/cluster 查看mapreduce任务
访问http://hadoop:50070/dfshealth.html#tab-overview 查看hdfs文件系统
总结:至此,hadoop伪分布式环境就搭建起来了,同学们来试下吧
参考:http://hadoop.apache.org