共计 5425 个字符,预计需要花费 14 分钟才能阅读完成。
目录
- 环境准备
- 创建 Hadoop 用户
- 更新 apt
- 配置 SSH 免密登陆
- 安装配置 Java 环境
- 安装 Hadoop
- Hadoop 单机 / 伪分布配置
- 单机 Hadoop
- 伪分布 Hadoop
- 启动 Hadoop
- 停止 Hadoop
环境准备
此处准备的环境是 Virtual Box 虚拟机下的 Ubuntu14.04 64 位系统,Hadoop 版本为 Hadoop2.6.0。装好 Hadoop 运行的基础 Linux 环境后,还需要做以下准备:
- 创建 hadoop 用户;
- 更新 apt;
- 配置 SSH 免密登陆;
- 安装配置 Java 环境。
创建 hadoop 用户
如果安装系统时配置的并非是“hadoop”用户,就需要新增加一个“hadoop”用户。
1 $ sudo useradd -m hadoop -s /bin/bash
该命令创建新的“hadoop”用户,并指定 /bin/bash 作为其 shell。
如需更改 hadoop 用户密码,可通过如下命令进行:
1 $ sudo passwd hadoop
同样,为避免后期安装过程中的用户权限问题,可直接给“hadoop”用户添加上管理员权限:
1 $ sudo adduser hadoop sudo
之后,需切换到 hadoop 用户下进行下面操作。
更新 apt
切换到 hadoop 用户之后,需要先更新一下 apt,后续需要通过 apt 安装其他软件,直接在命令行安装会方便很多,如果没有更新,一些软件可能安装不了。可参考以下命令进行更新:
1 $ sudo apt-get update
Linux 的编辑工具,当然非 vim 莫属了,先装上 vim 后期改参数配置文件时用的到。
1 $ sudo apt-get install vim
遇到命令行的 [yes/no] 或者 [Y/N] 选项,直接 yes 进行安装。
配置 SSH 免密登陆
单点 / 集群都需要安装 SSH。一方面是远程登陆,可一再本机通过 SSH 直接连接虚拟机的系统,这样也便于后期在 Windows 环境下使用 Eclipse 进行配置开发 MapReduce 程序;另一方面,在配置 Hadoop 集群时,集群工作过程中主机和从机、从机和从机之间都通过 SSH 进行授权登陆工作通信。Ubuntu 系统默认已经安装了 SSH Client,需要额外安装 SSH Server。
1 $ sudo apt-get install openssh-server
首次登陆 SSH 会有首次登陆提示,键入 yes,按提示输入 hadoop 用户密码即可登陆。
配置免密登陆。一方面,我们通过 ssh 登陆时比较方便,不需重新输入密码;另一方面,在集群方式工作时,主机与从机通信过程或从机与从机之间进行文件备份时是需要越过密码验证这一环节的,所以需要提前生成公钥,在集群工作时,可以直接自动登陆。
1 $ exit #推出刚刚登陆的 localhost
2 $ cd ~/.ssh #若无此目录,请先进行一次 ssh 登陆
3 $ ssh-keygen -t rsa #会有很多提示,全部回车即可
4 $ cat ./id_rsa.pub >> ./authorized_keys #将公钥文件加入授权
再次通过 ssh 登陆就不需要输入密码了。
安装配置 Java 环境
Java 环境,Oracle JDK 和 OpenJDK 都可以,此处直接通过命令安装 OpenJDK1.7(其中包含 jre 和 jdk):
1 $ sudo apt-get install openjdk-7-jre openjdk-7-jdk
配置环境变量:
安装好 JDK 后,需要配置 Java 环境变量,通过以下命令寻找 Java 安装路径:
1 $ dpkg -L openjdk-7-jdk | grep '/bin/javac'
该命令会输出一个路径,除去路径末尾的“/bin/javac”,剩下的就是 JDK 的安装路径了。
在.bashrc 文件中配置环境变量:
1 $ vi ~/.bashrc
需要在.bashrc 文件中添加如下环境变量:
生效并检验环境变量配置是否正确:
1 $ source ./.bashrc #生效环境变量
2 $ echo $JAVA_HOME #查看环境变量
3 $ java -version
4 $ $JAVA_HOME/bin/java -version #验证与 java -version 输出一致
OK,Java 环境安装配置完成。
安装 Hadoop
通过 http://mirrors.cnnic.cn/apache/hadoop/common/ 可下载 Hadoop 稳定版 hadoop-2.x.y.tar.gz 文件都是编译好的,建议同时下载hadoop-2.x.y.tar.gz.mds,此 mds 文件是为了检验在下载和移动文件过程中文件的完整性。
通过验证文件的 md5 值去检验文件的完整性:
1 $ cat ./hadoop-2.6.0.tar.gz.mds | grep 'MD5'
2 $ md5sum ./hadoop-2.6.0.tar.gz | tr 'a-z' 'A-Z'
文件验证无误,将文件解压到安装目录:
1 $ cd /usr/lcoal #切换到压缩文件所在目录
2 $ sudo tar -zxf ./hadoop-2.6.0.tar.gz ./ #解压文件
3 $ sudo mv ./hadoop-2.6.0 ./hadoop #将文件名改为较容易辨认的
4 $ chown -R hadoop ./hadoop #修改文件权限
在.bashrc 文件中配置 hadoop 相关环境变量:
生效环境变量,并验证 Hadoop 安装成功。
1 $ source ~/.bashrc
2 $ hadoop version
Hadoop 单机 / 伪分布配置
单机 Hadoop
Hadoop 默认模式为非分布式模式,无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
注:单机、伪分布、集群的区别:
单机:故名思意,Hadoop 运行再单台服务器上,并且此时的 Hadoop 读取的是本地的文件系统,并没有使用自己的 HDFS。
伪分布:单机版集群,单台服务器既是 NameNode,也是 DataNode,并且也只有这一个 DataNode,文件是从 HDFS 读取。
集群:单机和伪分布说了集群就简单了。一般单独分配一台服务器作为 NameNode,并且 NameNode 一般不会同时配置为 DataNode,DataNode 一般在其他服务器上,另外对大型集群,为体现 Hadoop 集群的高可用性,也会单独设置一台服务器作为集群的 SecondaryNameNode,也就是 NameNode 的备份,主要用于 NameNode 失效时的快速恢复。
伪分布 Hadoop
Hadoop 伪分布式的方式是在单节点上运行的,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件,Hadoop 进程以分离的 Java 进程来运行。
Hadoop 的配置文件位于 $HADOOP_HOME/etc/hadoop/ 中,伪分布式需要修改 2 个配置文件 core-site.xml 和 hdfs-site.xml。Hadoop 的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。另外如果要启动 YARN, 需要再修改 mapred-site.xml 和 yarn-site.xml 两个配置文件。
通过编辑器或 vim 对 xml 配置文件进行修改。
修改 core-site.xml 配置文件:
1 <configuration>
2 <property>
3 <name>hadoop.tmp.dir</name>
4 <value>file:/usr/local/hadoop/tmp</value>
5 <description>Abase for other temporary directories.</description>
6 </property>
7 <property>
8 <name>fs.defaultFS</name>
9 <value>hdfs://localhost:9000</value>
10 </property>
11 </configuration>
修改 hdfs-site.xml 配置文件:
1 <configuration>
2 <property>
3 <name>dfs.replication</name>
4 <value>1</value>
5 </property>
6 <property>
7 <name>dfs.namenode.name.dir</name>
8 <value>file:/usr/local/hadoop/tmp/dfs/name</value>
9 </property>
10 <property>
11 <name>dfs.datanode.data.dir</name>
12 <value>file:/usr/local/hadoop/tmp/dfs/data</value>
13 </property>
14 </configuration>
修改 mapred-site.xml 配置文件:
1 <configuration>
2 <property>
3 <name>mapreduce.framework.name</name>
4 <value>yarn</value>
5 </property>
6 </configuration>
修改 yarn-site.xml 配置文件:
1 <configuration>
2 <property>
3 <name>yarn.nodemanager.aux-services</name>
4 <value>mapreduce_shuffle</value>
5 </property>
6 </configuration>
启动 Hadoop
配置完成,首次启动 Hadoop 时需要对 NameNode 格式化:
1 $ hdfs namenode -format
有这两个标志,则表示配置没问题,namenode 已经格式化,可以启动 Hadoop 了。如果格式化错误,需要检查配置文件配置是否正确,最常见的问题就是配置文件里的拼写错误。
启动守护进程:
1 $ start-dfs.sh #启动 hdfs,含 NameNode、DataNode、SecondaryNameNode 守护进程
2 $ start-yarn.sh #启动 yarn,含 ResourceManager、NodeManager
3 $ mr-jobhistory-daemon.sh start historyserver #开启历史服务器,才能在 Web 中查看任务运行情况
守护进程的启动情况可通过 jps 命令查看,查看所有的守护进程是否都正常启动。如果有未启动的守护进程,需要去 $HADOOP_HOME/logs 目录查看对应的守护进程启动的日志查找原因。
成功启动所有守护进程之后,通过 Web 界面 http://server_ip/50070 查看 NameNode 和 DataNode 的信息,还可以在线查看 HDFS 文件。
YRAN 启动之后(即 ResourceManager 和 NodeManager), 也可以通过 http://server_ip/8088 查看管理资源调度,和查看 Job 的执行情况。
停止 Hadoop
1 $ stop-dfs.sh
2 $ stop-yarn.shResourceManager、NodeManager
3 $ mr-jobhistory-daemon.sh stop historyserver
Note:Hadoop 常用的服务器管理命令脚本都可以在 $HADOOP_HOME/bin 和 $HADOOP_HOME/sbin 目录中找到。
下面关于 Hadoop 的文章您也可能喜欢,不妨看看:
Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程 http://www.linuxidc.com/Linux/2015-02/113487.htm
CentOS 安装和配置 Hadoop2.2.0 http://www.linuxidc.com/Linux/2014-01/94685.htm
Ubuntu 14.04 LTS 下安装 Hadoop 1.2.1(伪分布模式)http://www.linuxidc.com/Linux/2016-09/135406.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
Hadoop 2.6.0 HA 高可用集群配置详解 http://www.linuxidc.com/Linux/2016-08/134180.htm
Spark 1.5、Hadoop 2.7 集群环境搭建 http://www.linuxidc.com/Linux/2016-09/135067.htm
更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-10/136088.htm