hadoop2.6.0 集群配置

1、虚拟机准备
虚拟机准备的为VMware 12.0.1 build-3160714
镜像为 rhel-server-6.5-x86_64-dvd.iso
java环境 为1.7
hadoop为2.6.0

2、环境准备
 a、网络配置

主机名

网卡名称

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

b、主机hosts信息
[ hadoop@master hadoop]$ cat /etc/hosts
127.0.0.1   localhost master localhost4 master
::1         localhost master localhost6 master
192.168.1.248 master
192.168.1.247 slaver1
192.168.1.246 slaver2

================= 如何修改主机名?==========================
=================修改/etc/hosts============================
192.168.1.248 master
192.168.1.247 slaver1
192.168.1.246 slaver2


创建hadoop 用户和组
以root身份在master、slaver1和slaver2上分别运行如下命令:

# groupadd hadoop

# useradd hadoop -g hadoop

# passwd hadoop

New Password:
Re-enter new Password:
passwd: password successfully changed for oracle

3.对每个节点对hadoop用户ssh互相信任
tong1节点,tong2节点和tong3节点在hadoop用户下创建私钥
[root@master ~]# su - hadoop
[hadoop@master~]$ ssh-keygen -t rsa       
[hadoop@master~]$ cd ~/.ssh

[hadoop@master .ssh]$ ll
total 16
-rw-------. 1 hadoop hadoop 1675 Jan  6 10:28 id_rsa
-rw-r--r--. 1 hadoop hadoop  394 Jan  6 10:28 id_rsa.pub
-rw-r--r--. 1 hadoop hadoop 1983 Jan  8 11:14 known_hosts
[hadoop@master .ssh]$ scp slaver1:~/.ssh/id_rsa.pub  slaver1--将slaver1节点上的密钥复制到master节点上
id_rsa.pub  100%  394     0.4KB/s   00:00    
[hadoop@master .ssh]$ scp slaver2:~/.ssh/id_rsa.pub  slaver2 --将slaver2节点上的密钥复制到master节点上
id_rsa.pub 100%  39 4     0.4KB/s   00:00    
[hadoop@master .ssh]$ cat slaver1 slaver2 id_rsa.pub >> authorized_keys    --将三个节点的私钥放到authorized_keys文件中
[hadoop@master .ssh]$ scp authorized_keys  slaver1:~/.ssh/      --将authorized_keys文件放入hadoop用户下.ssh目录中
authorized_keys                                                          100%  3 94     0.4KB/s   00:00   
[hadoop@master .ssh]$ scp authorized_keys  slaver2:~/.ssh/
authorized_keys                                                          100%  3 94     0.4KB/s   00:00   
[hadoop@master .ssh]$ ssh master date        --验证三个节点ssh是否互信
Thu Jan  8 13:48:45 CST 2015
[hadoop@master .ssh]$ ssh slaver1 date
Thu Jan  8 13:49:13 CST 2015
[hadoop@master .ssh]$ ssh slaver2 date
Thu Jan  8 22:30:32 CST 2015
[hadoop@master .ssh]$

c、java环境

将下载的Java二进制安装包上传到/usr/local目录

# rpm -ihv jdk-7u79-linux-x64.rpm


配置环境变量:

root身份master上编辑/home/hadoop/.bash_profile文件中加入以下环境变量

export PATH
export JAVA_HOME=/usr/java/jdk1.7.0_79
export JAR_HOME=/usr/java/jdk1.7.0_79/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAR_HOME/lib
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH

#source /home/hadoop/.bash_profile    --使环境变量生效

或者:

[hadoop@master ~]$ .  ~/.bash_profile 


5.安装hadoop-2.6.0软件

[root@master ~]$ tar xvf hadoop-2.6.0.tar.gz
[root@master ~]$ mv hadoop-2.6.0 /usr/local/
[root@master ~]$ cd /usr/local/
[root@master local]$ chown -R hadoop:hadoop hadoop-2.6.0/
[root@master local]$ ll hadoop-2.6.0/
total 56
drwxr-xr-x. 2 hadoop hadoop  4096 Nov 14 05:20 bin
drwxr-xr-x. 3 hadoop hadoop  4096 Nov 14 05:20 etc
drwxr-xr-x. 2 hadoop hadoop  4096 Nov 14 05:20 include
drwxr-xr-x. 3 hadoop hadoop  4096 Nov 14 05:20 lib
drwxr-xr-x. 2 hadoop hadoop  4096 Nov 14 05:20 libexec
-rw-r--r--. 1 hadoop hadoop 15429 Nov 14 05:20 LICENSE.txt
drwxrwxr-x. 2 hadoop hadoop  4096 Jan  8 14:13 logs
-rw-r--r--. 1 hadoop hadoop   101 Nov 14 05:20 NOTICE.txt
-rw-r--r--. 1 hadoop hadoop  1366 Nov 14 05:20 README.txt
drwxr-xr-x. 2 hadoop hadoop  4096 Nov 14 05:20 sbin

drwxr-xr-x. 4 hadoop hadoop  4096 Nov 14 05:20 share
[root@master local]$ su - hadoop

[hadoop@master ~]$ vim ~/.bash_profile       --将hadoop的执行文件加入到环境变量中
export JAVA_HOME=/usr/local/jdk1.7.0_79
export JAR_HOME=/usr/local/jdk1.7.0_79/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAR_HOME/lib
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export HBASE_HOME=/usr/local/hbase-0.98.9-hadoop2
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:/usr/local/hbase-0.98.9-hadoop2/bin
export PATH
[hadoop@master ~]$ .  ~/.bash_profile  --环境变量生效
[hadoop@master ~]$ hadoop        --查看hadoop是否可以使用

配置HDFS 文件

文件名

格式

描述

hadoop-env.sh

Bash脚本

在运行hadoop的脚本中使用的环境变量

Core-site.xml

Hadoop配置xml

Hadoop核心的配置,例如HDFSMapReduce中很普遍的I/O设置

Hdfs-site.xml

Hadoop配置xml

HDFS后台程序设置的配置:名称节点。第二名称节点和数据节点

Mapred-site.xml

Hadoop配置xml

MapReduce后台程序设置的配置:jobtrackertasktracker

yarn-site.xml

Hadoop配置xml


Masters

纯文本

记录运行第二名称节点的机器列表

Slaves

纯文本

记录运行数据节点和tasktracker的机器列表

Hadoop-met

Rics.properties

Java属性

控制hadoop怎么发布metrics的属性

Log4j.properties

Java属性

系统日志文件属性、名称节点审计日记和tasktracker子进程的日志的属性

 

1.1.2                                                      修改hadoop-env.sh

hadoop-env.sh路径/usr/local/hadoop-2.6.0/etc/hadoop修改文件中环境变量JAVA_HOME的内容如下:

export JAVA_HOME=/usr/java/jdk1.7.0_79

所有机器做同样操作。

1.1.3                                                      修改core-site.xml
<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>
1.1.4                                                      修改masters

这一步只需要在master节点上执行。

这个文件存储备master节点的IP或机器名,建议使用机器名,每行一个机器名。主master会将元数据等备份到备master节点,文件位置可能随着版本不同有所变化,此次我们使用的版本在/sbin目录下,如果没有此文件需新建。

这里,我们为masters文件增加如下一行即可:

master

1.1.5                                                      修改slaves

这一步只需要在两台master节点上执行,以便masterssh方式去启动所有的slave节点。

这个文件存储slave节点的IP或机器名,建议使用机器名,每行一个机器名。这里我们增加如下两行:

slaver1

slaver2

1.1.6                                                      修改hdfs-site.xml

文件中常用配置参数:

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>
1.1.7                                                      修改mapred-site.xml

文件中常用配置参数:

Mapred.job.tracker

主机名和端口

local

JobtrackerRPC服务器运行的主机名和端口。如果设置为默认值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子进程,运行mapreduce任务的jvm选项。次属性可以在每道作业上设置,这对为debug设置JVM属性比较有用

 

具体配置如下:

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
1.1.8                                                      修改yarn-site.xml

文件中常用配置参数:

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>
1.1.9                                                      启动服务, 检查进程
在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
修改authorized_keys文件权限
chmod 600  authorized_keys

远程传文件夹
scp -r hadoop-2.6.0  slaver2:/usr/local/

向用户组赋权限
chown -R hadoop:hadoop hadoop-2.6.0/

删除文件(慎用):
rm -rf *
4、问题:
如果不能启动,尝试删除Root启动后产生的文件

你可能感兴趣的:(java,hadoop,linux,大数据)