easyhadoop完全配置实战

版本: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. 安装easyhadoop:

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 选项,按照下面两个图进行配置:

easyhadoop完全配置实战_第1张图片easyhadoop完全配置实战_第2张图片

分别点击save,然后在Monitor--》Memory中可以看到下面的界面(做了一个配置后,最好在Monitor中查看有哪些东西做了改变):

easyhadoop完全配置实战_第3张图片

然后在Nodes中选择Storage,选择相应的文件系统:

easyhadoop完全配置实战_第4张图片easyhadoop完全配置实战_第5张图片

点击save保存。

3.2 install: 点击Install,依次选择节点中的install进行hadoop的安装,安装完成后会跳出来一个界面告诉你安装了哪些东西,最后会说hadoop installed。说明hadoop安装完成。额,别急,还有配置,个人感觉配置才是最麻烦的。


3.3 选择Settings--》Hadoop:

选择/etc/hosts选项,View Hosts,然后如果看到下面的界面:

easyhadoop完全配置实战_第6张图片

那么就说明这个配置是ok的,然后使用push Hosts选项进行/etc/hosts文件的分发,点击运行后,可以在master和node1机器中cat /etc/hosts查看这个文件是否和上图一样,如果一样就说明这个操作运行正常。

然后是RackAware选项,点击View RackAware,可以看到下图:

easyhadoop完全配置实战_第7张图片

那么就说明这个是对的了,点击push RackAware即可。

最后是Global Settings选项了,首先按照图的操作把四个配置文件提交上来:

easyhadoop完全配置实战_第8张图片
提交完成后,可以在HadoopSetings中看到下面的界面:

easyhadoop完全配置实战_第9张图片
然后分别点击Edit,进行文件的配置,配置分别如下:

/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的查看:

easyhadoop完全配置实战_第10张图片

easyhadoop完全配置实战_第11张图片

最后,为了验证集群的配置是正确的,运行一个程序,在主节点运行(上传文件到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中的截图:

easyhadoop完全配置实战_第12张图片

这样全部配置就全部ok了。


说明:

  1. java默认目录/usr/java/default
  2. hadoop配置文件默认目录:/etc/hadoop/
  3. hadoop jar文件默认目录/usr/share/hadoop


分享,成长,快乐

转载请注明blog地址:http://blog.csdn.net/fansy1990



你可能感兴趣的:(easyhadoop完全配置实战)