草庐IT

hadoop - 在名称节点崩溃损坏根 block 后重建 Accumulo

我们的开发HDP集群发生断电,损坏了Accumulo使用的一些HDFS系统block,现在集群处于安全模式并且ambari不会重新启动。作为一个DEVbox,HDFS的复制因子为1,所以我无法恢复损坏的block。重建Accumulo以完全恢复HDFS文件系统并恢复HDP集群的最佳方法是什么?accumulo中没有要保存的用户数据,因此在这种情况下删除并重新初始化就可以了。只是不确定执行此操作的最佳方法。一些腐败细节:hdfsfsck/|egrep-v'^\.+$'|grep-v副本|grep-v副本|grep"^\/"|grep“腐败”|sed's/:损坏。*//'|grep-v"^

hadoop - 我需要在哪里创建 HDFS 用户?

我必须为需要在HDFS上存储数据的应用程序创建一个帐户。我知道要在HDFS上创建用户(我使用的是HDP2.3),我必须执行这些命令:useradd-G*groupname**username*hdfsdfs-mkdir/user/*username*hdfsdfs-chown*username*:*groupname*/user/*username*我的问题是:我知道当我在HDFS上创建一个文件夹时,它不会在所有集群上复制,只有数据分布在所有数据节点上。我是要在集群的每个节点(namenode+datanode+edgenode)上执行这些命令,还是只在应用程序用来访问HDFS的节点(

hadoop - "No common protection layer between client and server"尝试与 Kerberized Hadoop 集群通信时

我正在尝试以编程方式与Kerberized(CDH5.3/HDFS2.5.0)的Hadoop集群进行通信。我在客户端有一个有效的Kerberostoken。但是我收到如下错误,“客户端和服务器之间没有公共(public)保护层”。这个错误是什么意思,有什么方法可以修复或解决它吗?这与HDFS-5688有关吗??该票似乎暗示必须设置属性“hadoop.rpc.protection”,大概是“身份验证”(也根据例如this)。这是否需要在集群中的所有服务器上设置,然后集群反弹?我无法轻松访问集群,因此我需要了解“hadoop.rpc.protection”是否是真正的原因。看起来'auth

hadoop - Camus Migration - Kafka HDFS Connect 不从设置的偏移量开始

我目前正在使用ConfluentHDFSSinkConnector(v4.0.0)来替换Camus。我们正在处理敏感数据,因此我们需要在切换到连接器期间保持偏移量的一致性。割接计划:我们创建了hdfs接收器连接器并订阅了一个写入临时hdfs文件的主题。这将创建一个名为connect-的消费者组使用DELETE请求停止了连接器。使用/usr/bin/kafka-consumer-groups脚本,我能够将连接器消费者组kafka主题分区的当前偏移量设置为所需值(即加缪写的最后偏移+1)。当我重新启动hdfs接收器连接器时,它会继续从上次提交的连接器偏移量读取并忽略设置值。我希望hdfs文

python - hadoop distcp 使用 subprocess.Popen

我正在尝试在python中使用subprocess.Popen运行hadoopdistcp命令并出现错误-输入无效。如果我作为Hadoop命令运行,相同的命令运行良好。Hadoop命令:hadoopdistcp-log/user/name/distcp_log-skipcrccheck-updatehdfs://xxxxx:8020/sourceDirhdfs://xxxxx:8020/destDir在python中:fromsubprocessimportPopen,PIPEproc1=Popen(['hadoop','distcp','-log/user/name/distcp_l

apache-spark - 文件大于 HDFS 中的 block 大小

众所周知,写入大于HDFSblock大小的单个文件并不是最佳选择,许多非常小的文件也是如此。但是,当在spark中执行repartition('myColumn)操作时,它将为每个项目创建一个分区(假设是一天),其中包含所有记录(作为单个文件),这些记录可能是几GB大小(假设20GB),而HDFSblock大小配置为256MB。文件太大真的不好吗?当读回文件时(假设它是一个可拆分文件,如parquet或带有gzip或zlib压缩的orc)spark正在为每个文件创建>>1任务,即这是否意味着我不需要担心指定maxRecordsPerFile/文件大小大于HDFSblock大小?

apache-spark - HDFS 和 Spark : Best way to write a file and reuse it from another program

我有一些来自Spark应用程序的结果作为名为part-r-0000X(X=0、1等)的文件保存在HDFS中。而且,因为我想将所有内容加入到一个文件中,所以我使用了以下命令:hdfsdfs-getmergesrcDirdestLocalFile前面的命令在bash脚本中使用,该脚本清空输出目录(保存part-r-...文件的位置),并在循环内执行上面的getmerge命令。问题是我需要在另一个Spark程序中使用生成的文件,该程序需要将该合并文件作为HDFS的输入。所以我将其保存为本地,然后将其上传到HDFS。我想到了另一种选择,即以这种方式从Spark程序写入文件:outputData

hadoop - 如何格式化NameNode?

我按照apache.org上的说明按照说明在伪分布式模式下设置Hadoop集群:Hadoop:SettingupaSingleNodeCluster;我使用的是Hadoop2.7.7,除了NameNode的格式外,一切正常。说明说:$bin/hdfsnamenode-format但是,这会输出使用信息并关闭节点:..18/08/0519:20:02INFOnamenode.NameNode:createNameNode[–format]Usage:javaNameNode[-backup]|[-checkpoint]|[-format[-clusteridcid][-force][-n

apache-spark - 您如何在 hdfs 中查看文件的行组

我遇到了这个page在jira中,我想知道如何获得相同的行组View。像这样:hdfs中是否有可以向我显示此内容的命令? 最佳答案 我报告了JIRA。我用过parquet-toolsmeta/path/to/file.parquet|grep"rowgroup"然后手动编辑输出以对齐数字。或者,您可以附加|column-t用于一些基本对齐。尽管在这种情况下数字将左对齐而不是右对齐,但至少它们会一个接一个地排列。parquet-tools本身是一个未记录的帮助程序脚本included在Parquet先生。您可以调用hadoopjar/

hadoop - 如何显示包含特殊字符串的 HDFS 文件中的特定行

我有这些行DIS_CD_RLT_PSE,D,,177959,10.425719262087393DIS_CD_RLT_PSE,E,,811061,47.5159687929684DIS_CD_RLT_PSE,I,,113424,6.6449394612410755DIS_CD_RLT_PSE,M,,404023,23.66966758313058DIS_CD_RLT_PSE,P,,28083,1.6452411737377726DIS_CD_RLT_PSE,U,,142155,8.32814368310697DIS_CD_RLT_PSE,Z,,30218,1.7703200437278