1、 软件下载
从官网http://apache.fayea.com/hadoop/common/ 下载hadoop
从Oracle官网下载JDK
http://www.oracle.com/technetwork/java/javase/downloads/index.html(1.8.25)
hadoop-example的jar用来简单测试
http://www.java2s.com/Code/Jar/h/Downloadhadoopexamples111jar.htm
2、 硬件准备
准备3~4台机器
本人这次是准备了3台虚拟机。
1台master,2个slave
3、 操作步骤
a) 安装64位操作系统(如REHL 6.5)
b) 设置主机名字(便于统筹规划)
192.168.1.200 master
192.168.1.201 slave1
192.168.1.202 slave2
将IP解析复制到每个机器的/etc/hosts中。
c) 设置ssh无密码访问(实现主节点到所有从节点即可)
a) 各个节点运行ssh-keygen -t rsa ,然后将~/.ssh/id_rsa.pub 文件中的内容都加入到master节点中的~/.ssh/authorized_keys 文件中。
d) 安装JDK
解压JDK包如下:
tar zxvfjdk-8u25-linux-x64.gz
编辑配置文件
vi/etc/profile
加入如下:
JAVA_HOME=/opt/jdk
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$PATH
exportJAVA_HOME CLASSPATH PATH
运行如下进行确认JDK安装
java-version
e) 安装Hadoop
a) 解压
tar -zxvfhadoop-2.6.0.tar.gz
b) 编辑配置文件
vi/etc/profile
HADOOP_HOME=/opt/hadoop
HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
PATH=$HADOOP_HOME/bin:$PATH
exportHADOOP_HOME HADOOP_CONF_DIR PATH
c) 配置文件生效
source/etc/profile
d) 修改core-site.xml <!--HDFS和MapReduce常用的IO设置-->
/opt/hadoop/etc/hadoop下的core-site.xml
如下:
<configuration>
<property>
<!--系统默认分布式文件 URI-->
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>NameNode URI.</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
<description>Size of read/write buffer used inSequenceFiles.</description>
</property>
<property>
<!--系统默认分布式文件 URI-->
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
</configuration>
e) 编辑hdfs-site.xml<!--hadoop守护进程设计包括:namenode辅助namenode、datanode-->
如下:
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
<description>The secondary namenode http server address andport.</description>
</property>
<property>
<!--DFS name node 存放永久性元数据的,在这个目录下都存放元数据 name table 的目录-->
<name>dfs.namenode.name.dir</name>
<value>file:///data/dfs/name</value>
<description>Path on the local filesystem where the NameNodestores the namespace and transactions logs persistently.</description>
</property>
<property>
<!--DFS data node 存放数据 block 的目录 -->
<name>dfs.datanode.data.dir</name>
<value>file:///data/dfs/data</value>
<description>Comma separated list of paths on the local filesystemof a DataNode where it should store its blocks.</description>
</property>
<property>
<!--辅助namenode存放检查点的目录列表。在所列的每个目录中均存放一份家差点文件副本-->
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///data/dfs/namesecondary</value>
<description>Determines where on the local filesystem the DFSsecondary name node should store the temporary images to merge. If this is acomma-delimited list of directories then the image is replicated in all of thedirectories for redundancy.</description>
</property>
</configuration>
f) 编辑slaves文件<!--辅助datanode\tasktracker机器列表-->
如下:
master
slave1
slave2
g) 启动hdfs
先格式化namenode
hdfs namenode –format
启动dfs
设置/opt/hadoop/etc/hadoop/hadoop-env.sh文件中的JAVA变量。
start-dfs.sh
查看进程
jps
主节点:[root@master sbin]# jps
2291 DataNode
2452SecondaryNameNode
2170 NameNode
2573 Jps
从节点:
[root@slave1.ssh]# jps
1841 DataNode
1917 Jps
h) 编辑yarn-site.xml<!--MapReduce守护进程配置包括:jobtrackerh和tasktracker每行一个-->
如下:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
<description>The hostname of theRM.</description>
</property>
<property>
<!--节点管理器运行的附加服务列表。每项服务由yarn.nodemanager.aux-services.service-name.class指定类实现-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>Shuffle service that needs to be set for Map Reduceapplications.</description>
</property>
</configuration>
i) 编辑mapred-site.xml
如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>Theruntime framework for executing MapReduce jobs. Can be one of local, classic oryarn.</description>
</property>
<property>
<!--作业历史服务器的RPC服务器地址和端口。客户端查询历史作业信息-->
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
<description>MapReduce JobHistoryServer IPC host:port</description>
</property>
<property>
<!--作业历史服务器的HTTP服务器地址和端口。在mapred-site.xml中设置-->
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
<description>MapReduce JobHistoryServer Web UI host:port</description>
</property>
</configuration>
j) 启动yarn资源管理
执行如下:
start-yarn.sh
执行jps进行查看。
完毕。
Jps查看
主节点:
[root@master sbin]# jps
2720 NodeManager
2291 DataNode
2452 SecondaryNameNode
2953 Jps
2170 NameNode
2621 ResourceManager
从节点:
[root@slave1 .ssh]# jps
1841 DataNode
2082 Jps
1958 NodeManager
4、 简单测试
如:在master运行如下命令:
#hadoop jar hadoop-examples-1.2.1.jar pi 1 10
24260 SecondaryNameNode
24912 Jps
23991 NameNode 协同工作来运行和监控任务
24526 NodeManager 就是负责 Container 状态的维护,并向 RM 保持心跳
24436 ResourceManager: 是一个中心的服务,它做的事情是调度、启动每一个 Job 所属的 ApplicationMaster、另外监控 ApplicationMaster 的存在情况。它就是一个纯粹的调度器,和每一台机器的节点管理服务器能够管理用户在那台机器上的进程并能对计算进行组织
24084 DataNode
ApplicationMaster 负责一个 Job 生命周期内的所有工作,类似老的框架中 JobTracker。但注意每一个 Job(不是每一种)都有一个 ApplicationMaster,它可以运行在 ResourceManager 以外的机器上
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2015-01/111258.htm