原文链接http://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-common/SingleCluster.html
- Hadoop安装包
你应该下载hadoop的发行版安装包
hadoop下载 在这里选择一个镜像站点然后选择你要下载的版本,我们这里要选择hadoop2.2.0
当然你也可以下载hadoop-2.2.0-src.tar.gz自行编译。需要注意的是64位版本的Linux系统必须要自行编译
详细的请看http://blog.youkuaiyun.com/tianfei_1984/article/details/20030383
这里需要注意的是:protobuf-2.5.0安装的时候会有一些问题。
笔者是解压到 /usr/local/lib下然后.configrue的参数--prefix=/usr 才成功,开始笔者解压到 /opt/目录下,配置失败
- 设置环境变量
再此之前你需要将JDK安装配置好,这里就不再赘述了。
将hadoop的安装包解压,配置
$HADOOP_COMMON_HOME
$HADOOP_HDFS_HOME
$HADOOP_MAPRED_HOME
$HADOOP_YARN_HOME
$HADOOP_MAPRED_HOME
我们打开 ~/.bashrc
在文件底部先加入
export HADOOP_HOME=/%你的hadoop安装目录%/
export $HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
然后
export HADOOP_COMMON_HOME=$HADOOP_HOME
一次类推,以上所有变量都设置好
最后我们把hadoop的执行目录加入到$PATH里
export PATH=$PATH:$HADOOP_HOME/bin
重启一下终端
NOTE:这里官方有句话说 接下来的步骤需要确保你的HDFS已经在运行
而却并没有配置HDFS
- 设置配置
启动ResourceManager 和NodeManager (相当于原来的Jobtracker和Tasktarcker,当然其中有点复杂,我也不是太明白)需要你更新你的配置,确保你的$HADOOP_CONF_DIR已经配置,并且配置了HDFS和core-site.xml //这里就是令人匪夷所思了,官方文档并未给出这两步的设置
于是我参考了一下别人的配置 出处http://blog.youkuaiyun.com/zythy/article/details/17021249
编辑core-site.xml,添加以下配置:
在文件<configuration>中间加入
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>这里是配置HDFS的属性,HDFS的端口</description>
</property>
编辑hdfs-site.xml,添加以下配置:
<property>
<name>dfs.replication</name>
<value>1</value>
<description>配置备份的数量:这是hadoop的经典机制</description>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/user/hadoop-2.2.0/yarn/yarn_data/hdfs/namenode</value>
<description>配置HDFS namenode的物理路径</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/user/hadoop-2.2.0/yarn/yarn_data/hdfs/datanode</value>
<description>配置HDFS datanode的物理路径</description>
</property>
接下来继续原文
设置mapred-site.xml 如果不存在复制mapred-site.xml.template文件为mapred-site.xml
添加
<property>
<name>mapreduce.cluster.temp.dir</name>
<value></value>
<description>分布式的临时文件物理路径</description>
<final>true</final>
</property>
<property>
<name>mapreduce.cluster.local.dir</name>
<value></value>
<description>分布式的文件物理路径</description>
<final>true</final>
</property>
- 设置yarn-site.xml
<property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>host:port</value> <description>host是ResourceManager的主机地址 port是NodeManagers连接ResourceManagers的端口</description> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>host:port</value> <description>host是ResourceManager的主机地址 port是ApplicationMaster连接ResourceManagers的端口</description> </property> <property> <name>yarn.resourcemanager.scheduler.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value> <description>如果你不想用默认scheduler</description> </property> <property> <name>yarn.resourcemanager.address</name> <value>host:port</value> <description>host是ResourceManager的主机地址,port是clients 与Resource Manager沟通的端口</description> </property> <property> <name>yarn.nodemanager.local-dirs</name> <value></value> <description>nodemanager的本机物理路径</description> </property> <property> <name>yarn.nodemanager.address</name> <value>0.0.0.0:port</value> <description>nodemanager绑定在这个端口</description> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>10240</value> <description>NodeManager内存的量</description> </property> <property> <name>yarn.nodemanager.remote-app-log-dir</name> <value>/app-logs</value> <description>hdfs的应用记录文件的本地物理目录</description> </property> <property> <name>yarn.nodemanager.log-dirs</name> <value></value> <description>Nodemanagers记录文件的本地物理目录</description> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> <description>MapReduce运行需要设置shuffle服务</description> </property>
- 设置capacity-scheduler.xml
计算能力调度器
这个不设置单节点也能配置成功,如果有需要参考这里 http://wohenws.lofter.com/post/9479_12547<property> <name>yarn.scheduler.capacity.root.queues</name> <value>unfunded,default</value> </property> <property> <name>yarn.scheduler.capacity.root.capacity</name> <value>100</value> </property> <property> <name>yarn.scheduler.capacity.root.unfunded.capacity</name> <value>50</value> </property> <property> <name>yarn.scheduler.capacity.root.default.capacity</name> <value>50</value> </property>
运行守护进程
设置$YARN_CONF_DIR=$HADOOP_CONF_DIR
编辑hodoop-env.sh
在其中的export JAVA_HOME =/%你的JAVA安装路径%/
我们先初始化HDFS文件系统。。。这点官方文档也没提。。。
hadoop namenode -format
cd 到hadoop的安装目录
sbin/hadoop-daemon.sh start namenode //启动namenode sbin/hadoop-daemon.sh start datanode //启动datanode sbin/hadoop-daemon.sh start secondarynamenode//启动secondarynamenode sbin/yarn-daemon.sh start resourcemanager//启动resourcemanager sbin/yarn-daemon.sh start nodemanager//启动nodemanager sbin/mr-jobhistory-daemon.sh start historyserver //启动historyserver
运行jps察看进程是否启动
进程启动成功。。。~/hadoop$ jps 4842 ResourceManager 4901 NodeManager 5064 Jps 4644 NameNode 4968 JobHistoryServer 4699 DataNode 4755 SecondaryNameNode
你可以运行一下指令测试hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar randomwriter out
结果输出察看
如果有out目录,就表明成功了!hadoop -fs -ls /user/%你的当前用户名%/
enjoy it!