主机名 |
网卡名称 |
IP地址 |
子网掩码 |
master |
eth0 |
192.168.1.248 |
255.255.255.0 |
slaver1 |
eth0 |
192.168.1.248 |
255.255.255.0 |
slaver2 |
eth0 |
192.168.1.248 |
255.255.255.0 |
以root身份在master、slaver1和slaver2上分别运行如下命令:
# groupadd hadoop
# useradd hadoop -g hadoop
# passwd hadoop
New Password:
Re-enter new Password:
passwd: password successfully changed for oracle
将下载的Java二进制安装包上传到/usr/local目录
# rpm -ihv jdk-7u79-linux-x64.rpm
以root身份在master上编辑/home/hadoop/.bash_profile文件中加入以下环境变量
#source /home/hadoop/.bash_profile --使环境变量生效
或者:
[hadoop@master ~]$ . ~/.bash_profile
文件名 |
格式 |
描述 |
hadoop-env.sh |
Bash脚本 |
在运行hadoop的脚本中使用的环境变量 |
Core-site.xml |
Hadoop配置xml |
Hadoop核心的配置,例如HDFS和MapReduce中很普遍的I/O设置 |
Hdfs-site.xml |
Hadoop配置xml |
HDFS后台程序设置的配置:名称节点。第二名称节点和数据节点 |
Mapred-site.xml |
Hadoop配置xml |
MapReduce后台程序设置的配置:jobtracker和tasktracker |
yarn-site.xml |
Hadoop配置xml |
|
Masters |
纯文本 |
记录运行第二名称节点的机器列表 |
Slaves |
纯文本 |
记录运行数据节点和tasktracker的机器列表 |
Hadoop-met Rics.properties |
Java属性 |
控制hadoop怎么发布metrics的属性 |
Log4j.properties |
Java属性 |
系统日志文件属性、名称节点审计日记和tasktracker子进程的日志的属性 |
hadoop-env.sh路径/usr/local/hadoop-2.6.0/etc/hadoop,修改文件中环境变量JAVA_HOME的内容如下:
export JAVA_HOME=/usr/java/jdk1.7.0_79
所有机器做同样操作。
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/hadooptmp</value>
</property>
</configuration>
这一步只需要在master节点上执行。
这个文件存储备master节点的IP或机器名,建议使用机器名,每行一个机器名。主master会将元数据等备份到备master节点,文件位置可能随着版本不同有所变化,此次我们使用的版本在/sbin目录下,如果没有此文件需新建。
这里,我们为masters文件增加如下一行即可:
master
这一步只需要在两台master节点上执行,以便master以ssh方式去启动所有的slave节点。
这个文件存储slave节点的IP或机器名,建议使用机器名,每行一个机器名。这里我们增加如下两行:
slaver1
slaver2
文件中常用配置参数:
dfs.name.dir |
用逗号隔开的目录名 |
${hadoop.tmp.dir} /dfs/name |
存储名称节点永久元数据的目录列表。名称节点在列表中的每一个目录下存储着元数据的副本 |
dfs.date.dir |
用逗号隔开的目录名 |
${hadoop.tmp.dir} /dfs/name |
数据节点存储块的目录列表 |
fs.checkpoint.dir |
用逗号隔开的目录名 |
${hadoop.tmp.dir} /dfs/namesecondary |
第二名称节点用来存储检查点的目录列表。它在列表的每一个目录下存储着检查点的副本 |
具体配置如下:
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
文件中常用配置参数:
Mapred.job.tracker |
主机名和端口 |
local |
Jobtracker的RPC服务器运行的主机名和端口。如果设置为默认值local。则当运行一道作业时,jobtracker也在同一进程内(此时不必启动mapreduce守护进程) |
Mapred.local.dir |
用逗号分隔的目录名称 |
${hadoop.tmp.dir} /mapred/local |
Mapreduce存储作业中间数据的目录列表。当作业结束时数据会被清空 |
Mapred.system.dir |
URL |
${hadoop.tmp.dir} /mapred/system |
当一道作业运行时,与存储共享文件的fs.default.name相关的目录 |
Mapred.tasktracker Map.tasks.maximum |
Int |
2 |
任一时刻tasktracker上运行map任务的数量 |
Mapred.tasktracker reduce.tasks.maximum |
int |
2 |
任一时刻tasktracker上运行reduce任务的数量 |
Mapred.child.java.opts |
string |
-xmx200m |
用来启动tasktracker子进程,运行map和reduce任务的jvm选项。次属性可以在每道作业上设置,这对为debug设置JVM属性比较有用 |
具体配置如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
文件中常用配置参数:
Yarn.resourcemanager.address |
|
新框架中 NodeManager 与 RM 通信的接口地址 |
Yarn.resourcemanager.scheduler.address |
|
NodeManger 需要知道 RM 主机的 scheduler 调度服务接口地址 |
Yarn.resourcemanager.webapp.address |
|
各个 task 的资源调度及运行状况通过通过该 web 界面访问 |
Yarn.resourcemanager.resource-tracker.address |
|
NodeManager 需要向 RM 报告任务运行状态供 Resouce 跟踪,因此 NodeManager 节点主机需要知道 RM 主机的 tracker 接口地址 |
具体配置如下:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.1.248:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.1.248:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.1.248:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.1.248:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.1.248:8088</value>
</property>
在Master节点上执行如下命令:
[hadoop@master bin]$ hadoop namenode -format
[hadoop@master ~]$ cd /usr/local/hadoop-2.6.0/sbin
[hadoop@master sbin]$ ./start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
…
启动完成后在Master节点上执行:
[hadoop@master sbin]$ jps
#Master服务器上有以下进程
3051 ResourceManager
3117 Jps
2813 NameNode
其余两个Slave执行如下命令,节点进程有:
[hadoop@slaver1 sbin]$ jps
24448 NodeManager
24336 DataNode
24576 Jps
# groupadd hadoop
# useradd hadoop -g hadoop
# passwd hadoop
New Password:
Re-enter new Password:
passwd: password successfully changed for oracle