我正在使用CDH 5.2.我可以使用spark-shell来运行命令.
提前致谢
如何命名,我怎么知道CentOS中安装了哪个版本的火花?
当前系统已安装cdh5.1.0.
我已经使用cloudera manager安装了cloudera CDH 5.
我很容易做到
hadoop fs -ls /input/war-and-peace.txt
hadoop fs -cat /input/war-and-peace.txt
Run Code Online (Sandbox Code Playgroud)
以上命令将在控制台上打印整个txt文件.
现在我启动火花壳然后说
val textFile = sc.textFile("hdfs://input/war-and-peace.txt")
textFile.count
Run Code Online (Sandbox Code Playgroud)
现在我收到一个错误
Spark上下文可用作sc.
scala> val textFile = sc.textFile("hdfs://input/war-and-peace.txt")
2014-12-14 15:14:57,874 INFO [main] storage.MemoryStore (Logging.scala:logInfo(59)) - ensureFreeSpace(177621) called with curMem=0, maxMem=278302556
2014-12-14 15:14:57,877 INFO [main] storage.MemoryStore (Logging.scala:logInfo(59)) - Block broadcast_0 stored as values in memory (estimated size 173.5 KB, free 265.2 MB)
textFile: org.apache.spark.rdd.RDD[String] = hdfs://input/war-and-peace.txt MappedRDD[1] at textFile at <console>:12
scala> textFile.count
2014-12-14 15:15:21,791 INFO [main] ipc.Client (Client.java:handleConnectionTimeout(814)) - Retrying connect …Run Code Online (Sandbox Code Playgroud) 我已经在这个问题上工作了两天,仍然没有找到方法.
问题:我们通过最新的CDH 5安装的Spark总是抱怨丢失LzoCodec类,即使我在cloudera管理器中通过Parcels安装HADOOP_LZO也是如此.我们在CDH 5.0.0-1.cdh5.0.0.p0.47上运行MR1.
尝试修复:还添加了有关"使用LZO包裹 "的官方CDH文档中的配置,但问题仍然存在.
大多数谷歌帖子都提供了类似的建议.我还怀疑火花正在试图对抗那些未在那里激活的YARN; 但我无法在CMF或其他帖子中找到有关此主题的配置.
如果您知道如何处理它,请给我一些帮助.
我无法使用下面的HIVE查询传递相等性检查.
我有3个表,我想加入这些表.我尝试如下,但得到错误:
FAILED:语义分析出错:第3:40行在JOIN'visit_date'中遇到左右别名
select t1.*, t99.* from table1 t1 JOIN
(select v3.*, t3.* from table2 v3 JOIN table3 t3 ON
( v3.AS_upc= t3.upc_no AND v3.start_dt <= t3.visit_date AND v3.end_dt >= t3.visit_date AND v3.adv_price <= t3.comp_price ) ) t99 ON
(t1.comp_store_id = t99.cpnumber AND t1.AS_store_nbr = t99.store_no);
Run Code Online (Sandbox Code Playgroud)
基于FuzzyTree的帮助编辑:
第一名:
我们尝试使用between和where子句编辑上面的查询,但是没有从查询中获取任何输出.
但是如果我们通过删除带有date的between子句来改变上面的查询,那么我得到了一些基于"v3.adv_price <= t3.comp_price"的输出,但没有使用"date filter".
select t1.*, t99.* from table1 t1 JOIN
(select v3.*, t3.* from table2 v3 JOIN table3 t3 on (v3.AS_upc= t3.upc_no)
where v3.adv_price <= t3.comp_price
) t99 ON
(t1.comp_store_id …Run Code Online (Sandbox Code Playgroud) 我尝试启动DataNode时收到此错误.根据我的阅读,RPC参数仅用于HA配置,我没有设置(我认为).
2014-05-18 18:05:00,589 INFO [main] impl.MetricsSystemImpl (MetricsSystemImpl.java:shutdown(572)) - DataNode metrics system shutdown complete.
2014-05-18 18:05:00,589 INFO [main] datanode.DataNode (DataNode.java:shutdown(1313)) - Shutdown complete.
2014-05-18 18:05:00,614 FATAL [main] datanode.DataNode (DataNode.java:secureMain(1989)) - Exception in secureMain
java.io.IOException: Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured.
at org.apache.hadoop.hdfs.DFSUtil.getNNServiceRpcAddresses(DFSUtil.java:840)
at org.apache.hadoop.hdfs.server.datanode.BlockPoolManager.refreshNamenodes(BlockPoolManager.java:151)
at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:745)
at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:278)
Run Code Online (Sandbox Code Playgroud)
我的文件看起来像:
[root @ datanode1 conf.cluster] #cat core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:8020</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>/hdfs/data</value> …Run Code Online (Sandbox Code Playgroud) 我们正在尝试对Informatica大数据版本(而不是云版本)进行概念验证,我已经看到我们可以使用HDFS,Hive作为源和目标.但我的问题是Informatica是否连接到Cloudera Impala?如果是这样,我们是否需要为此添加任何其他连接器?我做了全面的研究,以检查是否支持但找不到任何东西.有没有人试过这个?如果是,您可以指定步骤并链接到任何文档吗?
Informatica版本:9.6.1(Hotfix 2)
hadoop informatica informatica-powercenter impala cloudera-cdh
我使用YARN作为资源管理器,在Cloudera CDH5.3集群上运行Spark.我正在用Python(PySpark)开发Spark应用程序.
我可以提交作业并且它们成功运行,但是它们似乎永远不会在多台机器上运行(我提交的本地机器).
我尝试了各种选项,比如将--deploy-mode设置为cluster,将master设置为yarn-client和yarn-cluster,但它似乎永远不会在多个服务器上运行.
通过传递类似--master local [8]的东西,我可以让它在多个核心上运行,但这显然不会在多个节点上分配处理.
我有一个非常简单的Python脚本处理来自HDFS的数据,如下所示:
import simplejson as json
from pyspark import SparkContext
sc = SparkContext("", "Joe Counter")
rrd = sc.textFile("hdfs:///tmp/twitter/json/data/")
data = rrd.map(lambda line: json.loads(line))
joes = data.filter(lambda tweet: "Joe" in tweet.get("text",""))
print joes.count()
Run Code Online (Sandbox Code Playgroud)
我正在运行一个提交命令,如:
spark-submit atest.py --deploy-mode client --master yarn-client
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能确保作业在整个群集中并行运行?
确切的例外情况如下
com.datastax.driver.core.exceptions.CodecNotFoundException:找不到请求的操作的编解码器:[varchar < - > java.math.BigDecimal]
这些是我使用Spark 1.5 Datastax-cassandra 3.2.1 CDH 5.5.1的软件版本
我试图执行的代码是使用java api的Spark程序,它基本上从hdfs读取数据(csv)并将其加载到cassandra表中.我正在使用spark-cassandra-connector.最初我有很多关于google s guava库冲突的问题,我可以通过对guava库进行着色并构建一个包含所有依赖项的快照jar来解决这个问题.
但是我能够为某些文件加载数据但是对于某些文件我得到了Codec异常.当我研究这个问题时,我在同一个问题上得到了以下线程.
https://groups.google.com/a/lists.datastax.com/forum/#!topic/java-driver-user/yZyaOQ-wazk
https://groups.google.com/a/lists.datastax.com/forum/#!topic/java-driver-user/yZyaOQ-wazk
经过这些讨论之后,我理解的是它是我正在使用的cassandra-driver的错误版本.或者仍然存在与番石榴库相关的类路径问题,因为cassandra 3.0及更高版本使用guava 16.0.1,上面的讨论表明类路径中可能存在较低版本的番石榴.
这是pom.xml文件
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector-java_2.10</artifactId>
<version>1.5.0-M3</version>
</dependency>
<dependency>
<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-clientutil</artifactId>
<version>3.2.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<relocations>
<relocation>
<pattern>com.google</pattern>
<shadedPattern>com.pointcross.shaded.google</shadedPattern>
</relocation>
</relocations>
<minimizeJar>false</minimizeJar>
<shadedArtifactAttached>true</shadedArtifactAttached>
</configuration>
</execution>
</executions> …Run Code Online (Sandbox Code Playgroud) guava datastax-java-driver datastax cloudera-cdh spark-cassandra-connector
我们有一个基于 Hadoop 的解决方案 (CDH 5.15),我们在 HDFS 中的某些目录中获取新文件。在 os 这些目录上,我们有 4-5 个 Impala (2.1) 表。在 HDFS 中写入这些文件的过程是 Spark Structured Streaming (2.3.1)
现在,一旦我们将文件写入 HDFS,我们就会运行一些 DDL 查询:
ALTER TABLE table1 RECOVER PARTITONS 检测添加到表中的新分区(及其 HDFS 目录和文件)。
REFRESH table1 PARTITIONS (partition1=X, partition2=Y),使用每个分区的所有键。
现在,这个 DDL 花费的时间有点长,而且它们在我们的系统中排队,破坏了系统的数据可用性。
所以,我的问题是:有没有办法更有效地进行这种数据整合?
我们考虑过:
使用ALTER TABLE .. RECOVER PARTITONS但根据文档,它只会刷新新分区。
尝试REFRESH .. PARTITON ...一次与多个分区一起使用,但语句语法不允许这样做。
尝试批处理查询,但 Hive JDBC 驱动器不支持批处理查询。
鉴于系统已经很忙,我们是否应该尝试并行执行这些更新?
谢谢!
胜利者
注意:我们知道哪些分区需要刷新的方式是使用 HDFS 事件,就像 Spark Structured Streaming 我们不知道文件何时被写入一样。
注意#2:另外,用 HDFS 编写的文件有时很小,所以如果可以同时合并这些文件就太好了。
cloudera-cdh ×10
apache-spark ×5
hadoop ×5
impala ×2
datastax ×1
guava ×1
hadoop-lzo ×1
hadoop-yarn ×1
hdfs ×1
hive ×1
hiveql ×1
informatica ×1
join ×1
pyspark ×1
scala ×1