天道酬勤,学无止境

hadoop

why mapreduce doesn't get launched when using hadoop fs -put command?

问题 请原谅我这个基本问题。 但是我想知道为什么当我们尝试加载一些大小超过块大小的文件时,mapreduce 作业没有启动。 在某处我了解到 MapReduce 将负责将数据集从 LFS 加载到 HDFS。 那为什么当我发出 hadoop fs -put 命令时,我无法在控制台上看到 mapreduce 日志? 提前致谢。 回答1 您正在考虑将产生 MapReduce 作业的 hadoop distcp。 https://hadoop.apache.org/docs/stable/hadoop-distcp/DistCp.html DistCp 版本 2(分布式副本)是用于大型集群间/集群内复制的工具。 它使用 MapReduce 来影响其分布、错误处理和恢复以及报告。 它将文件和目录列表扩展为映射任务的输入,每个任务都将复制源列表中指定的文件的一个分区。 hadoop fs -put或hdfs dfs -put完全由 HDFS 实现,不需要 MapReduce。

2022-05-17 03:47:04    分类:技术分享    hadoop   mapreduce   hdfs

HDFS replication property not reflecting as defined in hfs-site.xml

问题 我正在使用 HDFS 并将 hfs-site.xml 中的复制因子设置为 1,如下所示: <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/Users/***/Documnent/hDir/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/Users/***/Documnent/hDir/hdfs/datanode</value > </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration> 但是当我尝试将文件从本地系统复制到 hdfs 文件系统时,我发现该文件的复制因子为 3。这是在

2022-05-16 20:33:04    分类:技术分享    java   hadoop   hdfs   replication

Unable to restart Hue in EMR

问题 我无法在 AWS EMR Hadoop 集群中重新启动 Hue。 我已经修改了hue.ini 文件并想重新启动hue 以应用更改。当我运行“service hue restart”时,它给出了“command not found”错误。 我可以理解,这一定是因为环境路径中没有添加hue。 但是,当我运行 bin/hue 时,它​​不会将重新启动作为输入。 有没有办法重新启动色调? 我正在使用 Hue 3.7.1-amzn-7、emr-4.8.4 和 Amazon 2.7.3 Hadoop 发行版。 提前致谢。 回答1 重启过程取决于您使用的 EMR AMI 版本。 在 EMR 4.xx 和 5.xx AMI 上, 服务管理由upstart处理,而不是传统的SysVInit脚本。 因此,预计会出现“找不到命令”之类的错误。 可以使用 upstart 食谱中的 upstart 命令查询服务 EMR 上的服务列表: grep -ir "env DAEMON=" /etc/init/ | cut -d"\"" -f2 hadoop-yarn-resourcemanager oozie hadoop-hdfs-namenode hive-hcatalog-server hadoop-mapreduce-historyserver hue hadoop-kms hadoop-yarn

2022-05-16 20:07:15    分类:技术分享    hadoop   emr   hue

MrJob multi step job execution time

问题 显示多步映射减少作业的执行时间的最佳方法是什么? 我试图在作业的step1的 mapper init 中设置一个 self 变量 def mapper_init_timer(self): self.start= time.process_time() 但是当我尝试在Step2的 reducer_final 中阅读此内容时 def reducer_final_timmer(self): #self.start is None here MRJob.set_status(self,"total time") 我无法弄清楚为什么在步骤之间会丢失自我验证。 如果这是设计使然,那么我们如何计算 MrJob 脚本的执行时间,该脚本在使用 -r hadoop 运行时也会给出正确的结果。 回答1 from datetime import datetime import sys if __name__ == '__main__': start_time = datetime.now() MRJobClass.run() end_time = datetime.now() elapsed_time = end_time - start_time sys.stderr.write(elapsed_time)

2022-05-16 06:03:04    分类:技术分享    python   hadoop   mrjob

java.lang.ClassNotFoundException: Class org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe not found in Hive

问题 我正在尝试在配置单元中处理多字符分隔符。 我已经成功创建了一个相同的表 create external table showtmp3(doc_name STRING,doc_content STRING) row format SERDE 'org.apache.hadoop.hive.serde2.MultiDelimitSerDe' WITH SERDEPROPERTIES ('field.delim'='#a#') location '/unmesha/OUT'; 然后我需要发出如下查询。 INSERT OVERWRITE DIRECTORY '/unmesha/OUT_tmpShowData' SELECT * showtmp3 limit 10; 但它给了我下面的错误 Error: java.lang.RuntimeException: Error in configuring object at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109) at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:75) at org.apache.hadoop.util

2022-05-16 05:05:11    分类:技术分享    hadoop   hive   hive-serde

How to pass ElasticSearch query to hadoop

问题 我正在开发一个允许在 Hadoop 上搜索的项目。 它的工作原理是首先将查询传递给 ES,然后将生成的 ID 传递回 SQL,如下所示: SELECT ... WHERE id in [1,24,383,2912,...] 当我们有 100 或 1000 个 id 要传回 SQL-on-Hadoop 时,这很有效,但如果我们有 100K 或 1M+ id 要传回,则效果不佳。 有哪些替代方法可以将结果集(id 列表?)从 ES 传递回 SQL? 回答1 将所有弹性搜索ID 插入到单独的表中,然后将其与源表连接。 例如 CREATE TABLE ELASTIC_SEARCH_ID(id INT); SELECT ... FROM SOURCE S JOIN ELASTIC_SEARCH_ID ES ON S.ID=ES.ID;

2022-05-16 02:34:03    分类:技术分享    sql   hadoop   elasticsearch   presto

channel lock error while configuring flume's multiple sources using FILE channels

问题 使用 FILE 通道为代理配置多个源并引发锁定错误。 下面是我的配置文件。 a1.sources = r1 r2 a1.sinks = k1 k2 a1.channels = c1 c3 #sources a1.sources.r1.type=netcat a1.sources.r1.bind=localhost a1.sources.r1.port=4444 a1.sources.r2.type=exec a1.sources.r2.command=tail -f /opt/gen_logs/logs/access.log #sinks a1.sinks.k1.type=hdfs a1.sinks.k1.hdfs.path=/flume201 a1.sinks.k1.hdfs.filePrefix=netcat- a1.sinks.k1.rollInterval=100 a1.sinks.k1.hdfs.fileType=DataStream a1.sinks.k1.hdfs.callTimeout=100000 a1.sinks.k2.type=hdfs a1.sinks.k2.hdfs.path=/flume202 a1.sinks.k2.hdfs.filePefix=execCommand- a1.sinks.k2.rollInterval=100 a1.sinks

2022-05-16 00:30:14    分类:技术分享    hadoop   flume   flume-ng

HDFS resiliency to machine restarts in DC/OS

问题 回答1 最终,问题出现在 DC/OS 的 Universe HDFS 包的错误版本中。 然而,一个全新的 DC/OS 的 HDFS 包将在接下来的几周内在 Universe 上发布。 https://dcos-community.slack.com/archives/data-services/p1485717889001709 https://dcos-community.slack.com/archives/data-services/p1485801481001734 回答2 像您这样的 HA 部署的 HDFS 弹性模型的快速摘要: 两个 NameNode 形成一个活动/备用对。 在活动机器重新启动的情况下,系统会检测到活动机器的故障,备用机器将作为新的活动机器接管。 一旦机器完成重启,NameNode 进程将再次运行,并成为新的备用节点。 除非两个 NameNode 同时停机,否则不会停机。 主机上的数据(例如 fsimage 元数据文件)通常在重新启动之间进行维护。 如果您的环境不是这种情况,那么您将需要额外的恢复步骤来重新建立备用数据库,例如通过运行hdfs namenode -bootstrapStandby命令。 3 个 JournalNode 构成一个仲裁。 在机器重启的情况下,NameNode 可以继续将其编辑日志事务写入剩余的 2 个

2022-05-16 00:14:05    分类:技术分享    hadoop   hdfs   mesos   marathon   dcos

Cannot connect to beeline hive2

问题 Hadoop 2.7.3 和 Hive 2.1.0 我可以像这样连接到直线 !connect jdbc:hive2:// 但是当我输入 !connect jdbc:hive2://hostname:10000/default org.apache.hive.jdbc.HiveDriver 或 !connect jdbc:hive2://hostname:10000/default 给出用户名和密码后,它给了我一个错误 错误:无法打开与 jdbc:hive2://:10000 的连接:java.net.ConnectException:连接被拒绝(状态=08S01,代码=0) 在 CLI 中: which: no hbase in (/user/local/maven/bin:/user/local/maven/bin:/user/local/maven/bin:/user/local/maven/bin:/user/local/maven/bin:/usr/local/rvm/gems/ruby-2.1.2/bin:/usr/local/rvm/gems/ruby-2.1.2@global/bin:/usr/local/rvm/rubies/ruby-2.1.2/bin:/usr/lib64/qt-3.3/bin:/user/local/maven/bin:/usr

2022-05-15 10:22:04    分类:技术分享    java   hadoop   jdbc   hive

Run multiple reducers on single output from mapper

问题 我正在使用 map reduce 实现左连接功能。 左侧有大约 6 亿条记录,右侧有大约 2300 万条记录。 在映射器中,我使用左连接条件中使用的列来制作键,并将键值输出从映射器传递到减速器。 我遇到了性能问题,因为两个表中的值数量都很高(例如分别为 456789 和 78960)的映射器键很少。 即使其他减速器完成了他们的工作,这些减速器也会继续运行更长的时间。 有没有什么方法可以让多个 reducer 并行处理 mapper 的相同键值输出以提高性能? 这是我要优化的 Hive 查询。 select distinct a.sequence, a.fr_nbr, b.to_nbr, a.fr_radius, a.fr_zip, a.latitude as fr_latitude, a.longitude as fr_longitude, a.to_zip, b.latitude as to_latitude, b.longitude as to_longitude, ((2 * asin( sqrt( cos(radians(a.latitude)) * cos(radians(b.latitude)) * pow(sin(radians((a.longitude - b.longitude)/2)), 2) + pow(sin(radians((a.latitude -

2022-05-15 09:35:04    分类:技术分享    hadoop   mapreduce   reduce   hadoop2   mapper