- 安装vmware12,centos6.5(还是6.5好,稳定流畅,7界面好看但是虚拟机里面卡死了),删除自带openjdk下载安装jdk1.7
- 配置环境变量 vim /etc/profile->最后加上下面这段
export JAVA_HOME=/usr/java/jdk1.7.0_79
exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
执行source/etc/profile使之生效
- 安装hadoop,下载下载 hadoop-2.x.y.tar.gz这样类型的,64位电脑记得下载64位的
- 执行tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local 释放hadoop到本地,修改一下名字mv hadoop-2.6.0 hadoop
- 配置环境变量,/etc/profile下面加上这两行
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
- 修改/usr/local/hadoop/etc/hadoop/下的 core-site.xml和hdfs-site.xml
core-site.xml:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
- 执行./bin/hdfs namenode -format进行 NameNode的格式化
成功的话,会看到“successfully formatted”和“Exitting with status 0”的提示,若为“Exitting with status 1”则是出错。
- 接着开启 NaneNode 和 Datanode 守护进程:执行sbin/start-dfs.sh 开启守护进程
- 2.x版本之后上传命令不一样了:hadoop fs -mkdir input改为hdfs dfs -mkdir -p
- input目录创建完成之后,开始上传本地目录:
上传失败显示:mkdir: Cannot create directory /input. Name node is insafe mode.
通过执行bin/hadoop dfsadmin -safemode leave 来关闭safe mode
- 上传文件报错:WARN hdfs.DFSClient: DataStreamer Exception,原因是防火墙未关闭,执行service iptables stop关闭防火墙
- 若要停止hadoop进程,./sbin/stop_all.sh(注意:要先启动namenode然后再启动其他,否则也会报上面的错)
- hadoop fs-mkdir /input创建input文件夹
- hadoop fs -put 文件 /input(如:hadoop fs -put 1 /input是将当前目录的文件1上传至hdfs中的/input目录下)
- hadoop jar hadoop-mapreduce-examples-2.5.1.jar wordcount /input/1 /input/output/1 运行wordcount程序
- hadoop fs -cat /input/output/1查看生成的文件