hadoop安装
Hadoop三种运行模式的区别#
非分布式模式/本地模式#
该模式为Hadoop的默认模式,一旦你安装了Hadoop,在没有进行相关配置前,Hadoop运行的是本地模式,该模式下,Hadoop使用的是本地文件系统而不是分布式文件系统,且不会启动NameNode、DataNode、JobTracker、TaskTracker等守护进程。该模式用于对MapReduce程序的验证。
伪分布式模式#
即Hadoop假装自己在全分布式模式下,与全分布式模式下Hadoop的守护进程在不同主机上运行不同,此时Hadoop的守护进程都在一台主机上运行。此时,Hadoop进程以分离的Java进程来运行,节点及作为NameNode也作为DataNode,同时,读取的是HDFS中的文件。
全分布式模式#
Hadoop运行在多台主机(一个集群)中,每台主机都安装了OpenJDK和Hadoop,节点之间通过SSH进行联系。其中,一个节点作为主节点,其他节点要在主节点中注册才能加入集群。
Java运行环境的选择#
由于Hadoop是运行在Java环境下的,所以如果Java运行环境版本与Hadoop版本不兼容,Hadoop会无法运行或者在运行的时候会产生问题,以下表格来自Hadoop的官方文档HadoopJavaVersions,你在选择jdk版本的时候充分考虑此表。
Version | Status | Reported By |
---|---|---|
oracle 1.7.0_15 | Good | Cloudera |
oracle 1.7.0_21 | Good (4) | Hortonworks |
oracle 1.7.0_45 | Good | Pivotal |
openjdk 1.7.0_09-icedtea | Good (5) | Hortonworks |
oracle 1.6.0_16 | Avoid (1) | Cloudera |
oracle 1.6.0_18 | Avoid | Many |
oracle 1.6.0_19 | Avoid | Many |
oracle 1.6.0_20 | Good (2) | LinkedIn, Cloudera |
oracle 1.6.0_21 | Good (2) | Yahoo!, Cloudera |
oracle 1.6.0_24 | Good | Cloudera |
oracle 1.6.0_26 | Good(2) | Hortonworks, Cloudera |
oracle 1.6.0_28 | Good | |
oracle 1.6.0_31 | Good(3, 4) | Cloudera, Hortonworks |
创建Hadoop用户#
创建一个名为hadoop的用户以进行hadoop安装。
即使你不愿意创建hadoop用户,我也强烈建议你不要使用root用户来搭建hadoop环境,因为这可能带来安全问题。
sudo addgroup hadoop
sudo adduser --ingroup hadoop hadoop
Adding user
hadoop' ... Adding new user
hadoop' (1000) with grouphadoop' ... Creating home directory
/home/hadoop' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for hadoop
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]