准备:
安装jdk和ssh。
1. 官网下载hadoop1.2.1
http://hadoop.apache.org/releases.html
2. 解压到/home/hadoop/目录下
3. 伪分布式hadoop配置
可以把伪分布式的hadoop看做只有一个节点的集群,在这个集群中,这个节点既是Master,也是Slave;既是NameNode,也是DataNode;既是JobTracker,也是TaskTracker。伪分布式的配置过程很简单,只需要修改几个文件。进入conf文件夹,修改配置文件。
- 指定JDK的安装位置:修改hadoop-env.sh如下
#添加jdk路径
export JAVA_HOME=/usr/lib/jvm7/jdk1.7.0_79
- 修改core-site.xml
<!-- 配置HDFS的地址及端口号--> <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
- 修改hdfs-site.xml
该文件用来配置hdfs,配置的默认备份方式是3,单机版的hadoop中需要改为1.
<!-- 设置HDFS备份方式 --> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
- 修改mapred-site.xml
该文件是MapReduce的配置文件,配置JobTracker的地址和端口。
<configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
4. 在启动hadoop之前,需要格式化hadoop的文件系统hdfs。
hadoop namenode -format
5. 启动所有进程
bin/start-all.sh
6. 打开浏览器输入网址
http://localhost:50030(MapReduce的web页面)
http://localhost:50070(HDFS的web页面)
WordCount:
1. 在file文件夹下创建两个文件
echo "hello world" > file0.txt
echo "hello hadoop" > file1.txt
2. 将新创建的两个文件上传到HDFS
hadoop dfs -put file /input
3. 编译WordCount.java
javac -classpath ~/hadoop/hadoop-1.2.1/hadoop-core-1.2.1.jar:~/hadoop/hadoop-1.2.1/lib/commons-cli-1.2.jar ~/hadoop/WordCount/WordCount.java -d ~/hadoop/WordCountJar
4. 打包class文件
jar -cvf wordcount.jar ./*.class
5. 在hadoop中运行wordcount.jar文件
hadoop jar wordcount.jar WordCount input output
6. HDFS常用命令(待编辑)
hadoop dfs -mkdir /file 在HDFS上新建文件夹
hadoop dfs -put input1.txt /input 把本地文件input1.txt传到HDFS的/tmp/input目录下
hadoop dfs -get input1.txt /tmp/input/input1.txt 把HDFS文件拉到本地
hadoop dfs -ls /tmp/output 列出HDFS的某目录
hadoop dfs -cat /tmp/ouput/output1.txt 查看HDFS上的文件
hadoop dfs -rmr /home/less/hadoop/tmp/output 删除HDFS上的目录
hadoop dfsadmin -report 查看HDFS状态,比如有哪些datanode,每个datanode的情况
hadoop dfsadmin -safemode leave 离开安全模式
hadoop dfsadmin -safemode enter 进入安全模式