Hadoop搭建指南

    1         Hadoop 环境搭建

1.1     Java环境安装

1.   Oracle官网下载JDK1.6Linux版本.

下载地址为:

http://download.oracle.com/otn-pub/java/jdk/6u32-b05/jdk-6u32-linux-i586.bin

 

2.   下载的文件为jdk-6u32-linux-i586.bin 文件,这中后缀名的bin文件可以直接执行..

下载完成之后,可以通过FTP传入到Linux系统中.

 

3.   接下来,登录linux系统,赋予执行权限,命令如下:

#mkdir /bin/java

# chmod -R 775 jdk-6u32-linux-i586.bin

 

4.   执行jdk的安装.

# ./jdk-6u32-linux-i586.bin

 

安装过程中,会提示您按回车键,敲回车键即可. 会在linux的当前目录下,产生一个jdk1.6.0_32文件.

jdk安装完成.

 

5.   配置环境变量.

环境变量的配置分为几种方式,根据自己的选择配置:

 

方式一:/etc/profile文件中配置JAVA_HOME以及PATHCLASS_PATH

因为这样的设置将对所以用户的shell都生效,对系统安全会产生影响。
就是在这个文件的最后加上:
export JAVA_HOME=/bin/java/jdk1.6.0_32
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

 

方式二:

修改.bashrc文件来配置环境变量:

#vi .bashrc

export JAVA_HOME=/bin/java/jdk1.6.0_32
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

 

配置完成之后,使用logout命令退出,然后重新登入使其生效.

验证一下是否安装成功,使用Java -version查看一下.

 

# java -version
java version "1.6.0_32"
Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
Java HotSpot(TM) Client VM (build 20.7-b02, mixed mode, sharing)

 

1.2     主机配置

¨        vim /etc/hostname

hadoop5.com

/etc/init.d/hostname.sh  start 重启动

¨        vim /etc/hosts

192.168.5.5   hadoop5.com

127.0.0.1     localhost

192.168.5.2   debian.private  debian

192.168.5.5   brzh.com ~

1.3     Hadoop安装配置

¨        vim hadoop-env.sh

export JAVA_HOME=/bin/java/jdk1.6.0_32 

¨        vim conf/core-site.xml

              fs.default.name

      定义: Name NodeURI

      描述: hdfs://hostname/

<!--  fs.default.name - 这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URIDataNode交互,以取得文件的块列表。-->

<!—hadoop.tmp.dir hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenodedatanode的存放位置,默认就放在这个路径中-->

 

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

   <name> hadoop.tmp.dir</name>

   <value>/home/tmp/hadoop</value> #设定Hadoop临时目录?

   <description> </description>

</property>

 

<property>

<name>fs.default.name</name>

<value>hdfs://hadoop5.com:9100</value> #设置文件系统路径

</property>

 

<property>

<name>heartbeat.recheck.interval</name>#节点间心跳检测间隔时间默10

<value>1000</value>

</property>

</configuration>

 

¨        vim conf/hdfs-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>dfs.relplication</name> ##HDFS的副本数,默认为3,如果DataNode的数量小于这个值会有问题

<value>2</value>

</property>

<property>

<name>dfs.permissions</name>  ##是否对dfs中的文件进行权限控制

<value>false</value>

</property>

 

<property>

    <name>dfs.http.address</name>

    <value>hadoop5.com:50070</value> #指定namenode地址

</property>

 

<!--<property> 

   <name>dfs.secondary.http.address</name> #指定secondary namenode

    <value>cloud3:50090</value> 

 </property>à

  </configuration>

 

¨        vim conf/mapred-site.xml

 

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

    <name>mapred.job.tracker</name>

    <value>hadoop5.com:9200</value> ##设置MapReduce Job运行的主机和端口

</property>

</configuration>

 

1.4     masters/slaves 配置

masters:指定namenode的主机名

slaves:指定datanode/tasktracker的主机名

Hadoop目录同步到所有节点服务器

 

1.5     启动hadoop

¨        格式化分布式文件系统

bin/hadoop namenode –format  

¨        关闭所有节点的防火墙及Selinux 

¨        namenode上执行

bin/start-all.sh

¨        每次启动都要删除

rm -R  /tmp/hadoop-root 否则无法启动datanode

¨        查看进程运行情况

$JAVA_HOME/bin/jps

./bin/hadoop namenode  查看namenode 启动情况

tail –f /bin/hadoop/log/*.log  查看各进程启动

 

1.6     查看运行

HDFS状态:

http://hadoop5.com:50070/dfshealth.jsp

MapReduce状态:

http://hadoop5.com:50030/jobtracker.jsp

查看文件系统情况:

  bin/hadoop dfsadmin -report 

列出文件系统目录:

  bin/hadoop fs -ls hdfs://hadoop5.com:9100/

 

1.7     增加HDFS节点  (永久加节点在 namenode slave上加)

1、新节点ip/hosts:

            192.168.5.6     hadoop6.com

      2、在新节点上192.168.5.6上安装Hadoop,配置应与NameNode一致

      3、若永久填加该节点,可修改mastersslaves文件

       本案例在192.168.5.5  slave 添加 hadoop6.com

       本案例在192.168.5.6  master 添加 hadoop5.com

4、临时填加节点,192.168.5.6执行命令:

         ./bin/hadoop-daemon.sh start datanode           

         ./bin/hadoop-daemon.sh start tasktracker

      5、查看http://hadoop5.com:50070,已变为4live节点

 

1.8     热增加hdfs节点

有的时候, datanode或者tasktracker crash,或者需要向集群中增加新的机器时又不能重启集群。下面方法也许对你有用。
1.
把新机器的增加到conf/slaves文件中(datanode或者tasktracker crash则可跳过)

2.
在新机器上进入hadoop安装目录

  $bin/hadoop-daemon.sh start datanode
  $bin/hadoop-daemon.sh start tasktracker
3.
namenode

  $bin/hadoop balancer

 

1.9     Hadoop重启动

1.清空/tmp目录 rm –R /tmp/*

2.service iptables stop (看系统是否决定要执行这步)

3. ./bin/hadoop namenode –format

4. ./bin/start-all.sh (需要密码登录,执行下步)

1.10 配置SSH(免)密码登录

1(namenodemaster)生成密钥

    ssh-keygen  -t  rsa  默认存放目录为 /root/.ssh/

    cd /root/.ssh

    cp /root/.ssh/id_rsa.pub  /root/.ssh/authorized_keys

2slave 也执行 ssh-keygen  -t  rsa

3、拷贝密钥和授权

       scp -r /root/.ssh/authorized_keys  root@192.168.5.6:/root/.ssh/

       然后在slave节点机上chmod 0600  /root/.ssh/authorized_keys

1.11 Hadoop配置项意义

        配置项

    fs.default.name

    定义: Name NodeURI

    描述: hdfs://hostname/

 

    mapred.job.tracker

    定义: JobTracker的地址

    描述: hostname:port

 

    dfs.name.dir

    定义: Name Node 保存元数据和事务日志的本地目录

    描述: 逗号分隔的目录列表用于指定多份数据的冗余备份.

 

     dfs.data.dir

     定义: Data Node 保存块文件的本地目录

     描述: 逗号分隔的目录列表指定这些目录用于保存块文件.

 

     mapred.system.dir

    定义: HDFSMapReduce保存系统文件的目录.

    描述

 

    mapred.local.dir

    定义: 保存MapReduce临时文件的本地目录

    描述: 逗号分隔的目录列表用于指定多个目录同时做为临时数据空间

 

    mapred.tasktracker.{map|reduce}.tasks.maximum

    定义: TaskTracker上最多能够同时运行的map/reduce task数目.

    描述: 默认map/reduce task数目各为2.

 

    dfs.hosts/dfs.hosts.exclude

    定义: Data Node白名单/黑名单文件

    描述

 

    mapred.hosts/mapred.hosts.exclude

    定义: MapReduce白名单/黑名单文件

    描述:

 

    mapred.queue.names

    定义: 队列名

    描述: hadoop MapReduce系统默认有一个"default"Job队列(pool).


 dfs.block.size
 
定义: hdfs默认块大小
 
描述: 默认是128M

 dfs.namenode.handler.count
 
定义: namenode同时和datanode通信的线程数

 
描述:

 mapred.reduce.parallel.copies
 
定义: reducer同时从mapper上拉取的文件数

 
描述:

 mapred.child.java.opts
 
定义: child jvm的堆大小

 
描述:

 3fs.inmemory.size.mb
 
定义: reducer在合并map输出数据使用的内存空间
 
描述: 默认使用200M

 io.sort.factor
 
定义: 排序因子。同时合并的数据流的数量

 
描述:

 io.sort.mb
 
定义: 排序使用的最大内存

 
描述:

 io.file.buffer.size
 
定义: 读写文件的缓冲区大小

 
描述:

 mapred.job.tracker.handler.count
 
定义: jobtracker同时与tasktracker通信的线程数

 
描述:

 tasktracker.http.threads
 
定义:tasktrackerhttp服务的线程数。用于reduce拉取map输出数据。

 

1.12 Root登录

    系统>系统管理>登录窗口,点安全选项页,选择允许本地管理员登录

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值