/×××××××××××××××××××××××××××××××××××××××××/

Author:xxx0624

HomePage:http://www.cnblogs.com/xxx0624/

/×××××××××××××××××××××××××××××××××××××××××/

配置Hadoop1.2.1

前提是已经配置过JDK和SSH

如何配置JDK:http://www.cnblogs.com/xxx0624/p/4164744.html)

如何配置SSH:http://www.cnblogs.com/xxx0624/p/4165252.html)

1. 添加Hadoop用户

sudo addgroup hadoop
sudo adduser --ingroup hadoop hadoop
sudo usermod -aG admin hadoop

2. 下载Hadoop文件(例:Hadoop1.2.1,我放的时/home/xxx0624/hadoop)

sudo tar -zxzf hadoop-1.2.1.tar.gz
sudo mv hadoop-1.2.1 /home/xxx0624/hadoop

保证所有操作都是在hadoop用户下完成

sudo chown -R hadoop:hadoop /home/xxx0624/hadoop

注意:其实第一步和第二步可以忽略,也就是说不一定要在hadoop用户下进行!!!

3. 设置hadoop和java环境变量

sudo gedit /home/xxx0624/hadoop/conf/hadoop-env.sh

在打开的文件中末尾添加:

export JAVA_HOME=/usr/lib/jvm   //(根据你本身的java安装路径而定的)
export HADOOP_HOME=/home/xxx0624/hadoop
export PATH=$PATH:/home/xxx0624/hadoop/bin

使环境变量生效(每次运行Hadoop命令都必须保证变量生效!)

source /home/xxx0624/hadoop/conf/hadoop-env.sh

4. 伪分布式模式配置

core-site.xml:  Hadoop Core的配置项,例如HDFS和MapReduce常用的I/O设置等。

hdfs-site.xml:  Hadoop 守护进程的配置项,包括namenode,辅助namenode和datanode等。

mapred-site.xml: MapReduce 守护进程的配置项,包括jobtracker和tasktracker。

4.1  首先新建这几个文件夹

mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data
/*都是在hadoop文件夹下*/

4.2 开始编辑文件

 core-site.xml:

     <configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/xxx0624/hadoop/tmp</value>
</property>

hdfs-site.xml:

     <configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/xxx0624/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/xxx0624/hadoop/hdfs/data</value>
</property>
</configuration

mapred-site.xml:

     <configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>

5. 格式化HDFS

hadoop namenode -format

如果出现这种错误:

ERROR namenode.NameNode: java.io.IOException: Cannot create directory /home/xxx0624/hadoop/hdfs/name/current

则:将hadoop的目录权限设为当前用户可写sudo chmod -R a+w /home/xxx0624/hadoop,授予hadoop目录的写权限

另外同时还需要更改hdfs/data文件夹的读写权限:

sudo chmod 755 data

6. 启动Hadoop

cd /home/xxx0624/hadoop/bin
start-all.sh

正确结果如下:

Warning: $HADOOP_HOME is deprecated.
starting namenode, logging to /home/xxx0624/hadoop/logs/hadoop-xxx0624-namenode-xxx0624-ThinkPad-Edge.out
localhost: Warning: $HADOOP_HOME is deprecated.
localhost:
localhost: starting datanode, logging to /home/xxx0624/hadoop/logs/hadoop-xxx0624-datanode-xxx0624-ThinkPad-Edge.out
localhost: Warning: $HADOOP_HOME is deprecated.
localhost:
localhost: starting secondarynamenode, logging to /home/xxx0624/hadoop/logs/hadoop-xxx0624-secondarynamenode-xxx0624-ThinkPad-Edge.out
starting jobtracker, logging to /home/xxx0624/hadoop/logs/hadoop-xxx0624-jobtracker-xxx0624-ThinkPad-Edge.out
localhost: Warning: $HADOOP_HOME is deprecated.
localhost:
localhost: starting tasktracker, logging to /home/xxx0624/hadoop/logs/hadoop-xxx0624-tasktracker-xxx0624-ThinkPad-Edge.out

可以通过jps命令来验证是否成功:

如果5个守护进程都出现,则正常。

NameNode:

它是Hadoop 中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问。

SecondaryNameNode:

它不是 namenode 的冗余守护进程,而是提供周期检查点和清理任务。

出于对可扩展性和容错性等考虑,我们一般将SecondaryNameNode运行在一台非NameNode的机器上。

DataNode:

它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个 datanode 守护进程。

JobTrackerTaskTracker:

JobTracker负责调度 DataNode上的工作。每个 DataNode有一个TaskTracker,它们执行实际工作。

JobTracker和 TaskTracker采用主-从形式,JobTrackerDataNode分发工作,而 TaskTracker执行任务。

JobTracker还检查请求的工作,如果一个 DataNode由于某种原因失败,JobTracker会重新调度以前的任务。

7.查看运行状态

http://localhost:50030/    - Hadoop 管理介面
 http://localhost:50060/    - Hadoop Task Tracker 状态
 http://localhost:50070/    - Hadoop DFS 状态

8. 关闭Hadoop

stop-all.sh

各种错误总结:

1.$HADOOP_HOME is deprecated.....

这个对Hadoop运行无影响。

因为Hadoop本身对HADOOP_HOME进行了判断:

 if [  "$HADOOP_HOME_WARN_SUPPRESS"  =  ""  ] && [  "$HADOOP_HOME"  !=  ""  ]; then
echo "Warning: \$HADOOP_HOME is deprecated." 1 >& 2
echo 1 >& 2
fi

解决办法:

(1)注释掉上面这段代码

(2)在当前用户的/home/xxx0624/.bash_profile目录下(可能有的机器没有这个文件,比如我的。。)增加一个环境变量

        export HADOOP_HOME_WARN_SUPPRESS=1    //这是要增加的环境变量
source .bash_profile //修改完立即使之生效

2.datanode无法启动,即jps命令查询结果中不存在,这时需要在logs文件夹中查看相应的log文件

例如:

2014-12-17 16:37:54,165 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /home/xxx0624/hadoop/hdfs/data, expected: rwxr-xr-x, while actual: rwxrwxrwx

错误原因:需要将data文件的读写权限改为rwxr-xr-x

解决办法:更改权限

sudo chmod 755 data

然后重启Hadoop

3. datanode启动后自动关闭

查看log日志,发现是data/current/version中的namespaceid和name/current/version中的namespaceid不一样。

解决办法:

将data的namespaceid改为name中的即可。

Ubuntu环境下手动配置Hadoop1.2.1的更多相关文章

  1. Ubuntu环境下手动配置zookeeper

    配置zookeeper 注意:因为是单机伪分布式配置,故同一机器上有3个server zookeeper文件格式如下 home---zookeeper---server0---zookeeper | ...

  2. Ubuntu环境下手动配置HBase0.94.25

    /×××××××××××××××××××××××××××××××××××××××××/ Author:xxx0624 HomePage:http://www.cnblogs.com/xxx0624/ ...

  3. Ubuntu环境下手动配置ant

    配置ant 1. 下载ant(http://ant.apache.org/bindownload.cgi) 例如我下载的是:apache-ant-1.9.4-bin.tar.gz 解压ant,将文件夹 ...

  4. Ubuntu环境下手动配置ElasticSearch0.90.5

    1 下载elasticsearch-0.90.5 2 修改配置(可选) 修改内存:(可选) bin/elasticsearch.in.sh中: ES_MIN_MEM ES_MAX_MEM 修改搜索引擎 ...

  5. Ubuntu环境下手动配置tomcat

    配置tomcat 前提条件:JDK已配置. (配置JDK:http://www.cnblogs.com/xxx0624/p/4164744.html) 1. 下载tomcat(http://tomca ...

  6. Ubuntu环境下手动配置openSSH

    配置openSSH 1.手动下载压缩文件(.tar.gz) zlib-1.2.7.tar.gz openssl-1.0.1j.tar.gz openssh-6.0p1.tar.gz 2.安装zlib ...

  7. Ubuntu环境下手动配置Java环境

    /×××××××××××××××××××××××××××××××××××××××××/ Author:xxx0624 HomePage:http://www.cnblogs.com/xxx0624/ ...

  8. Linux环境下手动配置sbt

    一.下载sbt安装包 从sbt官网下载地址:http://www.scala-sbt.org/download.html下载安装包,以sbt-0.13.13.tgz为例. 二.安装 1.将下载的二进制 ...

  9. CentOs7环境下手动配置JDK7

    下载: JDK7下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7- ...

随机推荐

  1. UIViewSubviews多个views之间的关系

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  2. LINQ(隐式表达式、lambda 表达式)

    .NET 中一项突破性的创新是 LINQ(Language Integrated Query,语言集成查询),这组语言扩展让你能够不必离开舒适的 C# 语言执行查询. LINQ 定义了用于构建查询表达 ...

  3. 暑假集训(5)第一弹——— Super Jumping! Jumping! Jumping!(hdu1087)

    题意概括:在上次与娑殚的三次博弈中,你们都取得了胜利.便向娑殚提出要求,借助他的力量,传送到一个安全的地方. 你们的愿望达成了,不过,你和小A似乎失散了. 街上人来人往的特别热闹,每一个人的脸上都洋溢 ...

  4. Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)C粉丝与汉诺塔

    题目描述 苟利国家生死以,岂因福祸避趋之?作为ACM真正的粉丝,应该都听闻过汉诺塔问题,汉诺塔问题是这样的: 有三根柱子,编号A,B,C柱,初始情况下A柱上有n个盘子,小盘子在上大盘子在下,n个盘子大 ...

  5. office2013发布博客

    0, 喜欢用world记笔记,并查上一些配图.但是再想重新发到博客上,图片不得不重新上传十分蛋疼. world直接发布博客功能太棒了,直接绑定账号和url就可以发送了,爽YY!!! 1,新建一个博客文 ...

  6. CLI结果输出

    例子:FTP::11.245.253.20_CIPS_dev_bak\/opt/IBM/db2/V9.7/samples/ 要不要修改整体结构,先看看细节 CLI结果输出: 1. 逐条的获取--确定产 ...

  7. SMB/CIFS协议解析二

    一.拷贝文件(远程-->本地) 1.SMB_COM_NT_CREATE_ANDX (0xa2)       打开文件,获取文件名,获得读取文件的  总长度. 2.SMB_COM_READ     ...

  8. DWZ 刷新 dialog

    DWZ刷新dialog: 1,在删除按钮上添加callback属性;如:(callback="dialogAjax") <a class="delImg" ...

  9. 解决IE6中ajax ‘aborted’错误请求中断

    给a标签绑定了一个click事件用来触发ajax请求,在IE6中,请求时常会被中断,在其他浏览器中都一切正常. 在IE6中使用Fiddler2和httpWatch监视请求,经常会出现”aborted” ...

  10. canvas 的学习

    canvas 绘制直线的API有: 1.moveTo()起点坐标. 2.lineTo()绘制的直线 3. fillStyle以及 flii()是绘制实体的 4. strokeStyle 和stroke ...