标签: cloudera-cdh

Spark:如何从spark shell运行spark文件


我正在使用CDH 5.2.我可以使用spark-shell来运行命令.

  1. 如何运行包含spark命令的文件(file.spark).
  2. 有没有办法在没有sbt的情况下在CDH 5.2中运行/编译scala程序?

提前致谢

scala cloudera-manager apache-spark cloudera-cdh

53
推荐指数
5
解决办法
9万
查看次数

如何查看Spark版本

如何命名,我怎么知道CentOS中安装了哪个版本的火花?

当前系统已安装cdh5.1.0.

apache-spark cloudera-cdh

43
推荐指数
6
解决办法
7万
查看次数

无法使用Spark从HDFS读取文件

我已经使用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)

hadoop apache-spark cloudera-cdh

33
推荐指数
3
解决办法
7万
查看次数

在CDH 5上找不到Spark的类com.hadoop.compression.lzo.LzoCodec?

我已经在这个问题上工作了两天,仍然没有找到方法.

问题:我们通过最新的CDH 5安装的Spark总是抱怨丢失LzoCodec类,即使我在cloudera管理器中通过Parcels安装HADOOP_LZO也是如此.我们在CDH 5.0.0-1.cdh5.0.0.p0.47上运行MR1.

尝试修复:还添加了有关"使用LZO包裹 "的官方CDH文档中的配置,但问题仍然存在.

大多数谷歌帖子都提供了类似的建议.我还怀疑火花正在试图对抗那些未在那里激活的YARN; 但我无法在CMF或其他帖子中找到有关此主题的配置.

如果您知道如何处理它,请给我一些帮助.

apache-spark hadoop-lzo cloudera-cdh

11
推荐指数
1
解决办法
2万
查看次数

连接表时Hive查询出错

我无法使用下面的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)

hadoop hive join hiveql cloudera-cdh

11
推荐指数
1
解决办法
2万
查看次数

配置错误:未配置namenode地址dfs.namenode.rpc-address

我尝试启动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)

cat hdfs-site.xml

<?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)

hadoop hdfs cloudera-cdh

10
推荐指数
3
解决办法
3万
查看次数

ETL informatica大数据版(不是云版)可以连接到Cloudera Impala吗?

我们正在尝试对Informatica大数据版本(而不是云版本)进行概念验证,我已经看到我们可以使用HDFS,Hive作为源和目标.但我的问题是Informatica是否连接到Cloudera Impala?如果是这样,我们是否需要为此添加任何其他连接器?我做了全面的研究,以检查是否支持但找不到任何东西.有没有人试过这个?如果是,您可以指定步骤并链接到任何文档吗?

Informatica版本:9.6.1(Hotfix 2)

hadoop informatica informatica-powercenter impala cloudera-cdh

10
推荐指数
1
解决办法
861
查看次数

PySpark在YARN集群上分布式处理

我使用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)

我该怎么做才能确保作业在整个群集中并行运行?

hadoop-yarn apache-spark cloudera-cdh pyspark

9
推荐指数
1
解决办法
4360
查看次数

Datastax Cassandra Driver抛出CodecNotFoundException

确切的例外情况如下

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

9
推荐指数
1
解决办法
2万
查看次数

如何有效地更新文件经常被修改的 Impala 表

我们有一个基于 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 编写的文件有时很小,所以如果可以同时合并这些文件就太好了。

hadoop impala cloudera-cdh spark-structured-streaming

9
推荐指数
1
解决办法
676
查看次数