EasyHadoop大数据平台部署指南.docx
《EasyHadoop大数据平台部署指南.docx》由会员分享,可在线阅读,更多相关《EasyHadoop大数据平台部署指南.docx(59页珍藏版)》请在冰豆网上搜索。
EasyHadoop大数据平台部署指南
EasyHadoop大数据平台
部署指南
一、
EasyHadoop集群部署入门
1.文档概述
本文档是Hadoop部署文档,提供了Hadoop单机安装和Hadoop集群安装的方法和步骤,本文档希望让Hadoop安装部署更简单(Easy)。
本安装文档适用于centos5/redhat5.232位,64位版本,ubuntu等操作系统需要做部分修改。
2.背景
Hadoop为分布式文件系统和计算的基础框架系统,其中包含hadoop程序,hdfs系统等。
3.名词解释
1.Hadoop,Apache开源的分布式框架。
2.HDFS,hadoop的分布式文件系统
3.NameNode,hadoopHDFS元数据主节点服务器,负责保存DataNode文件存储元数据信息。
4.JobTracker,hadoop的Map/Reduce调度器,负责与TackTracker通信分配计算任务并跟踪任务进度。
5.DataNode,hadoop数据节点,负责存储数据。
6.TaskTracker,hadoop调度程序,负责Map,Reduce任务的具体启动和执行。
7.Fuse,多文件系统内核程序,可将不同的文件系统mount成linux可读写模式
4.服务器结构
#Hadoop试验集群的部署结构
部署路径:
/opt/modules/hadoop/hadoop-1.0.3/
#系统和组建的依赖关系
#生产环境的部署结构
5.RedhatLinux基础环境搭建
#linux安装(vm虚拟机)
请参考其他vmware虚拟机安装文档。
设置网络为net模式。
roothadoop
#配置机器时间同步
#配置时间同步
crontab-e
01***/usr/sbin/ntpdatecn.pool.ntp.org
使个台机器时间同步
#手动同步时间
/usr/sbin/ntpdatecn.pool.ntp.org
#配置机器网络环境
#修第一台hostname为master
hostnamemaster
#检测
hostname
#配置主机名(hostname)
vi/etc/sysconfig/network
NETWORKING=yes#启动网络
NETWORKING_IPV6=no
HOSTNAME=master#主机名
#使用setup命令配置系统环境
setup
cat/etc/sysconfig/network-scripts/ifcfg-eth0#检查ip配置
#AdvancedMicroDevices[AMD]79c970[PCnet32LANCE]
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:
0c:
29:
fc:
3a:
09
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.1.100
TYPE=Ethernet
/sbin/servicenetworkrestart#重新启动网络服务
/sbin/ifconfig#检查网络ip配置
#关闭防火墙如果不关闭报错如下。
************************************************************/
2012-07-1802:
47:
26,331INFOorg.apache.hadoop.metrics2.impl.MetricsConfig:
loadedpropertiesfromhadoop-metrics2.properties
2012-07-1802:
47:
26,529INFOorg.apache.hadoop.metrics2.impl.MetricsSourceAdapter:
MBeanforsourceMetricsSystem,sub=Statsregistered.
2012-07-1802:
47:
26,533ERRORorg.apache.hadoop.metrics2.impl.MetricsSystemImpl:
Errorgettinglocalhostname.Using'localhost'...
.UnknownHostException:
node1:
node1
at.InetAddress.getLocalHost(InetAddress.java:
1354)
#关闭防火墙
#配置集群hosts列表
vi/etc/hosts
#添加一下内容到vi中
192.168.1.100master
192.168.1.101node1
#下载并安装JAVAJDK系统软件
#下载jdk
wgethttp:
//60.28.110.228/source/package/jdk-6u21-linux-i586-rpm.bin
#安装jdk
chmod+xjdk-6u21-linux-i586-rpm.bin
./jdk-6u21-linux-i586-rpm.bin
#配置环境变量
vi/etc/profile.d/java.sh
#复制粘贴一下内容到vi中。
exportJAVA_HOME=/usr/java/jdk1.6.0_21/
exportHADOOP_HOME=/opt/modules/hadoop/hadoop-1.0.3/
exportPATH=$JAVA_HOME/bin:
$HADOOP_HOME/bin:
$PATH
#手动立即生效
source/etc/profile
#测试
jps
#生成登陆密钥
#切换Hadoop用户下
suhadoop
cd/home/hadoop/
#生成公钥和私钥
ssh-keygen-q-trsa-N""-f/home/hadoop/.ssh/id_rsa
cd.ssh
catid_rsa.pub>authorized_keys
chmodgo-wxauthorized_keys
#公钥:
复制文件内容id_rsa.pub到authorized_keys
#集群环境id_rsa.pub复制到node1:
/home/hadoop/.ssh/authorized_keys
#检查
ll-a/home/hadoop/.ssh/
#创建用户账号和Hadoop部署目录和数据目录
#创建hadoop用户
/usr/sbin/groupaddhadoop
#分配hadoop到hadoop组中
/usr/sbin/useraddhadoop-ghadoop
#创建hadoop代码目录结构
mkdir-p/opt/modules/hadoop/
#创建hadoop数据目录结构
mkdir-p/opt/data/hadoop/
#修改目录结构权限为为hadoop
chown-Rhadoop:
hadoop/opt/modules/hadoop/
chown-Rhadoop:
hadoop/opt/data/hadoop/
#检查基础环境
/sbin/ifconfig
[hadoop@masterroot]$/sbin/ifconfig
eth0Linkencap:
EthernetHWaddr00:
0C:
29:
7A:
DE:
12
inetaddr:
192.168.1.100Bcast:
192.168.1.255Mask:
255.255.255.0
inet6addr:
fe80:
:
20c:
29ff:
fe7a:
de12/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
14errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
821errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
1591(1.5KiB)TXbytes:
81925(80.0KiB)
Interrupt:
67Baseaddress:
0x2024
#测试命令
/sbin/ifconfig
pingmaster
sshmaster
jps
echo$JAVA_HOME
echo$HADOOP_HOME
6.Hadoop单机系统安装配置
#Hadoop文件下载和解压
#切到hadoop安装路径下
cd/opt/modules/hadoop/
#从hadoop.apache.org下载Hadoop安装文件
wget
#如果已经下载请复制文件到安装hadoop文件夹
cphadoop-1.0.3.tar.gz/opt/modules/hadoop/
#加压复制或者下载的Hadoop文件
cd/opt/modules/hadoop/
tar-xzvfhadoop-1.0.3.tar.gz
hadoop
#配置hadoop-env.sh环境变量
#配置Hadoop最大HADOOP_HEAPSIZE大小,默认为1000,因为虚拟机最大内存配置512m,这里配置较小。
#配置压缩类库地址
vi/opt/modules/hadoop/hadoop-1.0.3/conf/hadoop-env.sh
exportHADOOP_HEAPSIZE=32
exportJAVA_LIBRARY_PATH=/opt/hadoopgpl/native/Linux-amd64-64:
/opt/modules/hadoop/hadoop-1.0.3/lib/native/Linux-amd64-64
#HadoopCommon组件配置core-site.xml
#编辑core-site.xml文件
vi/opt/modules/hadoop/hadoop-1.0.3/conf/core-site.xml
fs.default.name
hdfs:
//master:
9000
--hadoopnamenode服务器地址和端口,以域名形式-->
fs.checkpoint.dir
/data/hadoop/hdfs/namesecondary
--hadoopsecondary数据存储路径,可以配置成多个目录,用,号分隔。
-->
fs.checkpoint.period
1800
--editlog每隔30分钟触发一次合并-->
fs.checkpoint.size
33554432
--editlog达到32m的时候触发一次合并-->
pression.codecs
press.DefaultCodec,press.GzipCodec,press.BZip2Codec
--配置Hadoop压缩包-->
fs.trash.interval
1440
Hadoop文件回收站,自动回收时间,单位分钟,这里设置是1天。
#HDFSNameNode,DataNode组建配置hdfs-site.xml
vi/opt/modules/hadoop/hadoop-1.0.3/conf/hdfs-site.xml
xmlversion="1.0"?
>
xml-stylesheettype="text/xsl"href="configuration.xsl"?
>
dfs.name.dir
/data/hadoop/hdfs/name
--HDFSnamenodeimage文件保存地址-->
dfs.data.dir
/data/hadoop/hdfs/data
--HDFS数据文件存储路径,可以配置多个不同的分区和磁盘中,使用,号分隔-->
dfs.http.address
master:
50070
---HDFSWebNameNode查看主机和端口master是我们配置的主机-->
dfs.secondary.http.address
node1:
50090
--辅控HDFSwebSeconderyNameNode查看主机和端口-->
dfs.replication
3
--HDFS数据保存份数,通常是3-->
dfs.datanode.du.reserved
1073741824
--datanode写磁盘会预留1G空间给其他程序使用,而非写满,单位bytes->
dfs.block.size
134217728
--HDFS数据块大小,当前设置为128M/Block-->
dfs.permissions
false
--HDFS关闭文件权限-->
#配置MapReduce-JobTrackerTaskTracker启动配置
vi/opt/modules/hadoop/hadoop-1.0.3/conf/mapred-site.xml
xml-stylesheettype="text/xsl"href="configuration.xsl"?
>
--Putsite-specificpropertyoverridesinthisfile.-->
mapred.job.tracker
master:
9001
--JobTrackerrpc主机和端口-->
mapred.local.dir
/data/hadoop/mapred/mrlocal
--MapReduce产生的中间文件数据,按照磁盘可以配置成多个-->
true
mapred.system.dir
/data/hadoop/mapred/mrsystem
true
--MapReduce的系统控制文件-->
mapred.tasktracker.map.tasks.maximum
2
true
--最大map槽位数量,默认是3个-->
mapred.tasktracker.reduce.tasks.maximum
1
true
--单台机器最大reduce槽位数量-->
io.sort.mb
32
true
--reduce排序使用内存大小,默认100M,要小于mapred.child.java.opts-->
mapred.child.java.opts
-Xmx64M
--map和reduce进程JVM最大内存配置
机器总内存=系统+datanode+tasktracker+(map+reduce)16*?
-->
press.map.output
true
--map和reduce输出中间文件默认开启压缩-->
#Hadoop单机系统,启动执行和异常检查
描述系统重启,启动,停止,升级,以及其他故障的处理方式
#创建Hadoopmapred和hdfsnamenode和datanode目录在root下
mkdir-p/data/hadoop/
chown-Rhadoop:
hadoop/data/*
#切换到hadoop用户下
suhadoop
#创建mapreduce
mkdir-p/data/hadoop/mapred/mrlocal
mkdir-p/data/hadoop/mapred/mrsystem
mkdir-p/data/hadoop/hdfs/name
mkdir-p/data/hadoop/hdfs/data
namesecondarymasternamesecondary里面的路径
mkdir-p/data/hadoop/hdfs/namesecondary
#启动切换到hadoop用户
suhadoop
#格式化文件
/opt/modules/hadoop/hadoop-1.0.3/bin/hadoopnamenode-format
#启动Masternode:
/opt/modules/hadoop/hadoop-1.0.3/bin/hadoop-daemon.shstartnamenode
#启动datanode
/opt/modules/hadoop/hadoop-1.0.3/bin/hadoop-daemon.shstartdatanode
#启动JobTracker:
/opt/modules/hadoop/hadoop-1.0.3/bin/hadoop-daemon.shstartjobtracker
#启动secondarynamenode:
/opt/modules/hadoop/hadoop-1.0.3/bin/hadoop-daemon.shstartsecondarynamenode
#启动DataNode&&TaskTracker:
/opt/modules/hadoop/hadoop-1.0.3/bin/hadoop-daemon.shstartdatanode
/opt/modules/hadoop/hadoop-1.0.3/bin/hadoop-daemon.shstarttasktracker
停止,命令相同,将start换为stop
#出现错误可查看日志
tail-f/opt/modules/hadoop/hadoop-1.0.3/logs/*
#通过界面查看集群部署部署成功
#检查namenode和datanode是否正常
http:
//master:
50070/
1
#检查jobtracker和tasktracker是否正常
http:
//master:
50030/
1
#通过执行Hadooppi运行样例检查集群是否成功
cd/opt/modules/hadoop/hadoop-1.0.3
bin/hadoopjarhadoop-examples-1.0.3.jarpi10100
#集群正常效果如下
12/07/1510:
50:
48INFOmapred.FileInputFormat:
Totalinputpathstoprocess:
10
12/07/1510:
50:
48INFOmapred.JobClient:
Runningjob:
job_201207151041_0001
12/07/1510:
50:
49INFOmapred.JobClient:
map0%reduce0%
12/07/1510:
51:
42INFOmapred.JobClient: