hadoop1.2.1伪分布模式配置

1、修改core-site.xml,配置hdfs

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

注:

a) fs.default.name对应的value是hdfs的ip和端口,只要端口不被占用即可
b) hadoop.tmp.dir对应的value是hadoop临时文件的保存目录(根据需要修改成实际目录)

2、修改hdfs-site.xml,配置数据备份

 <configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

注:这是配置写数据时,数据同时写几份(出于学习目的,这里只写一个副本,实际应用中,至少配置成3)

3、修改mapred-site.xml

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

注:这是配置map/reduce服务器ip和端口

4、配置ssh

注:因为伪分布模式下,即使所有节点都在一台机器上,hadoop也需要通过ssh登录,这一步的目的是配置本机无密码ssh登录

命令行:ssh-keygen -t rsa

然后一路回车

cd ~/.ssh

cat id_rsa.pub>>authorized.keys

测试:ssh localhost

首次运行会提示是否继续,输入yes,回车,如果不要求输入密码,就表示成功了

5、首次运行,格式化hdfs

<HADOOP_HOME>/bin/hadoop namenode -format

6、启动单节点集群

<HADOOP_HOME>/bin/hadoop start-all.sh

如果没问题的话,命令行输入jps,可以看到5个进程:

jimmy@ubuntu:~/Desktop/soft/hadoop-1.2.1$ jps
13299 TaskTracker
13071 SecondaryNameNode
13363 Jps
13160 JobTracker
12786 NameNode
12926 DataNode

停止的话,类似的 bin/hadoop stop-all.sh

7、查看状态

http://localhost:50030/ 这是Hadoop管理界面

http://localhost:50060/ 这是Hadoop Task Tracker 状态

http://localhost:50070/ 这是Hadoop DFS 状态

8、伪分布模式下运行Hadoop自带的wordcount

注:以下命令的当前目录都是hadoop根目录

a) 先随便准备一个txt文件,比如hadoop下自带的README.txt

b) hdfs中创建一个输入目录input

bin/hadoop fs -mkdir input (注:hdfs中的命令跟linux终端中的文件操作命令基本类似,但是前面要加fs)

c) 将README.txt放到hdfs的input目录中

bin/hadoop fs -put ./README.txt input

这时,如果在浏览器里用http://localhost:50070/ 浏览hdfs文件列表的话,可以看到刚才放进去的文件

hadoop1.2.1伪分布模式配置

d)执行wordcount示例程序

bin/hadoop jar hadoop-examples-1.2.1.jar wordcount /user/jimmy/input/README.txt /user/jimmy/output (注:这里的jimmy为hadoop运行时的用户名,根据需要换成自己的实际用户名)

e)从hdfs中取回文件到本地

bin/hadoop fs -get /user/jimmy/output ~/Desktop/ (这样,就把运算结果output中的文件,取到本地桌面了)

上一篇:Android 关于“NetworkOnMainThreadException”


下一篇:AX7: Install a deployable package