linux hadoop升级 hadoop安装linux
2.1 在Linux上安装与配置Hadoop
在Linux上安装Hadoop之前,需要先安装两个程序:
1)JDK 1.6(或更高版本)。Hadoop是用Java编写的程序,Hadoop的编译及MapReduce的运行都需要使用JDK。因此在安装Hadoop前,必须安装JDK 1.6或更高版本。
2)SSH(安全外壳协议),推荐安装OpenSSH。Hadoop需要通过SSH来启动Slave列表中各台主机的守护进程,因此SSH也是必须安装的,即使是安装伪分布式版本(因为Hadoop并没有区分开集群式和伪分布式)。对于伪分布式,Hadoop会采用与集群相同的处理方式,即按次序启动文件conf/slaves中记载的主机上的进程,只不过在伪分布式中Salve为localhost(即为自身),所以对于伪分布式Hadoop,SSH一样是必需的。
2.1.1 安装JDK 1.6
下面介绍安装JDK 1.6的具体步骤。
(1)下载和安装JDK 1.6
确保可以连接到互联网,从http://www.oracle.com/technetwork/java/javase/downloads页面下载JDK 1.6安装包(文件名类似jdk-*-linux-i586.bin,不建议安装JDK 1.7版本,因为并不是所有软件都支持1.7版本)到JDK安装目录(本章假设IDK安装目录均为/usr/lib/jvm/jdk)。
(2)手动安装JDK 1.6
在终端下进入JDK安装目录,并输入命令:
安装结束之后就可以开始配置环境变量了。
(3)配置环境变量
输入命令:
接下来输入java –version就可以看到所安装的JDK的版本信息了。
2.1.2 配置SSH免密码登录
同样以Ubuntu为例,假设用户名为u:
1)确认已经连接上互联网,然后输入命令:
解释一下,ssh-keygen代表生成密钥;-t(注意区分大小写)表示指定生成的密钥类型;dsa是dsa密钥认证的意思,即密钥类型;-P用于提供密语;-f指定生成的密钥文件。
在Ubuntu中,~代表当前用户文件夹,此处即/home/u。
这个命令会在.ssh文件夹下创建id_dsa及id_dsa.pub两个文件,这是SSH的一对私钥和公钥,类似于钥匙和锁,把id_dsa.pub(公钥)追加到授权的key中去。
输入命令:
这说明已经安装成功,第一次登录时会询问是否继续链接,输入yes即可进入。
实际上,在Hadoop的安装过程中,是否免密码登录是无关紧要的,但是如果不配置免密码登录,每次启动Hadoop都需要输入密码以登录到每台机器的DataNode上,考虑到一般的Hadoop集群动辄拥有数百或上千台机器,因此一般来说都会配置SSH的免密码登录。
2.1.3 安装并运行Hadoop
介绍Hadoop的安装之前,先介绍一下Hadoop对各个节点的角色定义。
Hadoop分别从三个角度将主机划分为两种角色。第一,最基本的划分为Master和Slave,即主人与奴隶;第二,从HDFS的角度,将主机划分为NameNode和DataNode(在分布式文件系统中,目录的管理很重要,管理目录相当于主人,而NameNode就是目录管理者);第三,从MapReduce的角度,将主机划分为JobTracker和TaskTracker(一个Job经常被划分为多个Task,从这个角度不难理解它们之间的关系)。
Hadoop有官方发行版与cloudera版,其中cloudera版是Hadoop的商用版本,这里先介绍Hadoop官方发行版的安装方法。
Hadoop有三种运行方式:单机模式、伪分布式与完全分布式。乍看之下,前两种方式并不能体现云计算的优势,但是它们便于程序的测试与调试,所以还是很有意义的。
你可以在以下地址获得Hadoop的官方发行版:http://www.apache.org/dyn/closer.cgi/Hadoop/core/。
下载hadoop-1.0.1.tar.gz并将其解压,本书后续都默认将Hadoop解压到/home/u/目录下。
(1)单机模式配置方式
安装单机模式的Hadoop无须配置,在这种方式下,Hadoop被认为是一个单独的Java进程,这种方式经常用来调试。
(2)伪分布式Hadoop配置
可以把伪分布式的Hadoop看做只有一个节点的集群,在这个集群中,这个节点既是Master,也是Slave;既是NameNode,也是DataNode;既是JobTracker,也是TaskTracker。
伪分布式的配置过程也很简单,只需要修改几个文件。
进入conf文件夹,修改配置文件。
指定JDK的安装位置:
以下是Hadoop中HDFS的配置,配置的备份方式默认为3,在单机版的Hadoop中,需要将其改为1。
conf/hdfs-site.xml: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> 以下是Hadoop中MapReduce的配置文件,配置JobTracker的地址及端口。 conf/mapred-site.xml: <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration> 接下来,在启动Hadoop前,需要格式化Hadoop的文件系统HDFS。进入Hadoop文件夹,输入命令: bin/Hadoop NameNode –format 格式化文件系统,接下来启动Hadoop。 输入命令,启动所有进程: bin/ 最后,验证Hadoop是否安装成功。 打开浏览器,分别输入网址: http://localhost:50030 (MapReduce的Web页面) http://localhost:50070 (HDFS的Web页面)如果都能查看,说明Hadoop已经安装成功。
对于Hadoop来说,启动所有进程是必须的,但是如果有必要,你依然可以只启动HDFS()或MapReduce()。
关于完全分布式的Hadoop会在2.4节详述。