1 环境 hadoop-2.5.2 ubuntu 64位服务器 jdk1.7.0_72(tar文件,直接解压到usr/local ,配置环境变量)
2 所需要的软件,不同linux安装软件方式可能不一样 :
$ sudo apt-get install ssh
$ sudo apt-get install rsync
3 下载hadoop:http://www.apache.org/dyn/closer.cgi/hadoop/common/
4 解压hadoop 到要安装的目录
5 编辑hadoop所需要环境 etc/hadoop/hadoop-env.sh
其中jdk环境设置成自己安装的绝对路径,不能用环境变量的代替
6 执行 bin/hadoop ,会打印一些hadoop的一些执行参数信息,安装完成
hadoop三种模式:1 本地模式 2 伪分布模式 3 分布模式
一、hadoop模式就是本地模式,作为java的一个进程
在/web/hadoop 这个目录中执行
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'
$ cat output/*
二、伪分布模式
hadoop每个进程运行在单独的java线程中
1)配置 etc/hadoop/core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/web/hadoop-2.5.2/tmp/hadoop-${user.name}</value> <description>临时文件的目录,根据情况修改.</description> </property> </configuration>
2)配置etc/hadoop/hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
3)检查ssh是否可以无密码登录 到本机
$ ssh localhost
如果需要输入密码则需要设置无密码登录
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ export HADOOP\_PREFIX=/usr/local/hadoop
4)格式化文件系统,系统会清理临时文件目录,并重新生成一些目录
bin/hdfs namenode -format
或 bin/hadoop namenode -format (配置环境变量以后可以直接用hadoop来执行命令不使用目录)
格式化过程会创建hadoop.tmp.dir 指定的数据文件目录,并且会产生管理datanode元数据的文件
5) 开启名称节点线程和数据节点进程
$ sbin/start-dfs.sh
启动过程看log是否有错误: $HADOOP_HOME/logs
6) 将地址换成hadoop的ip地址然后在浏览器中访问下面地址,可以浏览文件系统的一些信息:
集群监控: http://localhost:50070/
mapreduce监控: http://cloud1:8088/
7) 创建mapreduce所需要的目录
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/root(用户名)
拷贝目录文件到文件系统中
$ bin/hdfs dfs -put etc/hadoop input
运行mapreduce例子,注意修改jar版本
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'
检查输出文件
$ bin/hdfs dfs -cat output/*
8)停止dfs进程 $ sbin/stop-dfs.sh
三、伪分布模式下在YARN中运行MapReduce job
1)etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
</configuration>
2)etc/hadoop/yarn-site.xml ,resourceManager和NodeManager的配置
Map程序产生的数据以shuffle形式传给reduce
resourceManager访问地址
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>cloud1</value> </property> </configuration>
3)启动ResourceManager 和NodeManager 线程
$ sbin/start-yarn.sh
4)执行例子程序
hadoop jar hadoop-mapreduce-examples-2.4.1.jar wordcount /wordcount/input /wordcount/output
环境变量设置:
export HADOOP_PREFIX=/web/hadoop-2.5.2 export PATH=$PATH:$HADOOP_PREFIX/bin export PATH=$PATH:$HADOOP_PREFIX/sbin export HADOOP_MAPRED_HOMD=${HADOOP_PREFIX} export HADOOP_COMMON_HOME=${HADOOP_PREFIX} export HADOOP_HDFS_HOME=${HADOOP_PREFIX} export YARN_HOME=${HADOOP_PREFIX} export HADOOP_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop export HDFS_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop export YARN_CONF_DIR=${HADOOP_PREFIX}/etc/hadoop
查看hdfs中所有的目录: bin/hdfs dfs -lsr /
运行dfs和yarn后, 执行jdk下面的jps命令,查看java线程会有以下线程,则运行成功
7313 SecondaryNameNode 7570 NodeManager 7467 ResourceManager 7129 DataNode 7029 NameNode 7675 Jps
来源:
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html#Standalone_Operation