安装和hadoop相匹配的java版本
Hadoop Java Versions - Hadoop - Apache Software Foundation
https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions
下载hadoop安装包
Apache DownloadsHome page of The Apache Software Foundation
https://www.apache.org/dyn/closer.cgi/hadoop/common/解压,并修改配置文件 etc/hadoop/hadoop-env.sh
# set to the root of your Java installation
export JAVA_HOME=/usr/java/latest
执行命令查看hadoop命令的帮助文档
$ bin/hadoop
默认情况下,Hadoop 配置为以非分布式模式运行,作为单个 Java 进程。以下示例复制解压缩的 conf 目录用作输入,然后查找并显示给定正则表达式的每个匹配项。 输出到给定的输出目录。
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.3.jar grep input output 'dfs[a-z.]+'
$ cat output/*
例子
下面的例子展示了在本地运行一个MapReduce的job
1,格式化文件系统
$ bin/hdfs namenode -format
2,启动NameNode和DataNode
$ sbin/start-dfs.sh
可以在目录 $HADOOP_HOME/logs下面查看相应的log日志
如果出现错误:
ERROR: Attempting to operate on hdfs namenode as root
则需要向配置文件$HADOOP_HOME/etc/hadoop/hadoop-env.sh中添加以下内容:
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
再重新启动,运行JPS查看,可以看到NameNode和DataNode起来了。
3,可以在web页面查看NameNode,默认的网址为:
http://localhost:9870/
4,创建HDFS目录执行MapReduce的job
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>
5,向分布式文件系统复制输入文件
$ bin/hdfs dfs -mkdir input
$ bin/hdfs dfs -put etc/hadoop/*.xml input
6,运行提供的例子
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.3.jar grep input output 'dfs[a-z.]+'
7,检查输出文件:将输出文件从分布式文件系统复制到本地文件系统并检查它们:
$ bin/hdfs dfs -get output output
$ cat output/*
或者直接在分布式文件系统查看输出文件
bin/hdfs dfs -cat output/*
8,停止NameNode和DataNode
$ sbin/stop-dfs.sh
单节点伪分布式环境配置:
修改配置文件:
etc/hadoop/core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
etc/hadoop/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
在单节点上运行YARN
1,配置参数
修改etc/hadoop/mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
修改etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
2,启动ResourceManager和NodeManager
$ sbin/start-yarn.sh
3,ResourceManager的web页面
http://localhost:8088/
4,运行MarReduce 的job
5,停止ResourceManager和NodeManager
$ sbin/stop-yarn.sh