参考:

http://www.tuicool.com/articles/zUvy2m3

1.在 Ubuntu 下创建 Hadoop 用户组和用户

为了方便,我的ubuntu用户名就算hadoop,所以这一步可以跳过,hadoop用户组也不用添加。

需要给hadoop用户添加权限,打开/etc/sudoers文件,在Terminal中输入以下命令:

sudo gedit /etc/sudoers

回车后会打开一个文本编辑器,找到“root ALL=(ALL:ALL) ALL”这一行,在下面添加一行:

hadoop  ALL=(ALL:ALL) ALL

设置完成后注销, 以下均使用Hadoop账户登录进行设置。

2.安装SSH

由于Hadoop用ssh通信,先安装ssh

sudo apt-get install openssh-server

ssh安装完成以后,先启动服务:

sudo /etc/init.d/ssh start

启动后,可以通过如下命令查看服务是否正确启动:

ps -e | grep ssh

作为一个安全通信协议,使用时需要密码,因此我们要设置成免密码登录,生成私钥和公钥:


ssh-keygen -t rsa -P ""


第一次操作时会提示输入密码,按Enter直接过,这时会在~/home/{username}/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥,现在我们将公钥追加到authorized_keys中(authorized_keys用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容):

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

现在可以登入ssh确认以后登录时不用输入密码:


ssh localhost


3.安装hadoop

下载的是hadoop2.3.0,2.x最好在32位ubuntu下,64比较麻烦。

gedit ~/.bashrc设置环境,将下面加入:


?



export          HADOOP_HOME=         /home/hadoop/hadoop        


         export          HADOOP_MAPRED_HOME=$HADOOP_HOME        


         export          HADOOP_COMMON_HOME=$HADOOP_HOME        


         export          HADOOP_HDFS_HOME=$HADOOP_HOME        


         export          YARN_HOME=$HADOOP_HOME        


         export          HADOOP_CONF_DIR=$HADOOP_HOME         /etc/hadoop


  然后再执行下面的命令使配置生效:


?



1


source  ~/.bashr



4.配置单节点 (Single Node) 模式

接下来需要配置core-site.xml,hdfs-site.xml,yarn-site.xml三个文件。以上文件均位于hadoop安装文件夹的/etc/hadoop目录下。

  1. 配置core-site.xml

ctrl+alt+T打开Terminal,输入以下命令:


cd Hadoop-2.3.0 gedit etc/hadoop/core-site.xml


在打开的窗口中,按如下修改代码:

<configuration>
       <property>
         <name>fs.defaultFS</name>
         <value>hdfs://localhost:8020</value>
         <description>The name of the defaultfile system. Either the literal string "local" or a host:port forNDFS.
         </description>
         <final>true</final>
       </property>
</configuration>

保存并关闭文本编辑器。

  1. 配置hdfs-site.xml

继续在Terminal中输入:


gedit etc/hadoop/hdfs-site.xml


在打开的窗口中,按如下修改代码:

<configuration>
   <property>
     <name>dfs.namenode.name.dir</name>
     <value>/home/hadoop/hadoop/dfs/name</value>
   </property>
   <property>
     <name>dfs.datanode.data.dir</name>
     <value>/home/hadoop/hadoop/dfs/data</value>
   </property>
</configuration>

保存并关闭文本编辑器。

  1. 配置yarn-site.xml

Hadoop 2.x有了YARN所以原来的mapred配置都转向yarn-site.xml文件中了,这里也就指定YARN。继续在Terminal中输入:


gedit etc/Hadoop/yarn-site.xml


在打开的窗口中,按如下修改代码:

<configuration>
<!-- Site specific YARN configuration properties -->
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property> 
    <name>yarn.nodemanager.aux-services</name> 
    <value>mapreduce_shuffle</value> 
  </property>
</configuration>
  1. 配置日志输出方式,便于调试错误
export HADOOP_ROOT_LOGGER=INFO,console
  1. 格式化文件系统
cd hadoop-2.3.0
mkdir dfs/
mkdir dfs/name
mkdir dfs/data
./bin/hadoop namenode -format
  1. 启动服务
# HDFS(NameNode & DataNode)部分:
  
  
  
  
   
    
  
  
  
  
   
   $ sbin
   
   /hadoop-daemon
   
   .sh start namenode
  
  
  
  
   
   $ sbin
   
   /hadoop-daemon
   
   .sh start datanode
  
  
  
  
   
   

  
  
  
  
   
   
   
   
    
    # MR(Resource Manager, Node Manager & Job History Server).部分:
   
   
   
   
    
     
   
   
   
   
    
    $ sbin
    
    /yarn-daemon
    
    .sh start resourcemanager
   
   
   
   
    
    $ sbin
    
    /yarn-daemon
    
    .sh start nodemanager
   
   
   
   
    
    $ sbin
    
    /mr-jobhistory-daemon
    
    .sh start historyserver
   
   

  
  

# HDFS(NameNode & DataNode)部分:
$ sbin
/hadoop-daemon
.sh start namenode
$ sbin
/hadoop-daemon
.sh start datanode



# MR(Resource Manager, Node Manager & Job History Server).部分:
$ sbin
/yarn-daemon
.sh start resourcemanager
$ sbin
/yarn-daemon
.sh start nodemanager
$ sbin
/mr-jobhistory-daemon
.sh start historyserver
  1. 查看状态
./bin/Hadoop dfsadmin -report

看到以下字样表示一个数据节点OK

Datanodes available: 1 (1 total, 0 dead)

在浏览器里输入 http://127.0.0.1:50070/

能看到 Hadoop 服务启动

  1. WordCount测试

构造数据文件(file1.txt,file2.txt) 
在Hadoop-2.3.0文件夹下面新建一个input文件夹,然后新建一个文本文件file1.txt,随便写上一些内容: 
hello   world 
hello   ray 
hello   Hadoop

再新建一个file2.txt,再随便写上一些内容: 
Hadoop  ok 
Hadoop  fail 
Hadoop  2.3

把数据文件加入到 Hadoop 系统。

./bin/hadoop fs -mkdir /data
./bin/hadoop fs -put -f input/file1.txt input/file2.txt /data

运行 WordCount(java) 版本。

./bin/hadoop jar ./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.3.0-sources.jar org.apache.hadoop.examples.WordCount /data /output

查看结果。

./bin/hadoop fs -cat /output/part-r-00000

看到如下结果说明配置成功 
2.3     1 
fail    1 
Hadoop  4 
hello   3 
ray     1 
ok      1 
world   1