没啥事折腾一下装个单节点的,为得是方便学习和调试。

0.jdk安装,很简单在本博可以找到。

(我直接用root玩了,你也可以不这么搞)

在终端窗口里面输入: sudo  -s.然后输入普通用户登陆的密码,回车即可进入 root用户权限模式。


然后执行: vim /etc/lightdm/lightdm.conf.

增加 greeter-show-manual-login=true  allow-guest=false  . 修改完的整个配置文件是



[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true #手工输入登陆系统的用户名和密码
allow-guest=false   #不允许guest登录


1.下载hadoop-2.2.0.tar.gz(从Apache官方可以下载)

Hadoop路径配置

建议将Hadoop安装在/opt下,所以将/opt的属主修改为实际用户(本文以kevin用户为例):
  1. $sudo chown kevin:kevin /opt  

  2. tar xzvf hadoop-2.2.0.tar.gz  

  3. $ mv hadoop-2.2.0 /opt/hadoop


ssh本地互通

sudo apt-get install openssh-client
sudo apt-get install openssh-server

cd /root
ssh-keygen -t rsa -P ""   (回车)
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys用命令验证一下是否可以免密码链接localhost

然后执行以下命令:

  1. $ ssh localhost  

全局变量

在/etc/profile的末尾加入:

vim /etc/profile

  1. export HADOOP_HOME=/opt/hadoop  

  2. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin  


确保可以在任意位置执行hadoop命令。

然后将配置文件启用:

$ source /etc/profile


目录配置

创建Hadoop的数据存储目录,并修改属主权限(我这用的root可以不需要这写)


$ sudo mkdir /hadoop
$ sudo chown krvin:kevin /hadoop
$ mkdir /hadoop/dfs
$ mkdir /hadoop/tmp

配置Hadoop

配置hadoop-env.sh

修改hadoop-env.sh文件:

$ cd /opt/hadoop/etc/hadoop
$ vim hadoop-env.sh

将默认的JAVA_HOME修改为:/opt/jdk1.6.0_35


配置core-site.xml

修改core-site.xml文件:

$cd /opt/hadoop/etc/hadoop
$vim core-site.xml

<configuration>标签中(即嵌套在该标签中)加入以下内容:


<property>
 <name>hadoop.tmp.dir</name>
 <value>/hadoop/tmp</value>
 <description>temporary directories.</description>
</property>
<property>
 <name>fs.defaultFS</name>
 <value>hdfs://192.168.1.100:9000</value>
 <description>The name of the defaultfile system. Either the literal string "local" or a host:port forNDFS.
 </description>
 <final>true</final>
</property>

更多配置信息,参考:

http://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-common/core-default.xml


配置hdfs-site.xml

修改hdfs-site.xml

  1. $ vim hdfs-site.xml  


<configuration>标签中(即嵌套在该标签中)加入以下内容:

<property>
 <name>dfs.namenode.name.dir</name>
 <value>file:/hadoop/dfs/name</value>
 <description>Determineswhere on the local filesystem the DFS name node should store the name table.</description>
 <final>true</final>
</property>

<property>
 <name>dfs.datanode.data.dir</name>
 <value>file:/hadoop/dfs/data</value>
 <description>Determineswhere on the local filesystem an DFS data node should store its blocks.
 </description>
 <final>true</final>
</property>

<property>
 <name>dfs.replication</name>
 <value>1</value>
</property>

<property>
 <name>dfs.permissions</name>
 <value>false</value>
</property>

更多hdfs-site.xml的配置信息,参考:

http://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

配置mapred-site.xml

默认不存在此文件,需要创建:

$ cp mapred-site.xml.template mapred-site.xml
$ vim mapred-site.xml

<configuration>标签中(即嵌套在该标签中)加入以下内容:

<property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
</property>

<property>
 <name>mapred.system.dir</name>
 <value>file:/hadoop/mapred/system</value>
 <final>true</final>
</property>

<property>
 <name>mapred.local.dir</name>
 <value>file:/hadoop/mapred/local</value>
 <final>true</final>
</property>

配置yarn-site.xml

执行以下命令:

$ vim yarn-site.xml

<configuration>标签中(即嵌套在该标签中)加入以下内容:

<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 <description>shuffle service that needsto be set for Map Reduce to run </description>
</property>

<property>
 <name>yarn.resourcemanager.hostname</name>
 <value>192.168.1.100</value>
 <description>hostanem of RM</description>
</property>

yarn.resourcemanager.hostname配置后,其他端口号将使用默认。详见:

http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

初始化

格式化NameNode:

  1. $ hdfs namenode -format  



启动DFS

分别按顺序执行以下命令:

  1. $ hadoop-daemon.sh start namenode  

  2. $ hadoop-daemon.sh start datanode  


使用jps查看进程是否启动

  1. $ jps  


并在以下网页检查:

  1. http://localhost:50070/dfshealth.jsp  

启动Yarn

  1. $ yarn-daemon.sh start resourcemanager  

  2. $ yarn-daemon.sh start nodemanager  

异常处理

如果发生任何启动异常,关闭进程后,需要清空数据:
  1. $ rm -rf /hadoop/dfs/*  

  2. $ rm -rf /hadoop/tmp/*  

然后重新执行格式化:
  1. $ hdfs namenode -format