现在位置: 首页 > 博客文章 > 电脑相关 > IT开发 > 大数据 > Hadoop > 正文
安装Hadoop2初学
2016年08月23日 23:52:57 Hadoop ⁄ 共 4056字 暂无评论 ⁄ 被围观 2,396次

安装 Hadoop2 之前,需要先安装两个程序,那就是 JDK 和 SSH。

1. 安装 JDK1.6 或更高版本。

因为 Hadoop 是 Java 编写的,它的编译以及 MapReduce 的运行,都需要 JDK。

这里安装 JDK1.7,原因是太新的 JDK 不是很稳定,而 Hadoop 在升级的过程中不再支持低版本的 JDK,那么太老版本也最好别用,否则就会有很多预料不到的问题出现。

安装 JDK 的详细步骤网上一搜一大堆,这里就不再详述,给出两篇文章供参考:《Linux系统搭建Web服务器》和《在Ubuntu14.04上安装JDK》,在这里安装 jdk-7u79-linux-x64.tar.gz。

2. 安装 OpenSSH。

因为Hadoop 通过 SSH 启动 Slave 列表中各台主机的进程。不管是集群式还是伪分布式,它都会按次序启动 conf/slaves 文件中的主机进程,与集群的处理方式相同。

配置 SSH 免密码登陆:

1)查看用户目录下是否有 .ssh 隐藏文件夹,如果没有,手动创建一个。

~$ mkdir .ssh

2)输入以下命令,生成密钥文件。

~$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

其中,ssh-keygen 代表生成密钥,-t dsa 表示生成的密钥类型为 dsa,-P 用于提示密语,-f 指定生成的密钥文件。

结果:

Generating public/private dsa key pair.
Your identification has been saved in /home/menglanglang/.ssh/id_dsa.
Your public key has been saved in /home/menglanglang/.ssh/id_dsa.pub.
The key fingerprint is:
。。。。。。

如果看到以上结果,则说明密钥生成成功。以上命令会在 .ssh 文件夹下创建生成一对 id_dsa(私钥) 和 id_dsa.pub(公钥)。

3)把公钥追加到授权的 key 中去,即把公钥加到用于认证的公钥文件 authorized_keys 中,到输入以下命令:

~$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

验证 SSH 免密码登陆:

~$ ssh -version

结果:Bad escape character 'rsion'.

~$ ssh localhost

结果:

The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is 。。。。。。
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic x86_64)
* Documentation: https://help.ubuntu.com/
0 packages can be updated.
0 updates are security updates.
Last login: Mon Aug 22 09:31:37 2016 from 192.168.88.101

至此,SSH 安装并配置成功了。

3. 安装 Hadoop。

下载 Hadoop 的官方发行版本,这里下载 hadoop-2.6.4.tar.gz,并将其解压到 /home/用户目录下。

配置 Hadoop:

单机模式的 Hadoop 不需要配置,默认 Hadoop 是一个单独的 Java 进程,该模式经常用来调试。

伪分布式的 Hadoop 配置,在该模式下,可以看作只有一个节点的集群,既是 Master,又是Slave,既是 NameNode,也是 DataNode,既是 JobTracker,亦是 TaskTracker。

1)进入 Hadoop 配置文件夹。

$ cd hadoop-2.6.4/etc/hadoop/

2)配置 JDK 路径:

$ vi hadoop-env.sh

找到下面代码部分:

# The java implementation to use.
export JAVA_HOME=${JAVA_HOME}

在这里直接修改为 JDK 路径,如下:

export JAVA_HOMEl=/usr/local/java

路径根据自己 JDK 的实际安装路径配置即可,上面第一步是安装到了 /usr/local 下。

3)修改 Hadoop 的核心配置文件 core-site.xml,配置 HDFS 的地址及端口号。

$ vi core-site.xml

配置:

Code   ViewPrint
  1. <configuration>
  2.     <property>
  3.         <name>fs.default.name</name>
  4.         <value>hdfs://localhost:9000</value>
  5.     </property>
  6. </configuration>

4)修改 Hadoop 的核心配置文件 hdfs-site.xml,配置备份方式默认为 3,单机版则需改为 1。

$ vi hdfs-site.xml

配置:

Code   ViewPrint
  1. <configuration>
  2.     <property>
  3.         <name>dfs.replication</name>
  4.         <value>3</value>
  5.     </property>
  6. </configuration>

5)修改 Hadoop 的核心配置文件 mapred-site.xml,配置 MapReduce 中 JobTracker 的地址及端口。但配置文件中没有该文件,有一个 mapred-site.xml.template 文件,所以拷贝一份,命名为 mapred-site.xml 并配置。

$ cp mapred-site.xml.template mapred-site.xml
$ vi mapred-site.xml

配置:

Code   ViewPrint
  1. <configuration>
  2.     <property>
  3.         <name>mapred.job.tracker</name>
  4.         <value>localhost:9001</value>
  5.     </property>
  6. </configuration>

4. 启动 Hadoop。

1)启动前,需要格式化文件系统 HDFS,进入 Hadoop 根目录。

$ bin/hadoop namenode -format

注意:不要把 namenode 写成 namenodes 或者是 NameNode 等,不然会报如下错误:

Error: Could not find or load main class NameNode

结果:

Code   ViewPrint
  1. DEPRECATED: Use of this script to execute hdfs command is deprecated.
  2. Instead use the hdfs command for it.
  3. 16/08/22 12:09:38 INFO namenode.NameNode: STARTUP_MSG:
  4. /************************************************************
  5. STARTUP_MSG: Starting NameNode
  6. STARTUP_MSG:   host = ubuntuserver.workgroup/192.168.88.110
  7. STARTUP_MSG:   args = [-format]
  8. STARTUP_MSG:   version = 2.6.4
  9. 。。。。。。
  10. 16/08/22 12:09:47 INFO common.Storage: Storage directory /tmp/hadoop-menglanglang/dfs/name has been successfully formatted.
  11. 16/08/22 12:09:47 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
  12. 16/08/22 12:09:47 INFO util.ExitUtil: Exiting with status 0
  13. 16/08/22 12:09:47 INFO namenode.NameNode: SHUTDOWN_MSG:
  14. /************************************************************
  15. SHUTDOWN_MSG: Shutting down NameNode at ubuntuserver.workgroup/192.168.88.110
  16. ************************************************************/

下面的命令启动所有进程。

$ sbin/start-all.sh

结果:

This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [localhost]
。。。。。。

可以看到新版本的 Hadoop 已经废弃了原来的命令,建议使用新命令分别启动。

用下列命令测试是否启动成功。

$ jps

结果:

13559 Jps
13168 NodeManager
13056 ResourceManager
12207 NameNode
12319 DataNode
12497 SecondaryNameNode

看到如上结果,则说明 Hadoop 启动成功了。

至此,Hadoop 的安装,配置以及启动则全部完成了。

Good Luck!

本文参考《Hadoop实战 第2版》第 2 章 2.1 节安装配置,转载请注明。

给我留言

留言无头像?