单服务器hadoop搭建

hadoop单机版搭建,即只有一台服务器的hadoop环境,这里省去了集群的多台服务器配置

首先到hadoop的官网去下载hadoop,我这里使用的是2.9.0版本

下载完成后把hadoop解压到需要部署的目录

解压完成后进入hadoop目录可以看到如下所示目录,以下介绍每个目录及其作用
image

  • bin目录:Hadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。
  • etc目录:Hadoop配置文件所在的目录,包括core-site,xml、hdfs-site.xml、mapred-site.xml等从Hadoop1.0继承而来的配置文件和yarn-site.xml等Hadoop2.0新增的配置文件。
  • include:对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。
  • lib:该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。
  • libexec:各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
  • sbin:Hadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本。
  • share:Hadoop各个模块编译后的jar包所在的目录。

解压完成后需要将hadoop添加到环境变量(下文中除了环境变量。其他地方使用到$HADOOP_HOME的地方均是指hadoop安装目录,请替换为全路径)

OS X与linux上

1
2
3
4
5
6
vi ~/.bash_profile
//在最后加上
HADOOP_HOME=/Users/xukai/developer/hadoop-2.9.0/
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
//保存后执行source使配置生效
source ~/.bash_profile

然后执行

1
hadoop version

如果能看到hadoop的版本信息。表示hadoop环境配置正确

接着为了hadoop能正常运行。需要修改一些hadoop的配置文件。前面有介绍过hadoop的配置文件都存放在$HADOOP_HOME/etc目录下。

1.将hadoop-env.sh文件中第25行的${JAVA_HOME}修改为jdk的绝对路径。以防hadoop找不到jdk的安装路径例如

1
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

2.修改core-site.xml文件中的configuration为如下内容,意思是使用hadoof的默认存储系统,以及hadoop的存储文件的位置

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>$HAOOP_HOME/tmp</value>
</property>
</configuration>

3.修改hdfs-site.xml文件中的configuration为如下内容,意思是配置hdfs文件的副本数量与SecondaryNameNode的端口

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>127.0.0.1:50090</value>
</property>
</configuration>

4.将mapred-site.xml.template文件重命名为mapred-site.xml并修改文件中configuration为如下内容,意思是指定mr运行在yarn上

1
2
3
4
5
6
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

5.修改yarn-site.xml文件中的configuration为如下内容,意思是指定ResourceManager的地址与配置reducer获取数据的方式

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

如果是OS X系统还需要配置一下本地22端口可以访问,配置步骤如下

系统偏好设置 -》 共享 -》 远程登录 选择所有用户。

接下来进入到$HADOOP_HOME/sbin目录下执行start-all.sh脚本,启动所有的hadoop服务,启动过程中需要输入本机登录密码

1
2
3
//格式化namenode
hadoop namenode -format
./start-all.sh

如果不想输入密码,请参考ssh免密登录

启动完成后,输入jps

如果可以看到如下进程。则表示启动成功

4576 ResourceManager
4288 NameNode
4466 SecondaryNameNode
4692 Jps
4660 NodeManager
4366 DataNode

如果本文对您有帮助,您可以请我喝一杯咖啡~