Hadoop PIG和HIVE可以称为单独的编程模型吗?

这个问题听起来可能很烦人,实际上可能与真正的编程没有任何关系。这是我和一位同事进行的一场小辩论的副产品。他一直坚持认为HIVE和PIG可以被称为单独的“编程模型”,因为当您在其中编写MapReduce作业时,您实际上不需要考虑MapReduce,尤其是在HIVE中编程时。从程序员的角度来看,MapReduce部分是完全抽象的。它完全像SQL 但我有点不同意,因为用这些语言编写的脚本最终会转换成多个mapreduce作业。因此,这些可以被称为高级编程语言来为同一模型编程。应该从等待处理的底层数据的

在Hadoop集群上运行Mahout

我是一名Mahout/Hadoop初学者 我正在尝试运行“Mahout in Action”一书中给出的Mahout示例。我能够在没有Hadoop的情况下在Eclipse中运行这些示例。 您能告诉我如何在Hadoop集群中运行相同的示例吗。此页面包含Mahout中实现的不同文章以及如何运行它们。他们中的许多人把下面的观点作为论据 -xm“执行方法:顺序或mapreduce” Mahout提到它在Hadoop 0.20.0+上工作。请参阅本教程,了解如何在Ubuntu上和上安装Hadoop。谢谢P

Hadoop HDFS如何删除块?

我是Hadoop新手 部署之后,我运行了基准测试,$hadoop-jar-hadoop-0.20.0-test.jar-TestDFSIO-write-nrFiles 1000-fileSize 10 完成工作后,我查看了集群摘要,比如1000个文件和目录,1000个块=2000个 然后我使用shell cmd删除相应的文件。那么集群摘要是:0个文件和目录1000个块=1000个总数。 我认为删除之后,集群摘要中应该没有文件和块。但实际情况是: 在我问这个问题之前是1000个街区。 但是现

在Hadoop配置单元中解码原始URL,首选非Java解决方案

我正在查询一个配置单元表,该配置单元表的字段out\u url具有原始url编码,如: http%3A%2F%2Fwww.example.com%2finder.php%3Fpage%3D260%26id%3D22 我只想提取域,这在 `如果url不是原始编码的,则解析url(out-url,'HOST') 为了解决这个问题,我做了一个丑陋的双正则表达式替换,比如: parse_url(regexp_replace(regexp_replace(out_url,'%3A',':'),'%2F',

为什么包org.apache.hadoop.mapred中的大多数类都不推荐使用?

我最近在学习Hadoop,我很好奇为什么org.apache.Hadoop.mapred中的大多数类都被弃用。这非常烦人,因为Hadoop 0.20前后MapReduce中使用的包名和类名非常相似,这使得学习Hadoop更加困难 然而,我认为投稿人做出这样的决定肯定有一些很好的理由。有人知道确切的原因吗?检查并在博客上查找开发新API背后的rational及其相关信息。请注意,旧API尚未得到认可,一些类尚未从旧API移植到新API。除非有特殊要求,否则可以使用旧的API。检查并在博客上查找开发

Hadoop FileInputFormat isSplitable false

我有一个关于FileInputFormat isSplitable方法的快速问题,我想我知道答案。如果我重写此方法以返回false,自然会有一个映射程序处理一个文件(我只有一个文件)。如果这个文件是跨HDFS分发的,那么所有的文件都将被拉到我的单个映射器中。当我用映射器处理它并创建键/值对以发送给还原器时,如果我创建了大量的键/值对,它们是否会分布在我的集群中以利用数据局部性,或者是否存在某种隐含的结果,如果我将其设为可应用false,那么这种情况就不会再发生了 当isSplitable返回fa

当MR运行时,hadoop映射分离

我是hadoop新手。 我想检查一下我是否研究过一个假设并对其提出质疑 这就是我的想法。 例如,hadoop中有5个节点,1个应该是主节点。 每个从属节点有1个MR任务。-在conf/mapred-site.xml中配置 这是我研究过的,我运行过hadoop示例。 MR在字数统计中自动决定映射任务数 问题1。它是否与块大小选项或其他内容相连接 它可以通过属性进行更改。当我运行PI和random text writer时,它被更改了 问题2。是否可以更改任何其他MR程序?我的意思是,在字数统计中,

Hadoop ApachePig:如何使用LoadCaster将可写对象转换为Pig类型?

我们是否可以加载一个包含可写键、值对的序列文件,并使用LoadCaster接口将键、值对转换为pig数据类型,从而将原始字节数组转换为pig数据类型 如果是这样,是否有一些pig代码示例可用于加载序列文件和调用LoadCaster 具体而言,我目前正在这样做: A = LOAD '/tmp/part-m-00000' using SequenceFileLoader AS (key:bytearray, value:bytearray); 到目前为止,这是可行的,但我不知道现在使用我自己创建的

访问EC2 Hadoop群集的SSH隧道

背景: 我已经在EC2实例上安装了3节点Cloudera Hadoop集群,该集群按预期工作 windows计算机上的客户端程序,用于将数据从我的计算机加载到HDFS 详情: 我的客户端程序是用Java开发的,它从windows本地磁盘读取数据并将其写入HDFS 为此,我尝试通过Putty创建SSH隧道,然后尝试使用我的windows用户名登录到远程EC2实例,但该实例不起作用。我可以使用unix用户名登录。我想知道这是正确的行为吗 我不知道我是否正确创建了隧道,但在这之后,当我尝试运行客户端程

Hadoop pig脚本中应为带引号的字符串

我编写了一个脚本,从vsql中选择: LOAD 'sql://{select * from sandesh.insights_voice_day WHERE Observation_date BETWEEN '2011-11-22' AND '2011-11-23' AND Type='total' ORDER BY Observation_date}' 它将异常显示为''应为QUOTEDSTRING?。问题出在哪里?Pig希望加载后有一个带引号的字符串,其中包含您正

Hadoop 您是否可以在不通过WebHCat(Templeton)的情况下向HDInsight提交作业?

我正在使用一个提交MapReduce作业的现有工具,并且希望不必将其更改为通过REST API(WebHCat/Templeton)提交作业-有人知道这样做的方法吗?也许可以将MapReduce服务公开给我想从中提交作业的服务器 微软发布了HDInsight.NET SDK。请参见能否详细说明您当前使用的工具及其用于提交作业的api。有很多方法可以避免使用templeton,但根据方法的不同,避免使用templeton的工作量可能与使用templeton的工作量相同。

Hadoop 用in-Reducer求和矩阵

我有一个自定义类MW。MW得到2个矩阵-(ke矩阵和val矩阵) 我正试图把所有进入减缩器的矩阵加起来 所以我需要首先解析我的字符串,并将它们存储到2个双数组中。 我得到了减速器中所有的ke矩阵和val矩阵 但我无法总结 任何建议 为了得到forloop之外的和,我将它们声明为static public class Reducer extends Reducer<IntWritable, MW, Text, Text> { static double[][] key;

Hadoop 纱线成分

什么是 节点管理器 容器 应用程序主机 纱线中(Map减少2.0) 还想知道为什么在上面链接的图表底部框中并没有应用程序主控程序 我不是在寻找它做什么,而是它是什么!! (like=>不确定container是指像spring container(这意味着jar文件列表?)还是像web服务器一样的服务器?application master是指Java类吗?节点管理器是每台机器框架代理,负责启动应用程序的容器,监视其资源使用情况(cpu、内存、磁盘、网络)并将其报告给调度程序 容器是一个抽象概

Hadoop HBase外壳-检索(仅)列值(而不是列名)

我是Hadoop和HBase的新手,尝试学习和评估它是否可以用于我的用例。作为Java新手(我基本上是Perl/Unix和DB开发者),如果可能的话,我会尝试在Hbase shell中获得解决方案 我有一个HBase表(下面的模式),我试图在其中实现历史数据(可用于审计和分析) 假设基本结构如下所示 rowkey 'cf1:id', 'cf1:price', 'cf1:user', 'cf1:timestamp' 现在,, rowkey-仪器或任何对象 id-使用此标识哪个列具有最新数

Hadoop Hbase行键过滤器、范围扫描和卡桑德拉功能

在Hbase中,我使用“app\u name\u ip\u timestamp”等行键加载数据。但这类应用将有很多。所以本质上我每分钟收集大约50k个数据点 若我必须基于ip进行查询,我可以在行键上使用子字符串过滤器,但这是一个好方法吗? 卡桑德拉能帮上忙吗? 在这种情况下,卡桑德拉的优势是什么? 如何使HBase适合使用行键子字符串筛选器并在毫秒内执行范围扫描和检索结果的情况? 在特殊查询和部分行键、范围扫描、聚合结果方面,查询cassandra和hbase的主要区别是什么?我不能谈论cass

Hadoop 正在尝试从CDH4.2升级到CDH4.5,但无法分发

我正在尝试使用cloudera Manager从CDH4.2升级到CDH4.5。 我点击CDH 4.5.0-1.cdh4.5.0.p0.30的“下载”,它显示100%,但按钮仍然显示“下载”,而不是分发。我再次点击“下载”,它仍然是一样的 有人知道会发生什么吗 谢谢, 新松

Hadoop 使用Pig LOAD语句加载新文件

我想将数据从HDFS加载到HBSE表脚本 我有如下hadfs文件夹结构: -rw-r--r-- 1 user supergroup 63 2014-05-15 20:28 dataparse/good/goodrec_051520142028 -rw-r--r-- 1 user supergroup 72 2014-05-15 20:30 dataparse/good/goodrec_051520142030 -rw-r--r-- 1 user supergroup 110 2

Hadoop RecommenderJob的问题

我已成功地将输入文件“input.txt”和“users.txt”添加到HDFS。我已经成功地分别测试了Hadoop和Mahout作业。但是,当我使用以下命令行运行RecommenderJob时: bin/hadoop jar/Applications/mahout-distribution-0.9/mahout-core-0.9-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob-Dmapred.input.dir=/us

Hadoop Spark vs MapReduce,为什么Spark比MR快,原理是什么?

据我所知,Spark将数据从每个节点的磁盘(HDFS)预加载到每个节点的RDD中进行计算。但正如我所猜测的,MapReduce还必须将数据从HDFS加载到内存,然后在内存中进行计算。所以为什么Spark更时尚? 仅仅因为MapReduce在每次MapReduce想要进行计算时都会将数据加载到内存中,而Spark会预加载数据吗?非常感谢。有一个弹性分布式数据集(RDD)的概念,Spark使用它,可以透明地将数据存储在内存中,并在需要时将其保存到光盘上 另一方面,在Map-reduce中,Map和r

如何在独立hadoop设置(伪分布式)上启动多个datanode进程

我是Hadoop新手。我已经在运行Ubuntu13.03的单个虚拟机上配置了独立的hadoop设置。使用start all.sh启动hadoop进程后,jps命令显示 775 DataNode 1053 JobTracker 962 SecondaryNameNode 1365 Jps 1246 TaskTracker 590 NameNode 据我所知,Hadoop从1个namenode和1个datanode开始。我想创建多个datanode进程,即datanode的多个实例。有什么方法可以

Hadoop 如何在MapReduce框架中编写JOB1和JOB2之间的顺序代码?

我有一个MapReduce应用程序,其中包括两个作业 我需要在Job1和Job2之间运行一个小代码。换句话说,在Job1的最终输出上运行一个小代码,Job2中的所有映射程序都可以使用这个小代码的输出 这个小代码不需要并行运行。它是一种顺序代码,应该在一台机器上运行,并在HDFS中写入输出 我想知道如何在Job1和Job2之间的应用程序代码中编写一个顺序代码,该代码将在一台机器上运行,并从HDFS读取Job1的输出,同时在HDFS中写入自己的输出。在驱动程序(main)类中,在执行Job1之后,(

Hadoop Impala-如何在查询中设置变量?

如何在Impala查询中设置变量 在SQL中: select * from users where id=(@id:=123) 在黑斑羚: impala-shell> ? 黑斑羚的版本是v2.0.0。如有任何建议,将不胜感激。谢谢 有一个开放的特性请求向impala shell添加变量替换支持:,以模拟Hive的类似特性(Hive--hivevar param=60在查询中用60替换${hivevar:param}) 您可以在其他SQL上下文中使用的变量(例如来自JDBC客户端)也不受

Hadoop ApachePig-从RCF文件存储和加载

使用旧版本的Pig,比如0.11,是否可以使用RCF文件读/写hdfs 我知道Pig版本0.14支持优化的RCF文件,如ORC文件,但我想继续使用我当前的Pig版本,即0.11Twitter上的大象鸟库()支持加载和存储RCF文件 需要的课程是 RCFilePigStorage(扩展PigStorage) 此库支持Pig版本0.8及更高版本

Hadoop 在所有使用案例中,使用定制接收器的Spark Streaming是否是水槽的更通用替代品?

我们的用例是(1)从ActiveMQ消费数据,(2)通过通用可重用流处理执行转换,然后(3)发布到Kafka。在我们的例子中,步骤(2)将是一个可重用的Spark流媒体“服务”,它将提供一个事件源id,用元数据丰富每个记录,然后发布到Kafka 我看到的直接方法是ActiveMQ->Flume->Spark Streaming->Kafka Flume似乎是一个不必要的额外步骤和网络流量。据我所知,Spark Streaming定制接收器将为hadoop提供更通用的解决方案(步骤1),并允许更灵

Hadoop 猪展平并分组

我有两个文件,我想合并这些文件以生成一个文件作为输出 file1 = "Hello world" file2 = "I am x"; c = union file1,file2; group = group c all; group = (all,{(Hello world),(I am x)}); 我希望输出为(helloworld我是x) 如何实现?我试过: res = foreach group generate flatten(all); 但它不起作用。试试这个 x = load '

Hadoop 黑斑羚能有效地利用蜂箱带扣桌子上的水桶吗?

我正在改进表的性能 请说这张桌子: CREATE TABLE user_info_bucketed(user_id BIGINT, firstname STRING, lastname STRING) COMMENT 'A bucketed copy of user_info' PARTITIONED BY(Year int, month int) STORED AS PARQUET; 我计划按user\u id应用bucketing,因为查询通常涉及user\u id作为子句 像这样 CRE

Hadoop Spark-如何按键统计记录数

这可能是一个简单的问题,但基本上我有一个数据集,我要计算每个国家的女性人数。最终,我想按国家对每个计数进行分组,但我不确定该值使用什么,因为数据集中没有一个计数列可以用作groupByKey或reduceByKey中的值。我曾想过使用reduceByKey(),但这需要一个键值对,我只想计算键值并将计数器作为值。我该怎么办 val lines = sc.textFile("/home/cloudera/desktop/file.txt") val split_lines = lines.map(

Hadoop 运行HCatalog时出错

2015-07-08 19:56:34875[main]错误org.apache.pig.tools.grunt.grunt-错误1070:无法使用导入解析HCatalogLoader:[,java.lang.,org.apache.pig.builtin.,org.apache.pig.impl.builtin.] 日志文件中的详细信息:/home/KS5023833/pig_143636410402374.log 然后我试着 A = LOAD 'eventnew.txt' USING HCa

Hadoop 配置单元1.x ACID功能-更新和删除不起作用

作为Hive1.xACID功能的一部分,更新和删除应该可以在ORC文件表上工作(我正在ClouderaCDH5.4.4中尝试) 然而,我发现它不起作用。有人能建议吗。 错误: 失败:SemanticException[错误10294]:尝试执行更新或 使用不支持这些操作的事务管理器删除 行动 这是我创建的表 create table table2_test (EmployeeID Int, FirstName String, Designation String, Salary Int,Depa

Hadoop 使用Lz4在ORC中压缩蜂窝

我正在尝试使用LZ4压缩RC和ORC文件。我已经安装了Hadoop-2.7.1和Hive-1.2.1。如果是LZ4,我可以毫无问题地压缩RC文件。但是,当我尝试使用LZ4在ORC文件中加载数据时,它不起作用。我已经创建了ORC如下表: CREATE TABLE FINANCE_orc( PERMNO STRING, DATE STRING, CUSIP STRING, NCUSIP STRING, COMNAM STRING, TICKET STR

Hadoop 将hdfs上的xml文件插入配置单元拼花地板表

我有一个gzip 3GBs xml文件,我想映射到Hive拼花地板表。 我使用xml serde将该文件解析为临时外部表,然后使用INSERT将该数据插入到配置单元拼花地板表中(我希望将该数据放置在配置单元表中,而不是在HDFS上创建xml文件的接口) 我想出了这个剧本: CREATE TEMPORARY EXTERNAL TABLE temp_table (someData1 INT, someData2 STRING, someData3 ARRAY<STRING>) ROW

Hadoop 如何在配置单元表中进行更新?

我在配置单元中有一个表,我想更新一列中的值。我知道配置单元不支持行级更新。有没有其他方法可以做到这一点 如果是,请与我分享这个问题 谢谢 Venkat配置单元支持从hive0.14或 否则,使用case语句来实现更新 例如,如果需要使用col3 Insert overwrite table tablename select col1,col2, case when condition then value else value end as col3 from tablename 从配置单元

Hadoop 在pig脚本中声明错误

结果: 消息:org.apache.pig.backend.executionengine.ExecutionException:错误2118:输入路径不存在:文件:/user/training/us_records/us-500.csv它清楚地表明输入路径:“/user/training/us_records/us-500.csv”不存在。您是否检查了它是否存在?文件在hdfs和本地文件系统中都存在。我在pig本地模式下尝试了相同的脚本。它工作正常,要在mapreduce模式下执行相同的脚本,

Hadoop 如何读取Spark中的多行元素?

当您使用sc.textfile在Spark中读取文件时,它将为您提供元素,其中每个元素都是单独的一行。但是,我希望每个元素由N行组成。我也不能使用分隔符,因为该文件中没有分隔符。那么,如何让spark给我多行元素呢 我对使用NLineInputFormat类实现这一点很感兴趣。有可能在Spark中这样做吗?我可以看到MapReduce的例子,但我不知道这将如何转化为Spark。是的,如果您是从hadoop获取文件的话。您应该能够这样做: val records = sc.newAPIHadoop

Hadoop 从配置单元中的每个列中选择不同的值

我试图从给定表中的每一列中选择不同的值。由于创建了许多MapReduce作业,我的查询缺乏性能,我正在寻找更好的解决方案 我的表格包含以下值: last_30: a last_90: a, b, a last_180: b, c 所需的输出如下: last_30#a last_90#a last_90#b last_180#b last_180#c 使用以下查询,我获得了所需的输出,但性能不是很好,因为它在表中循环了几次: SELECT distinct co

作业提交失败,出现异常“org.apache.hadoop.util.DiskChecker$DiskErrorException(任何本地目录中都没有可用空间)。”

运行配置单元查询时,出现以下错误。请帮我解决这个问题 配置单元>插入覆盖表bucket_emp1从emp中选择* 查询ID=hduser_20160426213038_58cbf1dc-a345-40f8-ab3d-a3258046b279 职位总数=3 启动作业3中的1 由于没有reduce运算符,reduce任务数设置为0 org.apache.hadoop.util.DiskChecker$DiskErrorException:任何本地目录中都没有可用空间。 位于org.apache.ha

Hadoop 如何为spark纱线簇作业设置warn.app.mapreduce.am.command-opts

在纱线群集模式下运行spark作业时,出现“容器…正在运行超出虚拟内存限制”错误。 无法忽略此错误或增加Vmem Pmem比率 作业通过spark submit提交,并带有“-conf spark.driver.memory=2800m”。 我想这是因为warn.app.mapreduce.am.command-opts的默认值是1G,所以只要我的driver/am使用超过1G的内存,warn就会杀死我的driver/am 因此,我想通过“纱线.应用程序.地图还原.am.命令选项”在bash脚本

Hadoop 配置单元从十进制转换为字符串将截断该值

使用cast()函数将十进制值转换为字符串,将截断结果值,例如: hive -e "select cast(cast('0.1629369395016511130907901977737025' as decimal(38,38)) as string)" 返回: 0.162936939501651113 0.1629369395016511130907901977737025 如果十进制首先转换为varchar,然后转换为字符串,则结果正确: hive -e "select cast(c

如何使用log4j在hadoop中编写登录的用户特定日志

使用Log4j iam尝试写入登录的用户级日志 假设我使用“X”用户登录到一台计算机,我需要在Log4J属性文件中获取用户名。因此,我可以将日志写入:/Desktop/X/final.log 同样,如果是Y用户,则应写入:/Desktop/Y/final.log 我尝试使用${user},但不起作用 log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.file=/Desktop/${user}/

Hadoop 从Pyspark以HDFS格式保存文件

我在Hive中有一个空表,我的意思是该表中没有记录 使用这个空表,我在pyspark df = sqlContext.table("testing.123_test") 我已将此数据帧注册为中的临时表 df.registerTempTable('mytempTable') date=datetime.now().strftime('%Y-%m-%d %H:%M:%S') 在这个表中,我有一个名为id的列 现在我想查询temp表,如下所示 min_id = sqlContext.sql("s

为什么Hive会首先在HADOOP_CONF_DIR中搜索其配置文件?

今天我发现,如果我将hive site.xml复制到$HADOOP\u HOME/etc/HADOOP/中,hive将使用$HADOOP\u HOME/etc/HADOOP/中的hive site.xml,而不是$hive\u HOME/conf中的,它还将在$HADOOP\u HOME/etc/HADOOP/中搜索hive-log4j.properties 如果没有找到,Hive将只使用/lib/Hive-common-1.1.0-cdh5.7.6.jar中的默认值/hive-log4j.pr

Hadoop 无法读取配置单元中Presto-Can中的数据

我有一个配置单元数据库-我创建了一个表,与拼花地板文件类型兼容 CREATE EXTERNAL TABLE `default.table`( `date` date, `udid` string, `message_token` string) PARTITIONED BY ( `dt` date) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS

Hadoop 如何将汉字插入配置单元表?

我有一个配置单元表,它由以下代码创建: CREATE TABLE IF NOT EXISTS test (datetime STRING, person_name STRING) ALTER TABLE test SET serdeproperties ('serialization.encoding'='UTF-8'); 但是,当我试图通过运行以下命令将测试行插入表中时: insert into table test values ("2010-01-01", "啊"); 它给了我以下错误

Hadoop 在HBase 1.4.9中创建表失败

我想创建演示表,例如,命名为Teacher并指定表可以存储的版本数,我编写如下语句: hbase(main):052:0> create 'Teacher', {NAME => 'username',VERSIONS => 2} An argument ignored (unknown or overridden): username An argument ignored (unknown or overridden): VERSIONS ERROR: Table must

  1    2   3   4   5   6  ... 下一页 最后一页 共 182 页