首先,我已经寻找这个有一段时间了。
我有一张看起来有点像这样的桌子:
ID Expenditure MonthYear
1A 1,000 122019
1A 1,500 012020
1B 1,900 122019
1C 2,400 122019
1B 2,400 012020
1C 900 012020
1A 800 022020
Run Code Online (Sandbox Code Playgroud)
由于行数可能达到数千行,并且某些 ID 重复数十次,因此我想将具有不同 ID 的行合并为一行,并添加保留其中所有信息的列。我想让表格看起来像这样:
ID Expenditure_1 MonthYear_1 Expenditure_2 MonthYear_2 Expenditure_3 MonthYear_3
1A 1,000 122019 1,500 012020 800 022020
1B 1,900 122019 2,400 012020 Null Null
1C 2,400 122019 900 012020 Null Null
Run Code Online (Sandbox Code Playgroud)
使用 Impala 上的 SQL 解决此问题的最佳方法是什么?谢谢。
我遇到了类似于Maven 2的问题- 测试和编译中的不同依赖版本但是指定的答案不起作用.
在我的项目中,我需要依赖于Hadoop的Cloudera发行版和JUnit测试的"vanilla"版本,因为前者仅适用于*nix.
当我尝试执行我的应用程序时,我得到了Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration.当我从Maven或Eclipse运行JUnit测试时,一切正常.如果我注释掉test依赖项,应用程序将成功运行.
为什么在取消注释依赖项compile时会忽略test依赖关系?
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>0.20.2-cdh3u2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-test</artifactId>
<version>1.0.0</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
mvn dependency:list显示以下内容,它根本不显示compile范围版本:
[INFO] The following files have been resolved:
[INFO] ant:ant:jar:1.6.5:test
[INFO] aopalliance:aopalliance:jar:1.0:compile
[INFO] asm:asm:jar:3.3.1:compile
[INFO] cglib:cglib:jar:2.2.2:compile
[INFO] ch.qos.logback:logback-classic:jar:1.0.0:compile
[INFO] ch.qos.logback:logback-core:jar:1.0.0:compile
[INFO] com.google.guava:guava:jar:r08:compile
[INFO] com.h2database:h2:jar:1.3.164:test
[INFO] com.jolbox:bonecp:jar:0.7.1.RELEASE:compile
[INFO] com.sun.jersey:jersey-core:jar:1.11:test
[INFO] commons-beanutils:commons-beanutils:jar:1.7.0:test
[INFO] commons-beanutils:commons-beanutils-core:jar:1.8.0:test
[INFO] commons-cli:commons-cli:jar:1.2:test
[INFO] …Run Code Online (Sandbox Code Playgroud) 我按照这里给出的说明设置了'hadoop' .我成功下载并部署了它,并且能够运行除historyserver之外的所有守护进程并运行示例程序.当我运行sbin/yarn-daemon.sh启动历史服务器时,会显示以下错误.
Exception in thread "main" java.lang.NoClassDefFoundError: historyserver
Caused by: java.lang.ClassNotFoundException: historyserver
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: historyserver. Program will exit.
Run Code Online (Sandbox Code Playgroud)
在这个问题上有人能帮助我吗?
Ubunut 12.04服务器AMD64
有什么建议吗?
块池Block-BP-1276073141-127.0.1.1-1357815963565(存储ID DS-1319948814-127.0.1.1-50010-1357815971500)对bpct-server-01/127.0.1.1:8020 org.apache.hadoop的服务初始化失败. ipc.RemoteException(org.apache.hadoop.hdfs.server.protocol.DisallowedDatanodeException):Datanode拒绝与namenode通信:DatanodeRegistration(127.0.0.1,storageID = DS-1319948814-127.0.1.1-50010-1357815971500,infoPort = 50075,ipcPort = 50020,storageInfo = lv = -40; cid = cluster6; nsid = 850502448; c = 0)org.apache中的org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.registerDatanode(DatanodeManager.java:566). hadoop.hdfs.server.namenode.FSNamesystem.registerDatanode(FSNamesystem.java:3358)位于org.apache.hadoop.hdfs的org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.registerDatanode(NameNodeRpcServer.java:854). protocolPB.DatanodeProtocolServerSideTranslatorPB.registerDatanode(DatanodeProtocolServerSideTranslatorPB.java:91)at org.apache.hadoop.hdfs.protocol.proto.Dat solarProtocolProtos $ DatanodeProtocolService $ 2.callBlockingMethod(DatanodeProtocolProtos.java:20018)org.apache.hadoop.ipc.ProtobufRpcEngine $ Server $ ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453)org.apache.hadoop.ipc.RPC $ Server.call (RPC.java:898)org.apache.hadoop.ipc.Server $ Handler $ 1.run(Server.java:1693)org.apache.hadoop.ipc.Server $ Handler $ 1.run(Server.java:1689) )位于org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332)的javax.security.auth.Subject.doAs(Subject.java:396)的java.security.AccessController.doPrivileged(Native Method) org.apache.hadoop.ipc.Server $ Handler.run(Server.java:1687)
at org.apache.hadoop.ipc.Client.call(Client.java:1160)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:202)
at $Proxy10.registerDatanode(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:164)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:83)
at $Proxy10.registerDatanode(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolClientSideTranslatorPB.registerDatanode(DatanodeProtocolClientSideTranslatorPB.java:149)
at …Run Code Online (Sandbox Code Playgroud) 我的映射器有一个输出:
Mapper: KEY, VALUE(Timestamp, someOtherAttrbibutes)
Run Code Online (Sandbox Code Playgroud)
我的减速机确实收到了:
Reducer: KEY, Iterable<VALUE(Timestamp, someOtherAttrbibutes)>
Run Code Online (Sandbox Code Playgroud)
我想Iterable<VALUE(Timestamp, someOtherAttrbibutes)>按Timestamp属性排序.有没有可能实现它?
我想避免在Reducer代码中手动排序.http://cornercases.wordpress.com/2011/08/18/hadoop-object-reuse-pitfall-all-my-reducer-values-are-the-same/
我将不得不从Iterable"深度复制"所有对象,这会导致巨大的内存开销.:(((
我需要在Apache Hive中挂钩自定义执行挂钩.如果有人知道怎么做,请告诉我.
我正在使用的当前环境如下:
Hadoop:Cloudera版本4.1.2操作系统:Centos
谢谢,阿伦
我目前正在开发一个带有Hadoop集群的未来项目.我需要找到有关集群安全性的信息.
我发现API Apache Knox Gateway似乎是我们需要的.我们现在与Cloudera 4.5合作.将来,我们将升级到Cloudera 5.
我的问题是Knox似乎与Cloudera 4.5不兼容(http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH-Version-and-Packaging-Information/cdhvd_topic_3. HTML).
WebHDFS 2.4.0
WebHCat/Templeton 0.13.0 0.12.0
Ozzie 4.0.0
HBase/Stargate 0.98.0
Hive (via WebHCat) 0.13.0
Hive (via JDBC) 0.13.0
Run Code Online (Sandbox Code Playgroud)
(http://knox.apache.org/books/knox-0-4-0/knox-0-4-0.html#Quick+Start)
根据该网站,这是唯一测试的版本.有没有人有这个API和Cloudera 4.5的经验?
如果它无法工作,是否有任何解决方案可以保证集群安全?
如何按周分组Impala查询结果?数据看起来像:
userguid eventtime
0 66AB1405446C74F2992016E5 2014-08-01T16:43:05Z
1 66AB1405446C74F2992016E5 2014-08-02T20:12:12Z
2 4097483F53AB3C170A490D44 2014-08-03T18:08:50Z
3 4097483F53AB3C170A490D44 2014-08-04T18:10:08Z
4 4097483F53AB3C170A490D44 2014-08-05T18:14:51Z
5 4097483F53AB3C170A490D44 2014-08-06T18:15:29Z
6 4097483F53AB3C170A490D44 2014-08-07T18:17:15Z
7 4097483F53AB3C170A490D44 2014-08-08T18:18:09Z
8 4097483F53AB3C170A490D44 2014-08-09T18:18:18Z
9 4097483F53AB3C170A490D44 2014-08-10T18:23:30Z
Run Code Online (Sandbox Code Playgroud)
预期的结果是:
date count of different userguid
2014-08-01~2014-08-07 40
2014-08-08~2014-08-15 20
2014-08-16~2014-08-23 10
Run Code Online (Sandbox Code Playgroud)
谢谢.
为什么我们使用CDH(cloudera)而不是使用Apache-Hadoop或Apache-Spark集。独自?有什么好处?
如果我想使用Apache-Spark进行数据分析,那么最好单独使用CDH或Apache-Spark Framework吗?
谢谢
在Impala中,是否可以检查数据库中的哪些表包含特定的列名?
就像是:
select tablename, columnname
from dbc.columns
where databasename = 'mydatabasename'
and columnname like '%findthis%'
order by tablename
Run Code Online (Sandbox Code Playgroud)
上面的查询在Teradata环境中工作,但是在Impala中引发错误。
谢谢,