版本:easyhadoop 1.2.1,操作系统:Centos 6.4;
经过上次的初始easyhadoop,本次终于配置好了一个集群,这个集群是有两个节点组成(master:jobtracker、namenode、secondarynamenode,node1:datanode、tasktracker)。
本篇就从开始到结束,来一个全面的介绍:
1.首先安装centos6.4的虚拟机,centos6.4的安装是有一个默认用户的,这里不使用那个账户,直接使用root即可。安装完成后,需要改变下面的内容(首先配置master,然后再配置node1):
1.1 /etc/sysconfig/network-scripts/ifconfig-eth0 ,这里配置GATEWAY是192.168.128.2,是因为Vmware的nat网络连接方式,其gateway是这个而已;
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.128.160
NETMASK=255.255.255.0
GATEWAY=192.168.128.2
DNS1=192.168.128.2
1.2/etcc/sysconfig/network 这里主要是配置机器名
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master
1.3/etc/hosts ,配置ip映射(注意,这一步不是必须,因为在后面的配置easyhadoop的时候会复写这个文件)
192.168.128.160 master
同样的在另外一台虚拟机里面做相应的配置,这里配置的ip是192.168.128.161,机器名是node1。
1.4 因为centos6.4虚拟机安装好默认是没有ssh-server的,所以这里使用下面的命令进行安装:
yum install ssh-server
然后使用下面的命令设置sshd开机启动:
chkconfig sshd on
2.1下载easyhadoop安装包,解压后,上传到master机器中的目录(这里上传的是/easyhadoop安装目录)
2.2 进入easyhadoop目录,使用命令 :
chmod +x setup_centos_6.py
增加setup_centos_6.py文件的执行权限,然后使用命令 ./setup_centos_6.py 进行安装;
2.3 安装完成后在浏览器中输入http://master,(如果在win7中没有配置master和ip的映射的话,是出不来结果的,那么就直接输入http:192.168.128.160)即可看到登录的界面,登录用户名和密码是:admin/123456,然后就可以进行配置了。
3. 配置hadoop:
3.1 点击导航栏Nodes--》Create Node 选项,按照下面两个图进行配置:
分别点击save,然后在Monitor--》Memory中可以看到下面的界面(做了一个配置后,最好在Monitor中查看有哪些东西做了改变):
然后在Nodes中选择Storage,选择相应的文件系统:
点击save保存。
3.2 install: 点击Install,依次选择节点中的install进行hadoop的安装,安装完成后会跳出来一个界面告诉你安装了哪些东西,最后会说hadoop installed。说明hadoop安装完成。额,别急,还有配置,个人感觉配置才是最麻烦的。
3.3 选择Settings--》Hadoop:
选择/etc/hosts选项,View Hosts,然后如果看到下面的界面:
那么就说明这个配置是ok的,然后使用push Hosts选项进行/etc/hosts文件的分发,点击运行后,可以在master和node1机器中cat /etc/hosts查看这个文件是否和上图一样,如果一样就说明这个操作运行正常。
然后是RackAware选项,点击View RackAware,可以看到下图:
那么就说明这个是对的了,点击push RackAware即可。
最后是Global Settings选项了,首先按照图的操作把四个配置文件提交上来:
提交完成后,可以在HadoopSetings中看到下面的界面:
/core-site.xml:
fs.default.name
hdfs://master:9000
HDFS主节点访问地址和端口
hadoop.tmp.dir
/hadoop/tmp
fs.checkpoint.dir
/dfs/snn
HDFS检查点路径设置(SNN)
fs.checkpoint.period
1800
HDFS元数据备份间隔时间(SNN)/秒
fs.checkpoint.size
33554432
HDFS元数据备份文件滚动大小(SNN)/字节
io.compression.codecs
org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.SnappyCodec
HDFS压缩编解码器
io.compression.codec.lzo.class
com.hadoop.compression.lzo.LzoCodec
LZO编解码器
topology.script.file.name
/etc/hadoop/RackAware.py
机架感知脚本位置
topology.script.number.args
100
机架感知参数最大值
fs.trash.interval
4320
HDFS回收站自动清空间隔/分钟
io.file.buffer.size
131072
序列化文件处理时读写buffer大小/字节
webinterface.private.actions
false
NN网页是否可以删除目录文件
io.sort.factor
100
处理流合并时的文件排序数
io.sort.mb
200
排序使用内存大小/MB
hadoop.security.authorization
false
Hadoop服务层级验证安全验证,需配合hadoop-policy.xml使用
fs.inmemory.size.mb
300
文件系统内存映射大小
/hdfs-site.xml:
dfs.name.dir
/dfs/name
Namenode元数据存储位置
dfs.data.dir
/dfs/data
HDFS数据存储路径
dfs.replication
1
文件块复制份数
dfs.datanode.du.reserved
1073741824
每硬盘保留空间/字节
dfs.block.size
67108864
文件块大小/字节
dfs.permissions
false
是否启用Hadoop文件系统 true/false
dfs.balance.bandwidthPerSec
10485760
Balancer使用最大带宽/字节
dfs.support.append
true
是否允许对文件APPEND
dfs.datanode.failed.volumes.tolerated
0
硬盘故障数量异常阀值
dfs.datanode.max.xcievers
8192
Datanode打开文件句柄数
dfs.datanode.handler.count
20
Datanode处理RPC线程数
dfs.namenode.handler.count
60
Namenode处理RPC线程数
dfs.safemode.extension
5
Namenode退出Safemode的延迟时间
/mapred-site.xml:
mapred.job.tracker
master:9001
Jobtracker地址
mapred.local.dir
/mapred/local
MR本地使用路径
mapred.system.dir
/mapred/system
MR系统使用路径
mapred.tasktracker.map.tasks.maximum
2
服务器最大map数
mapred.tasktracker.reduce.tasks.maximum
1
服务器最大reduce数
mapred.map.child.java.opts
-Xmx256M
每map线程使用内存大小
mapred.reduce.child.java.opts
-Xmx256M
每reduce线程使用内存大小
mapred.reduce.parallel.copies
6
reduce阶段并行复制线程数
mapred.compress.map.output
true
是否对map进行压缩输出
mapred.map.output.compression.code
org.apache.hadoop.io.compress.SnappyCodec
map压缩输出使用的编码器
mapred.child.java.opts
-Xmx1024M -Xms1024M
map/red虚拟机子进程设置
mapred.jobtracker.taskScheduler
org.apache.hadoop.mapred.JobQueueTaskScheduler
hadoop使用队列
mapred.output.compress
false
是否开启任务结果压缩输出
mapred.output.compression.codec
org.apache.hadoop.io.compress.DefaultCodec
任务结果压缩输出编解码器
map.sort.class
org.apache.hadoop.util.QuickSort
map排序算法
mapred.tasktracker.expiry.interval
60000
TaskTracker存活检测时间,超出该时间则认为tasktracker死亡/毫秒
mapred.local.dir.minspacestart
1073741824
硬盘空间小于该大小则不在本地做计算/字节
mapred.local.dir.minspacekill
1073741824
硬盘空间小于该大小则不再申请新任务/字节
mapred.reduce.slowstart.completed.maps
0.05
Reduce启动所需map进度。
mapred.jobtracker.restart.recover
true
Jobtracker重启后恢复任务
mapred.job.reuse.jvm.num.tasks
-1
Map/Reduce进程使用JVM重用
mapred.local.dir.minspacekill
1073741824
磁盘小于该空间则不申请新任务
/hadoop-end.sh:
# Set Hadoop-specific environment variables here.
# The only required environment variable is JAVA_HOME. All others are
# optional. When running a distributed configuration it is best to
# set JAVA_HOME in this file, so that it is correctly defined on
# remote nodes.
# The java implementation to use.
export JAVA_HOME=/usr/java/default
export HADOOP_C
# The maximum amount of heap to use, in MB. Default is 1000.
#export HADOOP_HEAPSIZE=
#export HADOOP_NAMENODE_INIT_HEAPSIZE=""
# Extra Java runtime options. Empty by default.
export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true $HADOOP_CLIENT_OPTS"
# Command specific options appended to HADOOP_OPTS when specified
export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT $HADOOP_NAMENODE_OPTS"
HADOOP_JOBTRACKER_OPTS="-Dhadoop.security.logger=INFO,DRFAS -Dmapred.audit.logger=INFO,MRAUDIT -Dhadoop.mapreduce.jobsummary.logger=INFO,JSA $HADOOP_JOBTRACKER_OPTS"
HADOOP_TASKTRACKER_OPTS="-Dhadoop.security.logger=ERROR,console -Dmapred.audit.logger=ERROR,console $HADOOP_TASKTRACKER_OPTS"
HADOOP_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,DRFAS $HADOOP_DATANODE_OPTS"
export HADOOP_SEC
# The following applies to multiple commands (fs, dfs, fsck, distcp etc)
export HADOOP_CLIENT_OPTS="-Xmx128m $HADOOP_CLIENT_OPTS"
#HADOOP_JAVA_PLATFORM_OPTS="-XX:-UsePerfData $HADOOP_JAVA_PLATFORM_OPTS"
# On secure datanodes, user to run the datanode as after dropping privileges
export HADOOP_SECURE_DN_USER=
# Where log files are stored. $HADOOP_HOME/logs by default.
export HADOOP_LOG_DIR=/var/log/hadoop/$USER
# Where log files are stored in the secure data environment.
export HADOOP_SECURE_DN_LOG_DIR=/var/log/hadoop/
# The directory where pid files are stored. /tmp by default.
export HADOOP_PID_DIR=/var/run/hadoop
export HADOOP_SECURE_DN_PID_DIR=/var/run/hadoop
# A string representing this instance of hadoop. $USER by default.
export HADOOP_IDENT_STRING=$USER
其实上面四个文件的配置和模板是差不多的,只是其中有一点点改变而已。其中hadoop-env.sh文件中的JAVA_HOME=/usr/java/default是进行easyhadoop安装的时候安装的java的默认路径。上面四个文件配置完成后,点击Push Global Settings即可推送这四个文件到集群的各个机器,可以在集群中的/etc/hadoop/中查看相应 的文件,看是否和配置的一样,如果不一样,那么就说明有错误。
3.4 格式化namenode,在master中运行:
sudo -u hdfs hadoop namenode -format
进行namenode的格式化;
3.5 启动集群:
点击导航栏的Service --》Hadoop,依次点击Namenode-----》datanode1-----》datanode2-----》secondarynamenode-----》jobtracker------》tasktracker1------》tasktracker2中的Start-*选项,进行进程的启动。启动完成后,可以在Monitor中进行HDFS和Mapreduce的查看:
最后,为了验证集群的配置是正确的,运行一个程序,在主节点运行(上传文件到HDFS中):
hadoop fs -copyFromLocal /etc/hadoop/hadoop-env.sh input/test1
接着运行wordcount程序:
hadoop jar /usr/share/hadoop/hadoop-examples-1.2.1.jar wordcount input/ output
下图是在上面程序运行时,Monitor中的截图:
说明:
分享,成长,快乐
转载请注明blog地址:http://blog.csdn.net/fansy1990