hadoop分为单击模式,伪分布式和分布式,本文安装的是分布式。
首先下载hadoop2.6.0.tar.gz
然后登陆hadoop账户解压至主文件夹下
tar xvzf hadoop-2.6.0
然后将hadoop-2.6.0移动到主文件夹下,找到etc/hadoop下的hadoop-env.sh文件,打开将里面的jdk配置成你自己实际的jdk路径。
然后编辑core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://192.168.1.55:9000</value> </property> </configuration>
hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/data</value> </property> </configuration>
mapred-site.xml
<configuration> <property> <name>mapred.job.tracker</name> <value>hdfs://192.168.1.55:9001</value> </property> </configuration>
masters
h1
slaves
h2 h3
注意:1、hadoop2.6没有mapred-site.xml,需要自己考一个,
2、hadoop2.6没有masters,需要自己拷一个
3、关闭防火墙或者添加9000、9001、50010端口为信任
然后将配置好的hadoop拷贝到各个节点上
scp -r hadoop2.6.0 h2:/home/hadoop
拷贝完成后,格式化namenode
bin/hadoop namenode -format
最后启动hadoop
sbin/start-all.sh
访问http://localhost:50070
http://localhost:8080
若成功访问则说明namenode部署成功,
还有一种办法就是找到jdk的安装目录输入一下命令
bin/jps
看看namenode还有secondarynamenode以及resourcemanager是否成功启动,slave节点则是datanode
奇怪的是我这里并没有job或者track,看了下start-all.sh里并没有启动,不过一直没有什么问题,不知道是不是2.6版本没有这些,有知道的顺便说下吧
===============================================
这里是补上的
================================================
用jps只是看到服务是否启动,下面用一个简单的测试来演示是否成功。再声明一下,我用的是hadoop-2.6.0
首先切换到主目录,并且创建出一个input文件夹,文件夹下面有两个文本文件
cd ~ makdir input echo "hello word">text1.txt echo "hello hadoop>test2.text
然后切换到hadoop目录
cd ~ cd hadoop-2.6.0
先测试hdfs,将刚刚创建的文件上传到集群里
bin/hadoop dfs ../input /in
看一下是否成功
bin/hadoop dfs -ls /in/*
应该会输出一个文件列表
然后测试mapreduce,用hadoop自带的wordcount,hadoop2.6和其他不一样,要以如下的命令运行wordcount
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /in /out
“/”代表的是hdfs的根目录,不是以前的“./”
运行命令后再看一下根目录下的文件
bin/hadoop dfs -ls /
发现里面不仅有in目录,还多了out和temp目录,打开out目录
bin/hadoop dfs -cat /out/*
下面有两个文件,一个是_SUCCESS一个是part-r-00000,打开文件,我这里两个都打开了,不过效果是差不多的
bin/hadoop dfs -cat /out/*
下面是运行结果
[hadoop@h1 hadoop-2.6.0]$ bin/hadoop dfs -cat /out/* DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. hadoop 1 hello 2 word 1