我有一个带有一个主节点和一个从节点的小型hadoop集群,由于某种原因,必须将主节点移动到另一台机器上。虽然我可以很容易地重新配置节点,并且我有迁移配置单元元数据和其他内容的策略,但我担心的是HDFS。我是否必须在目标机器上移动hadoop_tmp(我的hdfs所在的位置)的文件?或者集群将通过从服务器复制文件来重建?我害怕登陆不一致的hdfs,什么是最好的? 最佳答案 DistCP将是最好的方法。DistCP 关于hadoop-在另一个盒子中移动hadoop主节点:howtohandl
HDFS的默认block大小为60MB。那么,这是否意味着HDFS中的文件的最小大小为60MB?即如果我们创建/复制一个大小小于60MB(比如5字节)的文件,那么我的假设是HDFS中的文件的实际大小是1个block,即60MB。但是,当我将一个5字节的文件复制到HDFS时,当我看到文件的大小时(通过ls命令)我仍然看到该文件的大小为5字节。不应该是60MB吗?或者ls命令显示文件中数据的大小而不是HDFS上文件的block大小? 最佳答案 hdfsblock的默认大小并不意味着它将使用我们指定的所有空间,即60MB。如果数据大于60
我想使用snakebite来检查hdfs目录中是否存在文件,如果不存在则创建。我正在关注touchzhere上的文档并像这样使用它:defcreateFile(client):ifclient.test("/user/test/sample.txt",exists=True):print"fileexists"else:print"filenotexist,createfile"printclient.touchz(["/user/test/sample.txt"])client=Client(remote_host,8020,use_trash=False)createFile(cl
Hive在HDFS上运行。它的默认目的地是HDFS中的“/user/hive/warehouse”。使用Hive我们可以创建表和“ALTER”。更改表包括删除/修改表中的现有列(驻留在HDFS中的某处!!!)。写入HDFS的任何内容都无法修改。但是Hive的alter也在做同样的事情。这怎么可能?任何想法! 最佳答案 您只更改表的元数据-而不是数据本身。另外,请注意hive中没有dropcolumn指令。 关于hadoop-Hive如何或为什么允许更改表?是不是违反了HDFS的一次写入多
我有一个hdfs目录,因为我有很多文件。这个目录正在获取连续数据。现在我正在尝试为该HDFS位置创建一个外部分区表,如下所示,createexternaltablesensor_data(sensor_namestring,alert_typestring,isvalid_alertboolean,valuestring,alert_generated_timebigint)partitionedby(mac_idstring)clusteredby(sensor_name)into13bucketsrowformatdelimitedfieldsterminatedby'|'line
我有一个用例,我想使用flume将远程文件复制到hdfs。我还希望复制的文件应与HDFSblock大小(128MB/256MB)对齐。远程数据的总大小为33GB。我正在使用avrosource和sink将远程数据复制到hdfs中。类似地,从接收器端我正在滚动文件大小(128,256)。但是为了从远程机器复制文件并将其存储到hdfs(文件大小128/256MB)中,flume平均需要2分钟。水槽配置:Avro源(远程机器)###Agent1-SpoolingDirectorySourceandFileChannel,AvroSink####Namethecomponentsonthisa
我有1个HDFS和我的本地系统,我从那里执行我的程序以在同一个hdfs系统中执行复制。比如:hadoopfs-cp/user/hadoop/SrcFile/user/hadoop/TgtFile我正在使用:FileUtil.copy(FileSystemsrcFS,FileStatussrcStatus,FileSystemdstFS,Pathdst,booleandeleteSource,booleanoverwrite,Configurationconf)但奇怪的事情发生了,当我从命令行复制时,复制只需要一点时间,但当我以编程方式执行时,复制190MB的文件需要10-15分钟。对我
我们有PHD3.0版本的hadoop集群,用于5个节点,使用安装在rackspace上的ambari。我们必须迁移到Google云(GCP)。但没有得到步骤如何进行以下操作Q1:如何将数据、元数据配置从旧机器迁移到新机器。(旧机器版本是cantos6.5目标机器版本是centos6.5)Q2:要备份哪些组件和文件夹?命令是什么?Q3:如何备份nameode和datanodes?Q4:ambari数据库也需要备份吗?如有任何帮助,我们将不胜感激? 最佳答案 我个人更喜欢在GCP中配置hadoop集群,并使用distcp将数据移动到新集
我通过-v挂载本地文件夹在Docker中运行hadoop集群。然后我登录hadoop集群并“cd”到安装文件夹并执行hdfsdfs-put./data/*input/。它有效。但我的问题是我无法删除复制到hdfs的数据。我通过dockerrm删除容器,但数据仍然存在。现在我只能重置Docker,数据可以被删除。还有其他解决办法吗?这是我的docker信息➜hadoopdocker信息容器:5运行:5暂停:0停止:0图片:1服务器版本:1.12.3存储驱动:aufs根目录:/var/lib/docker/aufs支持文件系统:extfs目录:22支持Dirperm1:true记录驱动程序
我运行一个有32个从站的HDFS。每个slave大约有300GB的本地剩余磁盘空间(其余的不用于HDFS。)当我放置32*100GB的文件时,这些文件只传送给了一些奴隶。由于磁盘空间不足,它使任务崩溃。如何避免这个问题? 最佳答案 我不是管理员,但这是我看到您的问题时想到的第一件事。Hadoop是一个“拓扑感知”系统。请阅读它here.如果拓扑不正确,则使用默认复制(3x)的HDFS写入将按顺序写入(随机节点-->不同机架上的节点-->与第二个副本相同的机架,但不同节点)。检查复制因子也是个好主意。希望这对您有所帮助!