前言

最近在学习Hadoop,文章只是记录我的学习过程,难免有不足甚至是错误之处,请大家谅解并指正!Hadoop版本是最新发布的Hadoop-0.21.0版本,其中一些Hadoop命令已发生变化,为方便以后学习,这里均采用最新命令。具体安装及配置过程如下:

1 机器配置说明

总共有3台机器:hzau01、hzau02、hzau03

IP地址分别为:192.168.0.4、192.168.0.17、192.168.0.6

操作系统为:Linux2.6.33.3-85.fc13.i686.PAE

jdk版本为:jdk1.6.0_23

hadoop版本为:hadoop-0.21.0

hzau01作为NameNode、JobTracker,其他两台台作为DataNode、TaskTracker

2  查看机器间是否能相互通信(使用ping命令)

用root登录,在NameNode上修改/etc/hosts文件,加入三台机器的IP地址和机器名,如下:

192.168.0.4  hzau01

192.168.0.17  hzau02

192.168.0.6  hzau03

设置好后验证下各机器间是否ping通,用机器名或是IP地址都可以,例如ping hzau02或ping 192.168.0.17

Hadoop要求所有机器上hadoop的部署目录结构要相同并且有一个相同的用户名的帐户,我的默认路径为/home/garon

3  ssh设置及关闭防火墙

1)fedora装好后默认启动sshd服务,如果不确定的话可以查一下 [garon@hzau01 ~]$ service sshd status

如没有启动的话,先启动 [root@hzau01 ~]# service sshd start

建立ssh无密码登录,在NameNode上 [garon@hzau01 ~]ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa(''为两个单引号)

会在~/.ssh/生成两个文件:id_dsa和id_dsa.pub,这两是成对出现的,把id_dsa.pub文件追加到DataNode上的authorized_keys

[garon@hzau01 ~]$ scp ~/.ssh/id_dsa.pub hzau02:/home/garon/.ssh (注意其中目标机器后面的:与要传到的文件路径之间没有空格,即sc706:与/home/hadoop/之间没有空格)

scp ~/.ssh/id_dsa.pub hzau03:/home/garon/.ssh

登录到DataNode上,[garon@hzau02 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys ,其余一台一样,注意:追加完后必须修改NameNode和DataNode上的.ssh和authorized_keys的权限,chmod命令,参数600,完成后测试下,例如ssh hzau02时不需要密码就可以登录,就可以知道ssh设置成功。

2)关闭防火墙(NameNode和DataNode都必须关闭)

[root@hzau01 ~]# service iptables stop

注意:每次重新开机启动hadoop前都必须关闭

4 安装jdk1.6(集群中机子都一样)

下载jdk-6u23-ea-bin-b03-linux-i586-18_oct_2010.bin,之后直接安装,我的安装路径为:/usr/java/jdk1.6.0_23,安装后添加如下语句到/etc/profile中:

export JAVA_HOME="/usr/java/jdk1.6.0_23"

export JRE_HOME=/usr/java/jdk1.6.0_23/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

5 安装hadoop(集群中机子都一样)

在官网http://apache.etoak.com//hadoop/core/下载hadoop-0.21.0.tar.gz

[garon@hzau01 ~]$ tar xzvf hadoop-0.21.0.tar.gz

将hadoop的安装路径添加到/etc/profile中:

export HADOOP_HOME=/home/garon/hadoop-0.21.0

export PATH=$HADOOP_HOME/bin:$PATH

为了让/etc/profile生效,source一下 [garon@hzau01 ~]$ source /etc/profile

6 配置hadoop

其配置文件在/conf目录下

1)配置JAVA环境

[garon@hzau01 ~]$$ vi ~/hadoop/hadoop-0.21.0/conf/hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.6.0_23

2)配置conf/core-site.xml、conf/hdfs-site.xml、conf/mapred-site.xml文件

[garon@hzau01 hadoop-0.21.0]$ vi conf/core-site.xml

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/garon/hadoopgaron</value>

</property>

<property>

<name>fs.default.name</name>

<value>hdfs://hzau01/</value>

</property>

</configuration>

[garon@hzau01 hadoop-0.21.0]$ vi conf/mapred-site.xml

<configuration>

<property>

<name>mapred.jobtracker.address</name>

<value>hzau01:9001</value>

</property>

</configuration>

[garon@hzau01 hadoop-0.21.0]$ vi conf/hdfs-site.xml

<configuration>

<property>

<name>dfs.name.dir</name>

<value>/home/garon/hadoopname</value>

</property>

<property>

<name>dfs.data.dir</name>

<value>/home/garon/hadoopdata</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

3)将NameNode上完整的hadoop拷贝到DataNode上,可先将其进行压缩后直接scp过去或是用盘拷贝过去

4) 配置NameNode上的conf/masters和conf/slaves

masters:192.168.0.4

slaves:192.168.0.17

192.168.0.6

7 运行hadoop

1)格式化文件系统

[garon@hzau01 bin]$ hdfs namenode -format

注意:格式化时要防止NameNode的namespace ID与DataNode的namespace ID的不一致,因为每格式化一次会产生Name、Data、tmp等临时文件记录信息,多次格式化会产生很多,会导致ID的不同,造成hadoop不能运行

2)启动hadoop

[garon@hzau01 bin]$ start-dfs.sh

[garon@hzau01 bin]$ start-mapred.sh

3)用jps命令查看进程,NameNode上的结果如下:

5334 JobTracker

5215 SecondaryNameNode

5449 Jps

5001 NameNode

4)查看集群状态

[garon@hzau01 bin]$ hdfs dfsadmin -report

确保运行的DataNode个数是正确的,我的是2个,这样可以查看哪个DataNode没有运行

8 运行Wordcount.java程序

1)先在本地磁盘上建立两个文件f1和f2

[garon@hzau01 bin]$ echo ”Hello world Bye world" > ~/input/f1

[garon@hzau01 bin]$ echo ”hello hadoop bye hadoop” > ~/input/f2

2)在hdfs上建立一个input目录

[garon@hzau01 bin]$ hadoop fs -mkdir /tmp/input

3)将f1和f2拷贝到hdfs的input目录下

[garon@hzau01 bin]$ hadoop fs -put /home/garon/input /tmp

4)查看hdfs上有没有f1,f2

[garon@hzau01 bin]$ hadoop fs -ls /tmp/input

5)执行wordcount(确保hdfs上没有output目录)

[garon@hzau01 bin]$ hadoop jar ../hadoop-mapred-examples-0.21.0.jar wordcount /tmp/input /output

6)运行完成,查看结果

[garon@hzau01 bin]$ hadoop fs -cat /output/part-r-00000

Bye        1

Hello        1

bye        1

hadoop   2

hello        1

world 2

Hadoop的安装与配置及示例程序wordcount的运行相关推荐

  1. Mahout学习之Mahout简介、安装、配置、入门程序测试

    一.Mahout简介 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个 ...

  2. windows环境下IDEA安装和配置和第一个IDEA项目运行加常用快捷键

    IDEA安装和配置和第一个IDEA项目运行加常用快捷键 IDEA开发工具是和eclipse.myeclipse差不多的java开发工具. IDEA是一个专门针对Java的集成开发工具(IDE),由Ja ...

  3. 【FastDDS学习笔记】HelloWorld示例程序编译和运行

    目录 第一章:[FastDDS学习笔记]Ubuntu22上安装fastDDS环境 第二章:[FastDDS学习笔记]HelloWorld示例程序编译和运行 第三章:[FastDDS学习笔记]Fast- ...

  4. 再聊inno 打包工具之关于安装或者卸载时判断程序是否在运行

    再聊inno 打包工具之关于安装或者卸载时判断程序是否在运行 废话少说,show my code [code] //安装和卸载时检查程序是否运行,拷贝代码修改AppName和AppId functio ...

  5. hadoop环境安装及简单Map-Reduce示例

    说明:这篇博客来自我的csdn博客,http://blog.csdn.net/lxxgreat/article/details/7753511 一.参考书:<hadoop权威指南--第二版(中文 ...

  6. Mac Hadoop的安装与配置

    这里介绍Hadoop在mac下的安装与配置. 安装及配置Hadoop 首先安装Hadoop $ brew install Hadoop 配置ssh免密码登录 用dsa密钥认证来生成一对公钥和私钥: $ ...

  7. hadoop的安装与配置(伪分布式模式安装)

    最近偶然在研究hadoop看完网络上的配置文章居然在linux下安装成功的hadoop就把别人的文章进行说明一下,提供给需要的读者. hadoop 的安装分为本地模式.伪分布模式.集群模式.本地模式是 ...

  8. ANTLR4(一) VsCode Win10 Java 安装+环境配置+官方示例

    ANTLR4 VsCode Win10 Java 安装及环境配置 vscode上实现官方示例 预期效果 编写批处理文件 编写.g4格式的语法文件 运行ANTLR4工具 测试生成的语法分析器 将语法分析 ...

  9. java mysql settings_Java中使用MySQL从安装、配置到实际程序测试详解

    By zieckey(zieckey@yahoo.com.cn) All Rights Reserved! 这里假设你的Java开发环境已经搭建好了. 一.准备工作: 下载MySQL:mysql-5. ...

最新文章

  1. java 压缩汉字字节_java中计算汉字的字节数
  2. 消息(6)——WCF,构建简单的WCF服务,MTOM编码
  3. 照片尺寸大小对照表_贴片led灯珠型号对照表在手,贴片灯珠选型从此不愁!
  4. 物联网卡为什么会这么火,主要有哪些优势?
  5. 手写字体识别实验-Python课程设计
  6. 关于条形码,你知道多少?
  7. 安卓 Day 23 :利用视图翻页器实现引导项
  8. 实时获取股票数据,免费!——Python爬虫Sina Stock实战
  9. 敏捷开发中,团队成员认领的是任务还是用户故事?
  10. Spring-AOP术语
  11. 评估指标——均方误差(MSE)、平均绝对误差(MAE)
  12. DES加密算法的C++实现
  13. 计算机网络——网络硬件和网络设备及其工作原理
  14. filtering and hybrid images
  15. 【模电知识总结】三极管
  16. 华为人才在线加入HCIA班级
  17. VulnStack-ATTCK-3(红日靶场三)
  18. STM32的光敏检测自动智能窗帘控制系统proteus设计
  19. 【历史上的今天】8月19日:大型计算机先驱和小型机之父诞生;中国雅虎邮箱成历史
  20. 为什么要使用内存池技术?

热门文章

  1. 利用HttpRequester进行接口测试
  2. mdb导入SqlServer
  3. 绘图中的drawRect
  4. 这几天在搞UNITY3D,感觉回到了AS2
  5. SOA:A note on RPC
  6. PostgreSQL的 array_to_string 功能
  7. 将spfile从ASM里迁移到文件系统
  8. 在windows中对torch1.7.1版本环境配置
  9. automybatis mysql_mybatis-plus:使用Mybatis-AutoGenerator代码生成器(1)
  10. 【理论】红黑树的实现原理