hadoop环境搭建图文剖析

最近在做一个项目实验,用到LDA,结果发现单机跑不起来,所以就来学分布式了,搞了两天,参考的文档是:http://www.cnblogs.com/end/archive/2012/08/13/2636645.html

我发现了,能找到好的文档能事半功倍,我就感觉这个文档学的比较好,赞一个。里边有些内容直接借用过来了(学习搞了两天,在别的电脑又搞了两天,不想搞了,罪过。。。。),如有冒犯,阿弥陀佛。。。。

安装步骤: 
一、安装Linux操作系统
二、在Ubuntu下创建hadoop用户组和用户
三、在Ubuntu下安装JDK
四、修改机器名
五、安装ssh服务
六、建立ssh无密码登录本机
七、安装hadoop
八、在单机上运行hadoop


一、安装Linux操作系统 
我安装的是Ubuntu14.04的桌面版虚拟机,系统的安装请自行找相关参考文档。


二、在Ubuntu下创建hadoop用户组和用户 
创建用户组和用户,名称均为hadoop

1、创建hadoop用户组,如下

 

2、创建hadoop用户, 

 

3、给hadoop用户添加权限,打开/etc/sudoers文件, 


 这里也许会出现gedit不好用(那就老老实实用vi/vim吧)

按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限。在root  ALL=(ALL:ALL)   ALL下添加hadoop  ALL=(ALL:ALL)  ALL,如下图 

 

三、在Ubuntu下安装JDK

1.下载需要的jdk(在这个网址找到适合自己的版本就行),我的是jdk-7u79-linux-x64.gz

2.将该文件复制到你需要安装的文件目录下,并解压。

3.配置环境变量,将jdk的解压目录放到/etc/profile中(只需在后面添加即可),如下图


4. jdk安装完毕,如不够清晰,也可参考: http://weixiaolu.iteye.com/blog/1401786

四、修改机器名 
每当ubuntu安装成功时,我们的机器名都默认为:ubuntu,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定。
1
、打开/etc/hostname文件 

 

2、回车后就打开/etc/hostname文件了,将/etc/hostname文件中的ubuntu改为你想取的机器名。重启系统后才会生效。


五、安装ssh服务 
这里的ssh和三大框架:spring,struts,hibernate没有什么关系,ssh可以实现远程登录和管理,具体可以参考其他相关资料。
1
、安装openssh-server


操作完成后继续执行步骤六的第1步。


六、建立ssh无密码登录本机 
切换到hadoop用户下。

ssh生成密钥有rsadsa两种生成方式,默认情况下采用rsa方式。
1
、创建ssh-key,,这里我们采用rsa方式

 

(注:回车后会在~/.ssh/下生成两个文件:id_rsaid_rsa.pub这两个文件是成对出现的)

2
、进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的: 

 

(完成后就可以无密码登录本机了。)

3
、登录localhost 

 

(注:当ssh远程登录到其它机器后,现在你控制的是远程的机器,需要执行退出命令才能重新控制本地主机。)

4
、执行退出命令,如下(也可不退出):

 

七、安装hadoop 

我安装的是hadoop1.2.1,我也是按这个版本来安装的,所以就不多说了,直接粘贴过来(罪过。。。。)。

这里采用的hadoop版本是:hadoop-0.20.203http://apache.etoak.com/hadoop/common/hadoop-0.20.203.0/ ),因为该版本比较稳定。
1
、假设hadoop-0.20.203.tar.gz在桌面,将它复制到安装目录 /usr/local/下: 

 

2、解压hadoop-0.20.203.tar.gz,如图


解压后查看


3、将解压出的文件夹改名为hadoop

4、将该hadoop文件夹的属主用户设为hadoop,如图 

 

5、打开hadoop/conf/hadoop-env.sh文件 

切换到hadoop解压目录,使用vi conf/hadoop-env.sh

6、配置conf/hadoop-env.sh(找到#export JAVA_HOME=...,去掉#,然后加上本机jdk的路径)

7、打开conf/core-site.xml文件,编辑如下:

Java代码  

<pre name="code" class="java"><?xml version="1.0"?>  
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  
<!-- Put site-specific property overrides in this file. -->  
  
<configuration>  
<property>    
  <name>fs.default.name</name>    
  <value>hdfs://localhost:9000</value>     
 </property>    
</configuration> 

8、打开conf/mapred-site.xml文件,编辑如下:

 Java代码  

<?xml version="1.0"?>  

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  
<!-- Put site-specific property overrides in this file. -->  
  
    <configuration>    
     <property>     
      <name>mapred.job.tracker</name>    
      <value>localhost:9001</value>     
     </property>    
    </configuration>   <span style="font-family: SimHei; background-color: rgb(255, 255, 255);">   </span>

9、打开conf/hdfs-site.xml文件,编辑如下:

 单机配置,这里副本也可只配置一台。

Java代码  

<configuration>  

<property>  
<name>dfs.name.dir</name>  
<value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>  
</property>  
<property>  
<name>dfs.data.dir</name>  
<value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>  
</property>  
<property>  
<name>dfs.replication</name>  
<value>2</value>  
</property>  
</configuration>  

10、打开conf/masters文件,添加作为secondarynamenode的主机名,作为单机版环境,这里只需填写localhostOk了。
11
、打开conf/slaves文件,添加作为slave的主机名,一行一个。作为单机版,这里也只需填写localhostOk了。

八、在单机上运行hadoop 
1
、进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作: 

 

当你看到下图时,就说明你的hdfs文件系统格式化成功了。

3、启动bin/start-all.sh,如图 

 

4、检测hadoop是否启动成功,如图 


如果有NamenodeSecondaryNameNodeTaskTrackerDataNodeJobTracker五个进程,就说明你的hadoop单机

配置过程中出现的一些注意事项(安装过程出现的就不考虑了,这里主要说下我在使用hadoop时候碰到的):

1.启动hadoopbin/start-all.sh)之后,用jps查看,发现没有namenode或者是datanode,解决方案删除namenode下的记录,重新格式化,删除命令如下:

1namenode不存在时:sudo rm -rf /usr/local/hadoop/dfs/name

2datanode不存在时:sudo rm –rf /home/hdfs/data/current/VERSION

2.在安装openssh-server后时,在生成密钥时会出现多次操作,可以选择先删除对应的know_hosts的内容再操作一遍。


网上处理方法:

hadoop启动后jps没有namenode

一般都是由于两次或两次以上格式化NameNode造成的,有两种方法可以解决:

1.删除DataNode的所有资料

2.修改每个DataNodenamespaceID(位于/home/hdfs/data/current/VERSION文件中)或修改NameNodenamespaceID(位于/home/hdfs/name/current/VERSION文件中)

目的是两者一致。

 

阅读更多
想对作者说点什么? 我来说一句

Hadoop环境搭建

2010年09月28日 156KB 下载

Hadoop环境搭建.pdf

2017年10月11日 648KB 下载

hadoop环境搭建

2012年01月01日 210KB 下载

hadoop环境搭建和eclipse开发

2014年07月17日 931KB 下载

Hadoop环境搭建详解

2016年12月08日 382KB 下载

hadoop安装文档

2012年05月08日 57KB 下载

大数据hadoop资源

2015年12月10日 2KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭