首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Hadoop筹建指南

2012-06-28 
Hadoop搭建指南??? 1???????? Hadoop 环境搭建 下载地址为:http://download.oracle.com/otn-pub/java/jdk/

Hadoop搭建指南

??? 1???????? Hadoop 环境搭建

下载地址为:

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

?

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

?

#mkdir /bin/java

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

?

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

?

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

jdk安装完成.

?

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

?

方式一:在/etc/profile文件中配置JAVA_HOME以及PATH和CLASS_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)

?

hadoop5.com

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

192.168.5.5?? hadoop5.com

127.0.0.1???? localhost

192.168.5.5?? brzh.com ~

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

???????????? ?fs.default.name

?? ???定义: Name Node的URI

?? ???描述: hdfs://hostname/

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

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

?

<?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>

?

<?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>

?

?

<?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>

?

masters:指定namenode的主机名

slaves:指定datanode/tasktracker的主机名

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

?

bin/hadoop namenode –format??

bin/start-all.sh

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

$JAVA_HOME/bin/jps

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

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

?

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、新节点ip/hosts:

??? ?? 本案例在192.168.5.5? 的slave 添加 hadoop6.com

?????? 本案例在192.168.5.6? 的master 添加 hadoop5.com

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

?

有的时候, 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.清空/tmp目录 rm –R /tmp/*

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

3. ./bin/hadoop namenode –format

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

1、(namenode即master上)生成密钥

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

??? cd /root/.ssh

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

2、slave 也执行 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

???? ?? 配置项

?? ?fs.default.name

?? ?定义: Name Node的URI

?? ?描述: hdfs://hostname/

?

?? ?mapred.job.tracker

?? ?定义: JobTracker的地址

?? ?描述: hostname:port

?

?? ?dfs.name.dir

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

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

?

?? ? dfs.data.dir

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

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

?

?? ? mapred.system.dir

?? ?定义: HDFS上MapReduce保存系统文件的目录.

?? ?描述:?

?

?? ?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
?定义:tasktracker开http服务的线程数。用于reduce拉取map输出数据。

?

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

?

热点排行