hadoop安装指南非常详细包成功.docx
- 文档编号:9345876
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:17
- 大小:315.37KB
hadoop安装指南非常详细包成功.docx
《hadoop安装指南非常详细包成功.docx》由会员分享,可在线阅读,更多相关《hadoop安装指南非常详细包成功.docx(17页珍藏版)》请在冰豆网上搜索。
hadoop安装指南非常详细包成功
安装HADOOP集群服务器
1.规划
功能
HOSTNAME
IP
说明
Master
HDM01
192.168.1.1
Namenode兼datanode
Slave
HDS02
192.168.1.2
Datanode
Slave
HDS03
192.168.1.3
Datanode
Client
HDC04
192.168.1.4
HADOOP客户端(HDFS/HIVE)
2.环境
2.1.系统环境
安装centOS6.2=>软件工作站(softwareDevelopmentWorkstation)
3.Hadoop安装
3.1.安装和配置SSH、RSYNC(Root用户)
安装SSH和rsync一般系统自带了;
3.2.创建Hadoop运行用户(Root用户)
一般我们不会经常使用root用户运行hadoop,所以要创建一个平常运行和管理Hadoop的用户;
Ø创建hadoop用户和用户组
useraddhadoop
PS:
master和slave节点机都要创建相同的用户和用户组,即在所有集群服务器上都要建hadoop用户和用户组。
3.3.关闭防火墙(Root用户)
在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。
所以对集群所有服务器关闭防火墙:
chkconfigiptablesoff
查看防火墙状态:
serviceiptablesstatus
永久关闭防火墙:
chkconfigiptablesoff
查看防火墙状态:
chkconfig--listiptables
3.4.配置机器名和网络(Root用户)
⏹配置HOSTNAME
vi/etc/sysconfig/network,修改:
HOSTNAME=hmaster
其他节点依次改为slave1,slave2…….不过必须和上面一致
验证;输入命令hostname
⏹配置网络IP
cd/etc/sysconfig/network-scripts
viifcfg-eth0(因为硬件不同,其中的“eth0”可能是其他名称)
⏹配置IP和HOSTNAME映射关系
vi/etc/hosts
[root@NOAS~]#more/etc/hosts
#127.0.0.1localhostlocalhost.localdomainlocalhost4#localhost4.localdomain4
:
:
1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6
192.168.1.1HDM01
192.168.1.2HDS02
192.168.1.3HDS03
192.168.1.4HDC04
3.5.配置非root用户免验证登录SSH(hadoop用户)
提示:
Linux配置ssh是通过欺骗登录用户名的。
所以上面创建用户的时候,我们都把3个节点的username都设置成hadoop,主要是用户名必须一致
在hadoop用户的home目录,即cd/home/hadoop下执行命令
用hadoop用户登录(第一/二/三步分别在每一个节点上都要执行)
第一步:
ssh-keygen-trsa-P''-f~/.ssh/id_rsa
意思是读取id_dsa文件默认全部是yes安装
和root用户一样,会发现多处2个文件,一个是公开密匙,一个是访问用户名字信息的
第二步:
cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
是把暴露出来的公共密匙按顺序导入authorized_keys中保存
第三步:
chmod700~/.ssh
chmod600~/.ssh/authorized_keys
ssh机制很严谨,对文件的权限要求非常严格
我们需要把.ssh文件夹的权限改为700,默认是777
authorized_keys的权限这里是对的,600
第四步:
在主节点上执行下列命令
sshHDS02cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
sshHDS03cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
scpauthorized_keyshadoop@HDS02:
/home/hadoop/.ssh/
scpauthorized_keyshadoop@HDS03:
/home/hadoop/.ssh/
最终authorized_keys文件要有各个集群服务器的信息
第五步:
验证
第一次会要求输入密码,完成后测试,每台机都要求能联通:
sshHDM01
sshHDS02
sshHDS03
不输入密码就表示成功了;
3.6.安装JDK(hadoop用户)
检查是否已安装JDK:
rpm-qa|grepjdk
检查JAVA安装目录:
whickjava
检查是否配置JAVA_HOME:
env|grepJAVA_HOME
whichjava和JAVA_HOME路径不一致,是做了LINK映射
[root@NOAS~]#su-hadoop
[hadoop@NOAS~]$rpm-qa|grepjdk
java-1.6.0-openjdk-javadoc-1.6.0.0-1.41.1.10.4.el6.x86_64
java-1.6.0-openjdk-devel-1.6.0.0-1.41.1.10.4.el6.x86_64
java-1.6.0-openjdk-1.6.0.0-1.41.1.10.4.el6.x86_64
[hadoop@NOAS~]$whichjava
/usr/bin/java
[hadoop@NOAS~]$ls-l/usr/bin/java
lrwxrwxrwx.1rootroot22Feb2622:
26/usr/bin/java->/etc/alternatives/java
[hadoop@NOAS~]$ls-l/etc/alternatives/java
lrwxrwxrwx.1rootroot46Feb2622:
26/etc/alternatives/java->/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
[hadoop@NOAS~]$env|grepJAVA_HOME
JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64
在当前用户配置JAVA_HOME,在.bash_profile文件增加蓝色部分,最后
source/home/hadoop/.bash_profile,使生效
hadoop@NOAS~]$cd/home/hadoop/
[hadoop@NOAS~]$more.bash_profile
#.bash_profile
#Getthealiasesandfunctions
if[-f~/.bashrc];then
.~/.bashrc
fi
#Userspecificenvironmentandstartupprograms
PATH=$PATH:
$HOME/bin
exportPATH
JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64
PATH=$JAVA_HOME/bin:
$PATH
CLASSPATH=$CLASSPATH:
.:
$JAVA_HOME/lib/dt.jar:
$JAVA_HOME/lib/tools.jar
exportJAVA_HOME
exportPATH
exportCLASSPATH
[hadoop@NOAS~]$
3.7.安装Hadoop(root用户)
3.7.1.安装rpm包:
用rpm包安装,目录都是默认的比较规范
用root用户:
rpm-ivh/opt/colud/hadoop-1.2.1-1.x86_64.rpm
3.7.2.配置Hadoop配置文件
(每台机器服务器都要配置,且都是一样的,配置完一台其他的只需要拷贝,每台机上的core-site.xml和mapred-site.xml都是配master服务器的hostname,因为都是配置hadoop的入口)
core-site.xml:
整个hadoop入口的配置
vi/etc/hadoop/core-site.xml,配置如下内容:
//HDM01:
9000
vi/etc/hadoop/hdfs-site.xml,配置如下内容:
vi/etc/hadoop/mapred-site.xml,配置如下内容:
9001
配置说明:
⏹core-site.xml
Øhadoop.tmp.dir是hadoop文件系统依赖的基础配置,很多路径都依赖它。
它默认的位置是在/tmp/{$user}下面,但是在/tmp路径下的存储是不安全的,因为linux一次重启,文件就可能被删除。
修改该参数后要格式NAMENODE:
hadoopnamenode-format
3.7.3.配置Hadoop集群配置文件
(只需要配置namemode节点机,这里的HDM01即做namenode也兼datanode,一般情况namenode要求独立机器,namemode不兼datanode)
vi/etc/hadoop/masters,配置如下内容:
HDM01
vi/etc/hadoop/slaves,配置如下内容:
HDM01
HDS02
HDS03
3.7.4.配置非ROOT用户权限
⏹(包含用非root用户启动Hadoop所需的额外项)将/usr/sbin/下的以下脚本文件的owner设为testusr,且赋给owner全权rwx:
chownhadoop:
hadoop/usr/sbin/hadoop-create-user.sh
chownhadoop:
hadoop/usr/sbin/hadoop-daemon.sh
chownhadoop:
hadoop/usr/sbin/hadoop-daemons.sh
chownhadoop:
hadoop/usr/sbin/hadoop-setup-applications.sh
chownhadoop:
hadoop/usr/sbin/hadoop-setup-conf.sh
chownhadoop:
hadoop/usr/sbin/hadoop-setup-hdfs.sh
chownhadoop:
hadoop/usr/sbin/hadoop-setup-single-node.sh
chownhadoop:
hadoop/usr/sbin/hadoop-validate-setup.sh
chownhadoop:
hadoop/usr/sbin/rcc
chownhadoop:
hadoop/usr/sbin/slaves.sh
chownhadoop:
hadoop/usr/sbin/start-all.sh
chownhadoop:
hadoop/usr/sbin/start-balancer.sh
chownhadoop:
hadoop/usr/sbin/start-dfs.sh
chownhadoop:
hadoop/usr/sbin/start-jobhistoryserver.sh
chownhadoop:
hadoop/usr/sbin/start-mapred.sh
chownhadoop:
hadoop/usr/sbin/stop-all.sh
chownhadoop:
hadoop/usr/sbin/stop-balancer.sh
chownhadoop:
hadoop/usr/sbin/stop-dfs.sh
chownhadoop:
hadoop/usr/sbin/stop-jobhistoryserver.sh
chownhadoop:
hadoop/usr/sbin/stop-mapred.sh
chownhadoop:
hadoop/usr/sbin/update-hadoop-env.sh
chmodu+rwx/usr/sbin/hadoop-create-user.sh
chmodu+rwx/usr/sbin/hadoop-daemon.sh
chmodu+rwx/usr/sbin/hadoop-daemons.sh
chmodu+rwx/usr/sbin/hadoop-setup-applications.sh
chmodu+rwx/usr/sbin/hadoop-setup-conf.sh
chmodu+rwx/usr/sbin/hadoop-setup-hdfs.sh
chmodu+rwx/usr/sbin/hadoop-setup-single-node.sh
chmodu+rwx/usr/sbin/hadoop-validate-setup.sh
chmodu+rwx/usr/sbin/rcc
chmodu+rwx/usr/sbin/slaves.sh
chmodu+rwx/usr/sbin/start-all.sh
chmodu+rwx/usr/sbin/start-balancer.sh
chmodu+rwx/usr/sbin/start-dfs.sh
chmodu+rwx/usr/sbin/start-jobhistoryserver.sh
chmodu+rwx/usr/sbin/start-mapred.sh
chmodu+rwx/usr/sbin/stop-all.sh
chmodu+rwx/usr/sbin/stop-balancer.sh
chmodu+rwx/usr/sbin/stop-dfs.sh
chmodu+rwx/usr/sbin/stop-jobhistoryserver.sh
chmodu+rwx/usr/sbin/stop-mapred.sh
chmodu+rwx/usr/sbin/update-hadoop-env.sh
⏹将/usr/bin/下的hadoop设为所有人(不是其他人)可读可执行。
即chmod555(不是chmod005)
chmod555/usr/bin/hadoop
⏹/var/log/hadoop/及其下(循环)的owner设为testusr,且赋给owner全权rwx
/var/run/hadoop/及其下(循环)的owner设为testusr,且赋给owner全权rwx
/home/hadoop/及其下(循环)的owner设为testusr,且owner权限设为“rwxr-xr-x”,设为更大权限不行,主要是因为/home/hadoop/tmp/dfs/data的权限需要为“rwxr-xr-x”
chown-Rhadoop:
hadoop/var/log/hadoop/
chown-Rhadoop:
hadoop/var/run/hadoop/
chown-Rhadoop:
hadoop/home/hadoop/
chmod-Ru+rwx/var/log/hadoop/
chmod-Ru+rwx/var/run/hadoop/
chmod-Ru+rwx/home/hadoop/
3.7.5.配置HADOOP的JAVA环境
配置Hadoop的java环境与env的JAVA_HOME保持一致,文件/etc/hadoop/hadoop-env.sh
#Thejavaimplementationtouse.
#exportJAVA_HOME=/usr/java/default
exportJAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64
exportHADOOP_CONF_DIR=${HADOOP_CONF_DIR:
-"/etc/hadoop"}
3.8.格式化HDFS(hadoop用户)
hadoopnamenode-format(用hadoop用户)
重新format时,系统提示如下:
Re-formatfilesystemin/home/hadoop/tmp/dfs/name?
(YorN)
必须输入大写Y,输入小写y不会报输入错误,但format出错。
chown-Rhadoop:
hadoop/home/hadoop/
chmod-R755/home/hadoop/
3.9.启动Hadoop(hadoop用户)
Hadoop用户登录
命令:
start-all.sh(记得关闭所有的防火墙)
3.9.1.验证hadoop
(1)验证方法一:
用"jps"命令
在Master上用java自带的小工具jps查看5个进程都在。
在Slave1上用jps查看进程。
如果在查看Slave机器中发现"DataNode"和"TaskTracker"没有起来时,先查看一下日志的,如果是"namespaceID"不一致问题,采用"常见问题FAQ6.2"进行解决,如果是"Noroutetohost"问题,采用"常见问题FAQ6.3"进行解决。
(2)验证方式二:
用"hadoopdfsadmin-report"
用这个命令可以查看Hadoop集群的状态。
Master服务器的状态:
Slave服务器的状态
4.4网页查看集群
1)访问"http:
192.168.1.1:
50030"
2)访问"http:
192.168.1.1:
50070"
3.10. HADOOP语法
3.10.1.启动/关闭
ØStart-all.sh/stop-all.sh
Ø
3.10.2.进程
ØJps
Master节点:
namenode/tasktracker
(如果Master不兼做Slave,不会出现datanode/Tasktracker
Slave节点:
datanode/Tasktracker
说明:
JobTracker 对应于NameNode
TaskTracker对应于DataNode
DataNode和NameNode是针对数据存放来而言的
JobTracker和TaskTracker是对于MapReduce执行而言的
mapreduce中几个主要概念,mapreduce整体上可以分为这么几条执行线索:
jobclient,JobTracker与TaskTracker。
1、JobClient会在用户端通过JobClient类将应用已经配置参数打包成jar文件存储到hdfs,并把路径提交到Jobtracker,然后由JobTracker创建每个Task(即MapTask和ReduceTask)并将它们分发到各个TaskTracker服务中去执行
2、JobTracker是一个master服务,软件启动之后JobTracker接收Job,负责调度Job的每一个子任务task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。
一般情况应该把JobTracker部署在单独的机器上。
3、TaskTracker是运行在多个节点上的slaver服务。
TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。
TaskTracker都需要运行在HDFS的DataNode上
3.10.3.文件系统HDFS
⏹查看文件系统根目录:
Hadoopfs–ls/
文件系统的目录和文件是不能再本地系统查看到的;相当于两个不同的系统;
4.常见错误
4.1.错误:
(hadoop)couldonlybereplicatedto0nodes,insteadof1
现象:
namenode端的namenodelog一直报couldonlybereplicatedto0nodes,insteadof1 错误,表示没有一个可用的节点。
datanode端一直报错:
Serverat/10.0.0.21:
54310notavailableyet,Zzzzz...2011-03-0311:
33:
10,047INFOorg.apache.hadoop.ipc.Client:
Retryingconnecttoserver:
/10.0.0.21:
54310,一直尝试连接master但连接不上。
改正:
在namenode中配置master和jobtracker的ip时使用的是localhost,将这两个改成namenode以及jobtracker本机的实际ip后,问题得以解决。
具体的原因我也不太明白。
当然这个错误还有其他的几个原因(摘自网上):
dfs的空间不足。
namenode运行在safemodel下。
namenode所在机器的防火墙开着是的datanode无法访问master。
这几个问题详见:
ØHADOOP重新格式化文件后,要删除cd/home/hadop/tmp/datarm–rfdata
ØNamenodeisinsafemode.
在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- hadoop 安装 指南 非常 详细 成功
![提示](https://static.bdocx.com/images/bang_tan.gif)