参考:http://doctuts.readthedocs.io/en/latest/hadoop.html#single-node-installation
1、先在虚拟机(VM10)中安装好两台Ubuntu14,用户名必须一样,机器名一台取名master,一台取名slave
2、安装VMtools
http://blog.csdn.net/bryan__/article/details/43083613
3、安装jdk:
http://www.linuxidc.com/Linux/2015-01/112030.htm
4、在两台机器/etc/hosts中添加 ip和对应机器名 输入命令 sudo vi /etc/hosts
5、安装SSH服务,master和slave都要安装
http://blog.csdn.net/bryan__/article/details/43069967
安装好之后互相复制 id_dsa.pub到对方的authorized_keys文件中
输入如下指令把公钥拷贝到slave中
然后在slave中把公钥追加到授权key,输入如下指令
在master中试试能否成功无密码登录slave,输入如下指令,如果提示(yes/no)输入yes
接下来同样把slave的公钥追加到master的授权key中,先把公钥复制过去,公钥在目录 ~/.ssh 下
在master中把slave的公钥追加到master的授权key中
在slave中尝试能否无密码登录master
如果配置完毕存在不能相互访问的问题,可以关闭防火墙
6、安装hadoop
采用的hadoop版本为hadoop-0.21.0.tar.gz,可以在官网下载
把hadoop压缩文件拖到 /home/你的用户名 目录下
使用tar -xvf name.tar.gz 命令解压
把hadoop的安装路径添加到 /etc/profile 中
立即生效使用 source /etc/profile 命令
7、配置hadoop,配置文件在conf目录下
(1)hadoop-env.sh配置
添加语句
# The java implementation to use. Required.
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
(2)masters和slaves配置
把masters中的内容替换为192.168.136.144
把slaves中的内容替换为192.168.136.138
(3)配置core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value> /home/zhouyao/tmp</value> # 注意,不要创建tmp目录
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.136.144:9000</value>
</property>
hdfs-site.xml
<property>
<name>dfs.name.dir</name>
<value>/home/zhouyao/name/</value> #hadoop的name目录路径,不要创建该目录
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/zhouyao/data/</value> #hadoop的data目录路径,不要创建该目录
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>192.168.136.144:9001</value>
</property>
注意不要忘了在slave机器下面也是同样的配置,除了masters和slaves这两个文件不用配置
8、启动所有hadoop守护进程
先进入hadoop-0.21.0/bin,首先格式化文件系统:
$ hadoop namenode –format
启动Hadoop的所有守护进程:
# ./start-all.sh
说明:
在bin/下面有很多启动脚本,可以根据自己的需要来启动。
* start-all.sh 启动所有的Hadoop守护。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守护
* start-dfs.sh 启动Hadoop DFS守护.Namenode和Datanode
* stop-dfs.sh 停止DFS守护
#查看运行进程
[root@master bin]# jps
6813 NameNode
7278 Jps
7164 JobTracker
7047 SecondaryNameNode
出现4个这样的进程,且datanode没有error,同时访问ui正常才算成功。
如果输入jps显示没这个命令,就安装
查看集群状态:
$ hadoop dfsadmin -report
用web查看:
ui:http://master:50070 --web UI for HDFS name node(s)
http://master:50030 --web UI for MapReduce job tracker(s)
http://slaveip:50060 --web UI for task tracker(s)
6.6, 运行实例
运行wordcount.java 程序
在hadoop的源码包里有一个wordcount的例子,可以直接运行,验证安装是否正确。
hadoop-mapred-examples-0.21.0.jar 是wordcount的jar包
wordcount 是类名
cd /home/zhouyao/hadoop-0.21.0
(1)先在本地磁盘建立两个输入文件f_1 和f_2:
$ echo “Hello World Bye World” > f_1
$ echo “Hello Hadoop Goodbye Hadoop” > f_2
(2)在hdfs 中建立一个input 目录:$ hadoop fs –mkdir input
(3)将file01 和file02 拷贝到hdfs 中:
$ hadoop fs –copyFromLocal /home/zhouyao/f_* input
(4)执行wordcount:
$ hadoop jar hadoop-mapred-examples-0.21.0.jar wordcount input output
(5)完成之后,查看结果:
$ hadoop fs -cat output/part-r-00000
------------------- 运行结果--------------
Bye 1
Goodbye 1
Hadoop 2
Hello 2
World 2
------------------------------------------
http://localhost/50030 可以查看运行的job和结果