1、安装jdk
2、解压Hadoop
3、设置hadoop的JAVA_HOME环境变量
在usr/java/hadoop-xxx/conf/目录下找到hadoop-env.sh文件,打开后,编辑
如果该文件属于只读性质,那么需要更改文件的读写权限:
更改好权限以后将文件打开,并添加JAVA_HOME路径为/usr/java/jdk-xxx
在文件中添加如下环境变量
exportJAVA_HOME="/usr/java/jdk1.6.0_29"
保存,退出gedit。
现在改好hadoop-env.sh配置文件后,需要把它之前的权限给恢复。命令为:
使用ll指令查看文件当前的权限:
可以看到文件的访问权限已经恢复到之前的状态了。
4、Hadoop(单机模式)
在hadoop解压文件下,有一个“hadoop-mapred-examples-0.22.0.jar”包,使用以下指令可以查看该jar的内容。
执行结果截取一部分显示:
可以看到里面有一个
org/apache/hadoop/examples/WordCount.class
输入以下指令,新建一个input文件夹,在文件夹中新建两个文件,分别输入“hello word”和“hello hadoop”,然后使用示例的wordcount程序统计各个单词出现的概率。指令如下:
运行结束后,可以看到hadoop文件夹下多了一个output文件夹,打开文件夹可见两个文件
打开其中的part-r-00000文件,可见单词的统计结果
5、Hadoop伪分布模式(Pseudo-Distributed Mode)
5.1设置参数
进行伪分布模式的测试前,要core-site.xml、hdfs-site.xml和mapred-site.xml三个文件进行配置,分别为:
core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
5.2 设置无密码登录SSH
Hadoop的分布式计算需要各个计算节点(server)的协作,人工输入密码这一方式显然是行不通的,因此节点与节点间进行通信时,需要用到SSH自动登录机制。
输入指令来产生一对密钥:
提示:
现在/root/.ssh/目录下有一个私钥id_dsa和一个公钥id_dsa.pub文件。将公钥导入到本机的授权密钥文件中authorized_keys 。
进入.ssh目录
导入公钥
5.3 运行Hadoop
具体的指令是:
[root@localhosthadoop-1.0.4]# bin/hadoop namenode -format
NameNode格式化完成后,就可以运行hadoop了。
输出如下:
在浏览器中输入地址http://localhost:50030/可观察jobtracker的情况。如下图:
在浏览器中输入地址http://localhost:50070可以查看当前hadoop的文件系统的的状态
5.4 实例测试
5.4.1 数据准备
先将之前input文件夹拷贝到HDFS目录中做准备,重命名为inputTest。
5.4.2 运行测试程序
运行程序的指令跟之前是一样的,只要替换掉输入/输出的目录即可。
运行过程中查看tasktrace可以看到job和task的状态:
运行结束后,可以看到文件系统中多了一个目录outputTest
使用指令查看运行结果:
5.5 停止Hadoop
可以看出,在hadoop运行过程中,有5个守护进程。