修改hadoop配置文件详解后,一定得重启集群吗

hadoop节点内存为什么在修改yarn-site.xml配置之后无法生效,启动集群后也没有报错-Hadoop2|YARN-about云开发
后使用快捷导航没有帐号?
只需一步,快速开始
扫一扫,访问微社区
查看: 1413|回复: 2
hadoop节点内存为什么在修改yarn-site.xml配置之后无法生效,启动集群后也没有报错
主题帖子积分
新手上路, 积分 36, 距离下一级还需 14 积分
新手上路, 积分 36, 距离下一级还需 14 积分
& && &集群中节点默认能使用的最大内存是8G,显然这个内存是太低了,我们虚拟机的内存是64G的,现在导致我们的HSQL一跑,内存就满了,所以我们需要把这个内存调大点。关键是配置yarn-site.xml这个文档,但是我在我的测试机上调整之后,内存是增大了(起效果了),而我在生产上调整之后,内存还是没有变化,依然是8G(没有起效果),请教各位大神这个是什么配置问题,还是hadoop的版本有关,我的hadoop的版本2.7.3。具体的yarn-site.xml配置如下,在线跪求:
&property&
& & &name&yarn.nodemanager.resource.memory-mb&/name&
& & &value&51200&/value&
& & &discription&每个节点可用内存,单位MB&/discription&
&/property&
&property&
& & &name&yarn.resourcemanager.hostname&/name&
& & &value&node5&/value&
&/property&
&property&
& & &name&yarn.nodemanager.aux-services&/name&
& & &value&mapreduce_shuffle&/value&
&/property&
&property&
& & &name&yarn.resourcemanager.webapp.address&/name&
& & &value&node5:8088&/value&
&/property&
&property&
& & &name&yarn.web-proxy.address&/name&
& & &value&node5:8888&/value&
&/property&
&property&
& & &name&yarn.nodemanager.vmem-check-enabled&/name&
& & &value&false&/value&
&/property&
&property&
& & &name&yarn.resourcemanager.address&/name&
& & &value&node5:8032&/value&
&/property&
&property&
& & &name&yarn.resourcemanager.scheduler.address&/name&
& & &value&node5:8030&/value&
&/property&
&property&
& & &name&yarn.resourcemanager.resource-tracker.address&/name&
& & &value&node5:8031&/value&
&/property&
&property&
& & &name&yarn.log-aggregation-enable&/name&
& & &value&true&/value&
&/property&
&/configuration&
主题帖子积分
高级会员, 积分 3408, 距离下一级还需 1592 积分
高级会员, 积分 3408, 距离下一级还需 1592 积分
集群的配置节点都需要发布相同的配置文件,而且要刷新下集群,如果不生效。最好重启下集群,然后在试下。
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
新手上路, 积分 36, 距离下一级还需 14 积分
新手上路, 积分 36, 距离下一级还需 14 积分
集群的配置节点都需要发布相同的配置文件,而且要刷新下集群,如果不生效。最好重启下集群,然后在试下。
谢谢这位大神,我在我的测试集群上三个节点的文件yarn-site.xml文件不一致,在重启hadoop之后内存是有调整的,我的测试集群的配置是很简单的,我就在想我们的生产库上是不是有什么其他的配置导致内存的调整之后无法生效(修改之后,除了内存没增加,其他的一切都是正常的)。你这个刷新集群是指重启机器而不是重启hadoop吧。我试试看。
积极上进,爱好学习
经常参与各类话题的讨论,发帖内容较有主见
经常帮助其他会员答疑
站长推荐 /4
云计算hadoop视频大全(新增 yarn、flume|storm、hadoop一套视频
等待验证会员请验证邮箱
新手获取积分方法
技术类问答,解决学习openstack,hadoop生态系统中遇到的问题
Powered by博客分类:
Hadoop集群配置
建立一个三台服务器的hadoop集群,三台服务器ip和对应的主机名分别为:
192.168.0.100:shirleyren100,
192.168.0.101:shirleyren101,
192.168.0.102:shirleyren102,
其中192.168.0.100为namenode,另外两台为datanode。在三台服务器上创建hadoop账号
1,在namenode上创建hadoop账号的无密码公钥方式登录
ssh-keygen \-t dsa \-P '' \-f \~/.ssh/id_dsa
将namenode的上生成的id_dsa.pub和id_dsa文件复制到datanode上,并将id_dsa.pub 文件追加到datanode 的authorized_keys 内,以保证各台服务器之间的正常通信
2,在各台服务上安装sun jdk
为防止不必要的错误,请尽量保证各服务器上的JDK版本和安装路径的一致,并将JAVA安装路径放到环境变量中 /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.22
export JRE_HOME=/usr/lib/jvm/java-6-sun-1.6.0.22/jre
3,安装hadoop
在namenode上安装hadoop, 将下载的压缩包解压到安装目录下即可,附件中是我配置中修改的conf/下的文件
把hadoop 的安装路径添加到环境变量/etc/profile 中
export HADOOP_HOME=/home/hadoop/hadoop/hadoop-0.20.203.0
export HADOOP_CONF_DIR=/home/hadoop/hadoop/hadoop-0.20.203.0/conf
4,在conf/hadoop-env.sh中配置JAVA路径
在此文件中要把java的安装路径配置进去,即在该文件中加上以下代码
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.22
5,配置conf/core-site.xml, conf/hdfs-site.xml 及conf/mapred-site.xml三个文件
以下代码为最简单的配置方式,其他的属性可以根据自己的情况自行配置
core-site.xml:
&configuration&
&property&
&name&hadoop.tmp.dir&/name&
&value&/home/hadoop/hadoop/tmp&/value&
&description&A base for other temporary directories.&/description&
&/property&
&property&
&name&fs.default.name&/name&
&value&hdfs://shirleyren100:9000&/value&
&/property&
&/configuration&
hdfs-site.xml
replication 默认为3,建议将replicatio设置为小于或等于datanode的数量
&configuration&
&property&
&name&dfs.name.dir&/name&
&value&/home/hadoop/hadoop/name&/value&
&/property&
&property&
&name&dfs.data.dir&/name&
&value&/home/hadoop/hadoop/data&/value&
&/property&
&property&
&name&dfs.replication&/name&
&value&2&/value&
&/property&
&/configuration&
mapred-site.xml:
&configuration&
&property&
&name&mapred.job.tracker&/name&
&value&shirleyren100:9001&/value&
&/property&
&/configuration&
5,配置datanode
将以上配置好的hadoop包直接复制到datanode上即可
6,配置namenode的conf/masters 和conf/slaves 文件
shirleyren100
shirleyren101
shirleyren102
此时所有的配置就完成了,下面启动以下试试看
首次启动的时候需要首先格式化文件系统,进入到/home/hadoop/hadoop/hadoop-0.20.203.0路径下执行以下命令
bin/hadoop namenode -format
之后在namenode上执行
bin/start-all.sh
此时可以使用jps命令在namenode和datanode上查看已启动的进程,
在namenode上看到的是
23550 JobTracker
23215 NameNode
23462 SecondaryNameNode
在datanode上看到的是
3972 DataNode
4063 TaskTracker
同样可以在web下查看,在浏览器输入以下地址http://192.168.0.100:50070/
也可以执行几个hadoop的命令,验证hadoop是否正确启动
1,bin/hadoop dfs -mkdir input
/*创建名为input的目录*/
2,bin/hadoop dfs -put test.txt input/
/*将文件test.txt上传到input目录下*/
3,bin/hadoop dfs -ls
/*查看input目录下的文件*/
需要注意的几点
1,在第4步的配置文件中,一定使用主机域名而不是ip地址;
2,建议各台服务器的JDK和Hadoop的安装路径一直,这样就可以避免由于路径的问题,在不同服务器上频繁修改配置文件;
3,replication的值建议修改为小于或等于datanode数量;
4,建议hadoop.tmp.dir的路径不要设置在/tmp下,这是因为linux系统重启后会将tmp目录删除,此时运行hadoop会报 java.io.IOException:
could only be replicated to 0 nodes, instead of 1的异常,需要重新format;
5,每次重新格式化后一定要删除hadoop tmp目录下的所有文件;
常见问题总结
1,启动时报错 java.net.UnknownHostException
结果:不能正常启动
原因:通过localhost.localdomain根本无法映射到一个IP地址
解决办法:查看/etc/hosts,将主机名添加到hosts文件
2,启动时报错 java.io.IOException:
could only be replicated to 0 nodes, instead of 1
此时,首先检查防火墙是否关闭,是否对各节点的通信产生了影响,
第二,可以检查namenode和datanode中namespaceID的值是否相同,在不同的情况下会造成该问题,修改为相同的值后,重启该节点;
第三,将SAFEMODE设置为OFF状态;
hadoop dfsadmin -safemode leave
此外,还需检查/etc/hosts文件中主机名的映射是否正确,不要使用127.0.1.1或localhost。
将SAFEMODE设置为OFF状态可以有两种方法
执行上面的语句可以将safemode强制置为off状态,或者在hdfs_site.xml配置文件中增加下面代码,将safemode的设为较小的值,此种方法避免了在执行hadoop过程中经常性遇到错误Name node is in safe mode而导致的需强制将safemode置为off。
&property&
&name&dfs.safemode.threshold.pct&/name&
&value&0.95f&/value&
&/property&
3,ip和域名解析的问题
也会造成 could only be replicated to 0 nodes, instead of 1的问题
此时要检查/etc/hosts文件中主机名的映射是否正确,不要使用127.0.1.1或localhost。
4,报错:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.
执行任务时,任务卡死在reduce上,不执行
原因:任务最后会在最后将所有的reduce task复制到一台机器上,做最后总的reduce,此时需要ip和主机域名的配置正确
解决方法:将各节点的ip和主机域名配置正确,不能使用127.0.1.1或localhost,使用内网ip可加快处理速度
5,Hive执行时报错 java.lang.OutOfMemoryError: GC overhead limit exceeded
原因:这个是JDK6新添的错误类型。是发生在GC占用大量时间为释放很小空间的时候发生的,是一种保护机制。
解决办法:,关闭该功能,可以添加JVM的启动参数来限制使用内存:在mapred-site.xml 里新增项:mapred.child.java.opts 内容:-XX:-UseGCOverheadLimit
如何杀掉当前正在执行的hadoop任务
1,使用hadoop帐号登录namenode
2,cd hadoop/hadoop-0.20.203.0
3,执行下面命令
bin/hadoop job -list
会列出当前所有的正在执行hadoop任务
SchedulingInfo
4,找到需要被删除的任务id,执行下面命令
bin/hadoop job -kill job__0512
下载次数: 1
shirley.ren
浏览: 32151 次
来自: 北京
zcc 写道按照你的方法设置了,设置成其他的任何编码,shel ...
按照你的方法设置了,设置成其他的任何编码,shell中“没有任 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'105452人阅读
云计算hadoop(24)
&&&&&& 通常,集群里的一台机器被指定为&NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves\
官方地址:()
1 先决条件
确保在你集群中的每个节点上都安装了所有软件:sun-JDK& ,ssh,Hadoop
JavaTM1.5.x,必须安装,建议选择Sun公司发行的Java版本。
ssh&必须安装并且保证&sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。
2&实验环境搭建
&& 2.1& 准备工作
&&&& 操作系统:Ubuntu
&&&& 部署:Vmvare
&&&& 在vmvare安装好一台Ubuntu虚拟机后,可以导出或者克隆出另外两台虚拟机。
&&&& 说明:
&&& 保证虚拟机的ip和主机的ip在同一个ip段,这样几个虚拟机和主机之间可以相互通信。
&&& 为了保证虚拟机的ip和主机的ip在同一个ip段,虚拟机连接设置为桥连。
&&&& 准备机器:一台master,若干台slave,配置每台机器的/etc/hosts保证各台机器之间通过机器名可以互访,例如:
&&&& 10.64.56.76 node1(master)& &
&&&& 10.64.56.77 node2 (slave1)& &
&&&& 10.64.56.78 node3 (slave2)
&&&& 主机信息:&
10.64.56.76
NameNode、JobTracker
10.64.56.76
NameNode、JobTracker
10.64.56.77
DataNode、TaskTracker
10.64.56.78
DataNode、TaskTracker
为保证环境一致先安装好JDK和ssh:
2.2 安装JDK
$ sudo apt-get install sun-java6-jdk1.2.3&&& &
这个安装,java执行文件自动添加到/usr/bin/目录。
验证 shell命令 :java -version 看是否与你的版本号一致。
2.3下载、创建用户
$ useradd hadoop
$ cd& /home/hadoop
在所有的机器上都建立相同的目录,也可以就建立相同的用户,最好是以该用户的home路径来做hadoop的安装路径。
例如在所有的机器上的安装路径都是:/home/hadoop/hadoop-0.20.203,这个不需要mkdir,在/home/hadoop/下解压hadoop包的时候,会自动生成)
(当然可以安装/usr/local/目录下,例如/usr/local/hadoop-0.20.203/
& chown -R hadoop /usr/local/hadoop-0.20.203/
& chgrp -R hadoop& /usr/local/hadoop-0.20.203/
(最好不要使用root安装,因为不推荐各个机器之间使用root访问 )
2.4 安装ssh和配置
1) 安装:sudo apt-get install ssh
&&&& 这个安装完后,可以直接使用ssh命令 了。
&&&& 执行$ netstat& -nat&&& 查看22端口是否开启了。
&&&& 测试:ssh localhost。
&&&& 输入当前用户的密码,回车就ok了。说明安装成功,同时ssh登录需要密码。
&& (这种默认安装方式完后,默认配置文件是在/etc/ssh/目录下。sshd配置文件是:/etc/ssh/sshd_config):&
&&& 注意:在所有机子都需要安装ssh。
2)& 配置:
在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个datanode上的各种守护进程的,这就须要在节点之间执行指令的时候是不须要输入密码的形式,故我们须要配置SSH运用无密码公钥认证的形式。
以本文中的三台机器为例,现在node1是主节点,他须要连接node2和node3。须要确定每台机器上都安装了ssh,并且datanode机器上sshd服务已经启动。
( 说明:hadoop@hadoop~]$ssh-keygen& -t& rsa
这个命令将为hadoop上的用户hadoop生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时候,直接回车,也就是将其设定为空密码。生成的密钥对id_rsa,id_rsa.pub,默认存储在/home/hadoop/.ssh目录下然后将id_rsa.pub的内容复制到每个机器(也包括本机)的/home/dbrg/.ssh/authorized_keys文件中,如果机器上已经有authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容,如果没有authorized_keys这个文件,直接复制过去就行.)
3) 首先设置namenode的ssh为无需密码的、自动登录。
切换到hadoop用户( 保证用户hadoop可以无需密码登录,因为我们后面安装的hadoop属主是hadoop用户。)
$ su hadoop
cd /home/hadoop
$ ssh-keygen -t rsa
然后一直按回车
完成后,在home跟目录下会产生隐藏文件夹.ssh
之后ls 查看文件
cp id_rsa.pub& authorized_keys
$ssh localhost
$ ssh node1 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
第一次ssh会有提示信息:
The authenticity of host ‘node1 (10.64.56.76)’ can’t be established.
RSA key fingerprint is 03:e0:30:cb:6e:13:a8:70:c9:7e:cf:ff:33:2a:67:30.
Are you sure you want to continue connecting (yes/no)?
输入 yes 来继续。这会把该服务器添加到你的已知主机的列表中
发现链接成功,并且无需密码。
4 ) 复制authorized_keys到node2 和node3 上
为了保证node1可以无需密码自动登录到node2和node3,先在node2和node3上执行
$ su hadoop
cd /home/hadoop
$ ssh-keygen -t rsa
一路按回车.
然后回到node1,复制authorized_keys到node2 和node3
[hadoop@hadoop .ssh]$ scp authorized_keys&& node2:/home/hadoop/.ssh/
[hadoop@hadoop .ssh]$ scp authorized_keys&& node3:/home/hadoop/.ssh/
这里会提示输入密码,输入hadoop账号密码就可以了。
改动你的 authorized_keys 文件的许可权限
[hadoop@hadoop .ssh]$chmod 644 authorized_keys
测试:ssh node2或者ssh node3(第一次需要输入yes)。
如果不须要输入密码则配置成功,如果还须要请检查上面的配置能不能正确。
2.5 安装Hadoop
#切换为hadoop用户
下载安装包后,直接解压安装即可:
$ tar -zxvfhadoop-0.20.203.0rc1.tar.gz&
1 ) 安装Hadoop集群通常要将安装软件解压到集群内的所有机器上。并且安装路径要一致,如果我们用HADOOP_HOME指代安装的根路径,通常,集群里的所有机器的&&& &
&&&& HADOOP_HOME路径相同。
2 )& 如果集群内机器的环境完全一样,可以在一台机器上配置好,然后把配置好的软件即hadoop-0.20.203整个文件夹拷贝到其他机器的相同位置即可。
3 )& 可以将Master上的Hadoop通过scp拷贝到每一个Slave相同的目录下,同时根据每一个Slave的Java_HOME 的不同修改其hadoop-env.sh 。
4)&& 为了方便,使用hadoop命令或者start-all.sh等命令,修改Master上/etc/profile 新增以下内容:
&&& export HADOOP_HOME=/home/hadoop/hadoop-0.20.203
&&& exportPATH=$PATH:$HADOOP_HOME/bin
&& 修改完毕后,执行source /etc/profile 来使其生效。&
6)配置conf/hadoop-env.sh文件
配置conf/hadoop-env.sh文件
export JAVA_HOME=/usr/lib/jvm/java-6-sun/
这里修改为你的jdk的安装位置。
测试hadoop安装:
Bin/hadoop jar hadoop-0.20.2-examples.jarwordcount& conf/ & /tmp/out
3. 集群配置(所有节点相同)
3.1配置文件:conf/core-site.xml
&?xml version=&1.0&?&
&?xml-stylesheet type=&text/xsl&href=&configuration.xsl&?&
&configuration&
&property&
&&name&fs.default.name&/name&
& &value&hdfs://node1:49000&/value&
&/property&
&property&
& &name&hadoop.tmp.dir&/name&
&&value&/home/hadoop/hadoop_home/var&/value&
&/property&
&/configuration&
1)fs.default.name是NameNode的URI。hdfs://主机名:端口/
2)hadoop.tmp.dir :Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。
3.2配置文件:conf/mapred-site.xml
&?xmlversion=&1.0&?&
&?xml-stylesheettype=&text/xsl& href=&configuration.xsl&?&
&configuration&
&property&
& &name&mapred.job.tracker&/name&
& &value&node1:49001&/value&
&/property&
&property&
& &name&mapred.local.dir&/name&
&&value&/home/hadoop/hadoop_home/var&/value&
&/property&
&/configuration&
1)mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。
3.3配置文件:conf/hdfs-site.xml
&?xmlversion=&1.0&?&
&?xml-stylesheettype=&text/xsl& href=&configuration.xsl&?&
&configuration&
&property&
&name&dfs.name.dir&/name&
&value&/home/hadoop/name1, /home/hadoop/name2&/value& #hadoop的name目录路径
&description&& &/description&
&/property&
&property&
&name&dfs.data.dir&/name&
&value&/home/hadoop/data1, /home/hadoop/data2&/value&
&description& &/description&
&/property&
&property&
& &name&dfs.replication&/name&
& &!-- 我们的集群又两个结点,所以rep两份 --&
& &value&2&/vaue&
&/property&
&/configuration&
1)&& dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
2)&& dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。
3)dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。
注意:此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。
3.4配置masters和slaves主从结点
配置conf/masters和conf/slaves来设置主从结点,注意最好使用主机名,并且保证机器之间通过主机名可以互相访问,每个主机名一行。
vi masters:
vi slaves:
配置结束,把配置好的hadoop文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其他机器而言正确,例如:如果其他机器的Java安装路径不一样,要修改conf/hadoop-env.sh&
$&scp -r /home/hadoop/hadoop-0.20.203 root@node2: /home/hadoop/
4 hadoop启动
4.1 格式化一个新的分布式文件系统
先格式化一个新的分布式文件系统
$&cd hadoop-0.20.203
$&bin/hadoop namenode -format
成功情况下系统输出:
12/02/06 00:46:50 INFO namenode.NameNode:STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:&& host = ubuntu/127.0.1.1
STARTUP_MSG:&& args = [-format]
STARTUP_MSG:&& version = 0.20.203.0
STARTUP_MSG:&& build =http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203-r 1099333; compiled by 'oom' on Wed May 4 07:57:50 PDT 2011
************************************************************/
12/02/ INFO namenode.FSNamesystem: fsOwner=root,root
12/02/06 00:46:50 INFO namenode.FSNamesystem:supergroup=supergroup
12/02/06 00:46:50 INFO namenode.FSNamesystem:isPermissionEnabled=true
12/02/06 00:46:50 INFO common.Storage: Imagefile of size 94 saved in 0 seconds.
12/02/06 00:46:50 INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name1 has been successfully formatted.
12/02/06 00:46:50 INFO common.Storage: Imagefile of size 94 saved in 0 seconds.
12/02/06 00:46:50 INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name2 has been successfully formatted.
12/02/06 00:46:50 INFO namenode.NameNode:SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode atv-jiwan-ubuntu-0/127.0.0.1
************************************************************/
查看输出保证分布式文件系统格式化成功
执行完后可以到master机器上看到/home/hadoop//name1和/home/hadoop//name2两个目录。在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop。
4.2 启动所有节点
启动方式1:
$&bin/start-all.sh (同时启动HDFS和Map/Reduce)
系统输出:
starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-ubuntu.out
node2: starting datanode, loggingto /usr/local/hadoop/logs/hadoop-hadoop-datanode-ubuntu.out
node3: starting datanode, loggingto /usr/local/hadoop/logs/hadoop-hadoop-datanode-ubuntu.out
node1: starting secondarynamenode,logging to /usr/local/hadoop/logs/hadoop-hadoop-secondarynamenode-ubuntu.out
starting jobtracker, logging to/usr/local/hadoop/logs/hadoop-hadoop-jobtracker-ubuntu.out
node2: starting tasktracker,logging to /usr/local/hadoop/logs/hadoop-hadoop-tasktracker-ubuntu.out
node3: starting tasktracker,logging to /usr/local/hadoop/logs/hadoop-hadoop-tasktracker-ubuntu.out
As you can see in slave's output above, it will automatically format it's storage directory(specified by dfs.data.dir) if it is not formattedalready. It will also create the directory if it does not exist yet.
执行完后可以到master(node1)和slave(node1,node2)机器上看到/home/hadoop/hadoopfs/data1和/home/hadoop/data2两个目录。
启动方式2:
启动Hadoop集群需要启动HDFS集群和Map/Reduce集群。
在分配的NameNode上,运行下面的命令启动HDFS:
$ bin/start-dfs.sh(单独启动HDFS集群)
bin/start-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动DataNode守护进程。
在分配的JobTracker上,运行下面的命令启动Map/Reduce:
$bin/start-mapred.sh (单独启动Map/Reduce)
bin/start-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动TaskTracker守护进程。
4.3 关闭所有节点
从主节点master关闭hadoop,主节点会关闭所有从节点的hadoop。
$&bin/stop-all.sh&
Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs).
${HADOOP_HOME}就是安装路径.
1)浏览NameNode和JobTracker的网络接口,它们的地址默认为:
NameNode - http://node1:50070/
JobTracker -
3)&& 使用netstat& –nat查看端口4是否正在使用。
4)& 使用jps查看进程
要想检查守护进程是否正在运行,可以使用 jps 命令(这是用于 JVM 进程的ps 实用程序)。这个命令列出 5 个守护进程及其进程标识符。
5)将输入文件拷贝到分布式文件系统:
$ bin/hadoop fs -mkdir input
$ bin/hadoop fs -put conf/core-site.xml input
运行发行版提供的示例程序:
$ bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+'
Q: bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+' 什么意思啊?
A: bin/hadoop jar(使用hadoop运行jar包) hadoop-0.20.2_examples.jar(jar包的名字) grep (要使用的类,后边的是参数)input output 'dfs[a-z.]+'
整个就是运行hadoop示例程序中的grep,对应的hdfs上的输入目录为input、输出目录为output。
Q: 什么是grep?
A: A map/reduce program that counts the matches of a regex in the input.
查看输出文件:
将输出文件从分布式文件系统拷贝到本地文件系统查看:
$ bin/hadoop fs -get output output
$ cat output/*
在分布式文件系统上查看输出文件:
$ bin/hadoop fs -cat output/*
统计结果:
root@v-jiwan-ubuntu-0:~/hadoop/hadoop-0.20.2-bak/hadoop-0.20.2#bin/hadoop fs -cat output/part-00000
3&&&&&& dfs.class
2&&&&&& dfs.period
1&&&&&& dfs.file
1&&&&&&dfs.replication
1&&&&&& dfs.servers
1&&&&&& dfsadmin
7. HDFS常用操作
hadoopdfs -ls 列出HDFS下的文件
hadoop dfs -ls in 列出HDFS下某个文档中的文件
hadoop dfs -put test1.txt test 上传文件到指定目录并且重新命名,只有所有的DataNode都接收完数据才算成功
hadoop dfs -get in getin 从HDFS获取文件并且重新命名为getin,同put一样可操作文件也可操作目录
hadoop dfs -rmr out 删除指定文件从HDFS上
hadoop dfs -cat in/* 查看HDFS上in目录的内容
hadoop dfsadmin -report 查看HDFS的基本统计信息,结果如下
hadoop dfsadmin -safemode leave 退出安全模式
hadoop dfsadmin -safemode enter 进入安全模式
8.添加节点
可扩展性是HDFS的一个重要特性,首先在新加的节点上安装hadoop,然后修改$HADOOP_HOME/conf/master文件,加入 NameNode主机名,然后在NameNode节点上修改$HADOOP_HOME/conf/slaves文件,加入新加节点主机名,再建立到新加节点无密码的SSH连接
运行启动命令:
start-all.sh
然后可以通过node的主机名):50070查看新添加的DataNode
start-balancer.sh,可以使DataNode节点上选择策略重新平衡DataNode上的数据块的分布
结束语:遇到问题时,先查看logs,很有帮助。
10 SHell自动安装脚本
#!/bin/bash
#validate user or group
validate() {
if [ 'id -u' == 0 ];then
echo &must not be root!&
echo &---------welcome to hadoop---------&
#hadoop install
hd-dir() {
if [ ! -d /home/hadoop/ ];then
mkdir /home/hadoop/
echo &download hadoop will begin&
download-hd() {
wget -c http://archive.apache.org/dist/hadoop/core/stable/hadoop-1.0.4.tar.gz -O /home/hadoop/hadoop-1.0.4.tar.gz
tar -xzvf /home/hadoop/hadoop-1.0.4.tar.gz -C /home/hadoop
rm /home/hadoop/hadoop-1.0.4.tar.gz
Ln -s /home/hadoop/hadoop-1.0.4 /home/hadoop/hadoop1.0.4
#hadoop conf
hd-conf() {
echo &export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386& && /home/hadoop/hadoop1.0.4/conf/hadoop-env.sh
echo &#set path jdk& && /home/hadoop/.profile
echo &export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386& && /home/hadoop/.profile
echo &#hadoop path& && /home/hadoop/.profile
echo &export HADOOP_HOME=/home/hadoop/hadoop1.0.4& && /home/hadoop/.profile
echo &PATH=$PATH:$HADOOP_HOME/bin:$JAVA_HOME/bin& && /home/hadoop/.profile
echo &HADOOP_HOME_WARN_SUPPRESS=1& && /home/hadoop/.profile
#hadoop core-site.xml
echo &&configuration&& && /home/hadoop/hadoop1.0.4/conf/core-site.xml
echo &&property&& && /home/hadoop/hadoop1.0.4/conf/core-site.xml
echo &&name&fs.default.name&/name&& && /home/hadoop/hadoop1.0.4/conf/core-site.xml
echo &&value&hdfs://hadoop-master:9000& && /home/hadoop/hadoop1.0.4/conf/core-site.xml
echo &&/property&& && /home/hadoop/hadoop1.0.4/conf/core-site.xml
echo &&property&& && /home/hadoop/hadoop1.0.4/conf/core-site.xml
echo &&name&hadoop.tmp.dir&/name&& && /home/hadoop/hadoop1.0.4/conf/core-site.xml
echo &&value&/home/hadoop/tmp&/value&& && /home/hadoop/hadoop1.0.4/conf/core-site.xml
echo &&/property&& && /home/hadoop/hadoop1.0.4/conf/core-site.xml
echo &&/configuration&& && /home/hadoop/hadoop1.0.4/conf/core-site.xml
#hadoop hdfs-site.xml
echo &&configuration&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&property&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&name&dfs.name.dir&/name&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&value&/home/hadoop/name&/value&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&/property&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&property&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&name&dfs.data.dir&/name&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&value&/home/hadoop/data&/value&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&/property&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&property&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&name&dfs.replication&/name&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&value&1&/value&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&/property&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
echo &&/configuration&& && /home/hadoop/hadoop1.0.4/conf/hdfs-site.xml
# hadoop mapred-site.xml
echo &&configuration&& && /home/hadoop/hadoop1.0.4/conf/mapred-site.xml
echo &&property&& && /home/hadoop/hadoop1.0.4/conf/mapred-site.xml
echo &&name&mapred.job.tracker&/name&& && /home/hadoop/hadoop1.0.4/conf/mapred-site.xml
echo &&value&hadoop-master:9001&/value&& && /home/hadoop/hadoop1.0.4/conf/mapred-site.xml
echo &&/property&& && /home/hadoop/hadoop1.0.4/conf/mapred-site.xml
echo &&/configuration&& && /home/hadoop/hadoop1.0.4/conf/mapred-site.xml
#hadoop master
echo &hadoop-master& && /home/hadoop/hadoop1.0.4/conf/masters
#hadoop slaves
echo &hadoop-master& && /home/hadoop/hadoop1.0.4/conf/slaves
source /home/hadoop/.profile
hd-start() {
hadoop namenode -format
yes-or-no() {
echo &Is your name $* ?&
while true
echo -n &Enter yes or no: &
case &$x& in
y | yes ) return 0;;
n | no ) return 1;;
* ) echo &Answer yes or no&;;
echo &Original params are $*&
if yes-or-no &$1&
echo &HI $1,nice name!&
download-hd
echo &Never mind!&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6930190次
积分:31815
积分:31815
排名:第162名
原创:219篇
评论:1627条
扫码打赏,你说多少就多少
(1)(1)(2)(3)(2)(4)(2)(1)(2)(1)(1)(2)(1)(1)(1)(1)(1)(2)(2)(1)(2)(3)(3)(2)(2)(2)(4)(3)(2)(15)(6)(8)(14)(29)(26)(27)(18)(7)(8)(6)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 hadoop配置文件详解 的文章

 

随机推荐