我是Hadoop的新手并且对Hadoop管理很感兴趣,所以我尝试在Ubuntu12.04中安装Hadoop2.2.0作为伪分布式模式并成功安装并运行一些示例jar文件,现在我正在尝试进一步学习,尝试现在学习数据备份和恢复部分,谁能告诉我在hadoop2.2.0中备份和恢复数据的方法,还请推荐任何关于HadoopAdminstration的好书和学习HadoopAdminstration的步骤。提前致谢。 最佳答案 Hadoop中没有经典的备份和恢复功能。这有几个原因:HDFS使用block级复制通过冗余保护数据。HDFS可大规模扩展
我根据创建日期将数据存储在Hadoop中,所以我有多个目录在基于/data/{year}/{month}/{day}格式创建的HDFS上。我希望将这些数据加载到Hive中(定期)并创建相应的分区。目前,我正在尝试以下几种方法CREATEEXTERNALTABLEtablename(...)PARTITIONEDBY(yearSTRING,monthSTRING,daySTRING)LOCATION'/data';ALTERTABLEtablenameADDPARTITION(year='2014',month='10',day='13')LOCATION'/data/2014/10/1
我将数据以以下格式存储在hdfs中,并使用“altertableaddpartition”命令将这些数据插入到impala分区表中。/user/impala/subscriber_data/year=2013/month=10/day=01/user/impala/subscriber_data/year=2013/month=10/day=02一切正常。现在我有一个新数据,月份和年份分别为10和01。现在我需要处理这些数据并将这些数据附加到现有的hdfs目录中(年=2013/月=10/日=01)。当我尝试处理并插入到hdfs目录时,由于输出目录已经存在而给出错误。有没有办法在不删除现
我有一个包含多列的文件,其中两列是年份和月份。我正在尝试根据这两列年份和月份对表进行动态分区。我尝试了以下命令:将路径'/com/data/abc.txt'中的数据加载到表ABC_TABLE分区(年,月);下面是我得到的异常:失败:SemanticExceptionorg.apache.hadoop.hive.ql.metadata.HiveException:MetaException(消息:无效的分区键和值;键[year_cd,quarter_num,],值[]) 最佳答案 加载数据时,需要根据列值提及分区的详细信息。请参阅以下
我创建了一个公共(public)VPC,然后向其中添加了一堆节点,以便我可以将其用于spark集群。不幸的是,它们都具有如下所示的分区设置:ec2-user@sparkslave1:lsblk/dev/xvda100G/dev/xvda15.7G/我在这些机器上设置了一个云管理器,所有节点只剩下1G空间给HDFS。如何扩展分区以占用所有100G?我尝试创建/dev/xvda2,然后创建一个卷组,将所有/dev/xvda*添加到其中,但/dev/xvda1在挂载时没有添加。在这种情况下,我无法从liveCD启动,它在AWS上。我也试过resize2fs但它说根分区已经占用了所有可用的bl
我遇到了一个我无法完全理解的奇怪的HIVE行为。我真的希望有人能对这件事有所了解。我正在使用以下脚本创建表并将数据添加到表中:DROPTABLEmyTbl;CREATEEXTERNALTABLEmyTbl(Col1string,Col2string,Col3string,Col4string,)PARTITIONEDBY(partitionSTRING)LOCATION'${hiveconf:Valid_location_on_aws_s3_with_the_proper_file_to_create_table}';Hive运行脚本返回OK但(这就是问题所在)表是空的。运行:sele
我正在使用pyspark流式处理来自S3的ETL输入文件。我需要能够建立所有原始输入文件的审计线索在s3://上,我的Parquet输出在hdfs://上结束。给定一个dstream、rdd,甚至是一个特定的rdd分区,是否有可能确定s3中输入数据的原始文件名?目前我知道的唯一方法是采取rdd.toDebugString()并尝试解析它。然而,这感觉真的很hacky并且不在某些情况下工作。例如,解析调试输出对我的批处理模式导入不起作用我也在做(使用sc.TextFile("s3://...foo/*")样式的glob)。有没有人有确定原始文件名的明智方法?似乎其他一些spark用户过去
我有一个包含6个数据节点和1个名称节点的hadoop集群。但是我没有任何备用名称节点或日志节点。我知道这不是一个好的做法,但由于某些限制,我暂时必须继续这样做。谁能告诉我,如何手动备份我的名称节点元数据?我已经通过这个命令备份了fsimagehdfsdfsadmin-fetchImagesomeFilename但这就是我要做的全部吗?或者我也必须复制一份dfs.namenode.name.dir目录。如果fsimage只是问题,如果我现有的名称节点因硬件问题而宕机,我们如何恢复fsimage。如果我有dfs.namenode.name.dir目录和fsimage的副本,在那种情况下,我
我是hive的新手。有人可以帮我解决这个要求吗?我的需求是动态删除分区。我有一个结果不同区域的SQL(SQL如下:在ALTERTABLEFROM之后)。现在我想删除由我的SQL返回的区域(在我的配置单元表中分区)。我尝试了以下方法:ALTERTABLEPARTITION(region=tab.region)FROMselecttab.regionfrom(SELECT*fromTable1)tabjoin(selectfilenamefromTable2)tab1ontab1.filename=tab.filename它抛出以下异常:'1:21:13[ALTER-0row(s),0.0
在Hive中,我想用另一个表的列创建一个表,但用其中一个列对其进行分区。那可能吗?理想情况下,我想执行这样的操作:CREATETABLEifnotexistsnew_tableLIKEold_tablePARTITIONEDBY(col1int)现在它没有运行,因为我似乎无法在使用like子句后添加partitionedby。我正在寻找替代方案,因为我正在尝试编写一个通用函数,而不必专门解析或硬编码架构。 最佳答案 我想不出一种在一个查询中以通用方式执行此操作的方法。我最终使用describeold_table读取了模式,创建了带有