单机模式:在Ubuntu上安装Hadoop

 Hadoop是一个用Java编写的用于运行与物理集群中的框架,吸收了GFS和mapreduce编程模型的特性。Hadoop的HDFS是一个高容错的分布式文件系统,并且它被设计运行于低成本的硬件上,能够提供很大的数据吞吐量,很适合那些数据量很大的应用程序。

    接下来,开始准备安装hadoop。我用的操作系统是 ubuntu 12.10 server,hadoop的版本是1.2.0。

 

安装准备

 

JDK 6

Hadoop需要在JDK1.5以上的环境下才能运行,目前推荐使用JDK 6 。

 

1 $ sudo apt-get update
2 $ sudo apt-get install openjdk-6-jdk

安装完成之后,文件会被放置在 /usr/lib/jvm/java-6-openjdk-amd64 这个路径下。

 

配置SSH

 

 

Hadoop需要用SSH来管理它的节点。针对单机的情况,我们需要配置SSH让运行hadoop的用户能够登录本机。

首先,我们需要为运行hadoop的用户生成一个SSH key:

1 $ ssh-keygen -t rsa -P ""

然后,让你可以通过新生成的key来登录本地机器。

1 $ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

准备结束,下面开始安装hadoop。

Hadoop

在hadoop官网上下载 1.2.0 版本的软件,解压,然后把文件放到 /usr/local/ 路径下:

1 $ tar -zxvf hadoop-1.2.0.tar.gz
2 $ mv hadoop-1.2.0 hadoop
3 $ cp -r hadoop/ /usr/local/

接下来开始设置一些环境变量,需要在 ~/.bashrc 文件里面添加一下内容:

 

01 # Set Hadoop-related environment variables
02 export HADOOP_HOME=/usr/local/hadoop
03   
04 # Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
05 export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
06   
07 # Some convenient aliases and functions for running Hadoop-related commands
08 unalias fs &> /dev/null
09 alias fs="hadoop fs"
10 unalias hls &> /dev/null
11 alias hls="fs -ls"
12   
13 lzohead () {
14     hadoop fs -cat $1 | lzop -dc | head -1000 | less
15 }
16   
17 # Add Hadoop bin/ directory to PATH
18 export PATH=$PATH:$HADOOP_HOME/bin

 在修改完成后保存,重新登录,相应的环境变量就配置好了。

接下来开始配置Hadoop相关的东西,首先来看张图,了解下HDFS的结构:

单机模式:在Ubuntu上安装Hadoop

 

 

配置

 

hadoop-env.sh

在这个配置文件里,你只需要配置 JAVA_HOME 这个环境变量就行了,添加以下内容:

1 export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64

 

conf/hdfs-site.xml

在这里需要配置hadoop存放数据文件的路径和hadoop监听的端口,首先来新建目录:

1 $ sudo mkdir -p /app/hadoop/tmp
2 $ sudo chmod 750 /app/hadoop/tmp

然后在 conf/core-site.xml 文件里面添加以下内容:

01 <property>
02   <name>hadoop.tmp.dir</name>
03   <value>/app/hadoop/tmp</value>
04   <description>A base for other temporary directories.</description>
05 </property>
06   
07 <property>
08   <name>fs.default.name</name>
09   <value>hdfs://localhost:54310</value>
10   <description>The name of the default file system.  A URI whose
11   scheme and authority determine the FileSystem implementation.  The
12   uri's scheme determines the config property (fs.SCHEME.impl) naming
13   the FileSystem implementation class.  The uri's authority is used to
14   determine the host, port, etc. for a filesystem.</description>
15 </property>

conf/mapred-site.xml 添加以下内容

1 <property>
2   <name>mapred.job.tracker</name>
3   <value>localhost:54311</value>
4   <description>The host and port that the MapReduce job tracker runs
5   at.  If "local", then jobs are run in-process as a single map
6   and reduce task.
7   </description>
8 </property>

conf/hdfs-site.xml 添加以下内容

1 <property>
2   <name>dfs.replication</name>
3   <value>1</value>
4   <description>Default block replication.
5   The actual number of replications can be specified when the file is created.
6   The default is used if replication is not specified in create time.
7   </description>
8 </property>

 

通过 NameNode 来格式化 HDFS 文件系统

在配置结束后,需要来对 HDFS 进行格式化,运行一下命令:

1 $ /usr/local/hadoop/bin/hadoop namenode -format

会输出一下内容:

01 root@master:~# hadoop namenode -format
02 Warning: $HADOOP_HOME is deprecated.
03   
04 13/06/02 10:22:41 INFO namenode.NameNode: STARTUP_MSG: 
05 /************************************************************
06 STARTUP_MSG: Starting NameNode
07 STARTUP_MSG:   host = master/192.168.214.128
08 STARTUP_MSG:   args = [-format]
09 STARTUP_MSG:   version = 1.2.0
10 STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1479473; compiled by 'hortonfo' on Mon May  6 06:59:37 UTC 2013
11 STARTUP_MSG:   java = 1.6.0_27
12 ************************************************************/
13 Re-format filesystem in /app/hadoop/tmp/dfs/name ? (Y or N) y
14 Format aborted in /app/hadoop/tmp/dfs/name
15 13/06/02 10:22:48 INFO namenode.NameNode: SHUTDOWN_MSG: 
16 /************************************************************
17 SHUTDOWN_MSG: Shutting down NameNode at master/192.168.214.128
18 ************************************************************/

下面就来运行hadoop:

1 $ /usr/local/hadoop/bin/start-all.sh

这个命令会启动机器上的 namenode,datanode,jobtracker 和 tasktracker

有一个简单的工具来检查hadoop的运行状况,jps:

1 $ jps
2 4590 TaskTracker
3 4368 JobTracker
4 4270 SecondaryNameNode
5 4642 Jps
6 4028 DataNode
7 3801 NameNode

你也可以通过 netstat 命令来检查 hadoop 是否正常运行:

01 $ sudo netstat -plten | grep java
02 tcp   0  0 0.0.0.0:50070   0.0.0.0:*  LISTEN  1001  9236  2471/java
03 tcp   0  0 0.0.0.0:50010   0.0.0.0:*  LISTEN  1001  9998  2628/java
04 tcp   0  0 0.0.0.0:48159   0.0.0.0:*  LISTEN  1001  8496  2628/java
05 tcp   0  0 0.0.0.0:53121   0.0.0.0:*  LISTEN  1001  9228  2857/java
06 tcp   0  0 127.0.0.1:54310 0.0.0.0:*  LISTEN  1001  8143  2471/java
07 tcp   0  0 127.0.0.1:54311 0.0.0.0:*  LISTEN  1001  9230  2857/java
08 tcp   0  0 0.0.0.0:59305   0.0.0.0:*  LISTEN  1001  8141  2471/java
09 tcp   0  0 0.0.0.0:50060   0.0.0.0:*  LISTEN  1001  9857  3005/java
10 tcp   0  0 0.0.0.0:49900   0.0.0.0:*  LISTEN  1001  9037  2785/java
11 tcp   0  0 0.0.0.0:50030   0.0.0.0:*  LISTEN  1001  9773  2857/java

停止运行 hadoop ,运行以下命令:

1 $ /usr/local/hadoop/bin/stop-all.sh

那么 hadoop 单机模式安装就完成了,下一篇来介绍多物理机模式的安装。

 

你可能感兴趣的:(hadoop,安装,ubuntu,单机)