我在名为hadoop.
该core-site.xml文件的fs.defaultFS(相当于fs.default.name)设置为以下内容:
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop:8020</value>
</property>
Run Code Online (Sandbox Code Playgroud)
我有一个非常简单的表test_table,该表当前存在于 HDFS 上的 Hive 服务器中。也就是说,它存储在/user/hive/warehouse/test_table. 它是在 Hive 中使用一个非常简单的命令创建的:
CREATE TABLE new_table (record_id INT);
Run Code Online (Sandbox Code Playgroud)
如果我尝试在本地将数据加载到表中(即使用LOAD DATA LOCAL),一切都会按预期进行。但是,如果数据存储在 HDFS 上并且我想从那里加载,则会出现问题。
我运行一个非常简单的查询来尝试加载:
hive> LOAD DATA INPATH '/user/haduser/test_table.csv' INTO TABLE test_table;
Run Code Online (Sandbox Code Playgroud)
这样做会导致以下错误:
FAILED: SemanticException [Error 10028]: Line 1:17 Path is not legal ''/user/haduser/test_table.csv'':
Move from: hdfs://hadoop:8020/user/haduser/test_table.csv to: hdfs://localhost:8020/user/hive/warehouse/test_table is not valid.
Please check that values for params "default.fs.name" and "hive.metastore.warehouse.dir" do not conflict.
Run Code Online (Sandbox Code Playgroud)
正如错误所述,它正试图从 …
stackoverflow的同事们帮助我弄清楚了如何在ubuntu开发机器上确定特定的cloudera版本。(dpkg -l | grep cdh)。
现在,我想摸索这些资源,但是我不确定该去哪里下载它们。假设我要下载hdfs来源(带有适用于cdh5.3.0的cloudera mods):
dpkg显示的版本是:
hadoop-hdfs 2.5.0 + cdh5.3.0 + 781-1.cdh5.3.0.p0.54〜precise
现在,如果我转到此github存储库:https : //github.com/cloudera/hadoop-hdfs 我看不到任何包含字符串'5.3.0'的标签。
所以我被困在哪里看。任何指针将不胜感激。
尝试在 ubuntu 14.04 上安装 cloudera 时出现以下错误。
Installation failed. Failed to receive heartbeat from agent.
Ensure that the host's hostname is configured properly.
Ensure that port 7182 is accessible on the Cloudera Manager Server (check firewall rules).
Ensure that ports 9000 and 9001 are not in use on the host being added.
Check agent logs in /var/log/cloudera-scm-agent/ on the host being added. (Some of the logs can be found in the installation details).
If Use TLS Encryption for Agents is enabled …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 java 程序访问 Hive 表,但看起来我的程序在默认数据库中没有看到任何表。但是,我可以看到相同的表并通过 spark-shell 查询它们。我已经在 spark conf 目录中复制了 hive-site.xml。唯一的区别 - spark-shell 运行的是 spark 1.6.0 版,而我的 java 程序运行的是 Spark 2.1.0
package spark_210_test;
import java.util.List;
import org.apache.spark.SparkConf;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
public class SparkTest {
private static SparkConf sparkConf;
private static SparkSession sparkSession;
public static void main(String[] args) {
String warehouseLocation = "hdfs://quickstart.cloudera/user/hive/warehouse/";
sparkConf = new SparkConf().setAppName("Hive Test").setMaster("local[*]")
.set("spark.sql.warehouse.dir", warehouseLocation);
sparkSession = SparkSession
.builder()
.config(sparkConf)
.enableHiveSupport()
.getOrCreate();
Dataset<Row> df0 = sparkSession.sql("show tables");
List<Row> currentTablesList = df0.collectAsList();
if (currentTablesList.size() …Run Code Online (Sandbox Code Playgroud) 我想找到我的 Hive 版本,我使用的是Cloudera Hadoop发行版,
是否可以使用配置单元编辑器找到配置单元版本?
我正在使用带有 MRv1 的 CDH4。据我所知,没有用于检查已完成作业的“状态”的命令行工具。当我转到 Web 控制台作业详细信息页面时,我可以看到“状态:失败”或“状态:成功”。如果我运行mapred job -list all或mapred job -status job_201309231203_0011,既不指示“失败”或“成功”。
我错过了其他一些命令吗?
我有一个映射器。
for line in sys.stdin:
#if line is from file1
#process it based on some_arbitrary_logic
#emit k,v
#if line is from file2
#process it based on another_arbitrary_logic
#emit k, v
Run Code Online (Sandbox Code Playgroud)
我需要通过 hadoop 流 API-input file1和另一个-input file2.
我如何实现这一目标?我怎么知道STDINhadoop流给我的哪一行属于哪个文件?
更新
File1
Fruit, Vendor, Cost
Oranges, FreshOrangesCompany, 50
Apples, FreshAppleCompany, 100
File2
Vendor, Location, NumberOfOffices
FreshAppleCompany, NewZealand, 45
FreshOrangeCompany, FijiIslands, 100
Run Code Online (Sandbox Code Playgroud)
我需要做的是打印出他们卖橙子的办公室数量。
Oranges 100.
所以这两个文件都需要到INPUT映射器。
我正在尝试在VM上安装本地群集.当我打开Cloudera Manager时,有时主机运行状况检查显示为失败,错误消息基本上显示"DNS解析失败".有时HDFS服务显示为失败.我想在其他途径上有一些想法进行故障排除.我很确定使用hosts文件或DNS的某些东西很简单.我的操作系统是Ubuntu.
到目前为止,我已经编辑/ etc/hosts以获得运行ifconfig时获得的确切ipv4地址
10.2.0.15 michael-VirtualBox
Run Code Online (Sandbox Code Playgroud)
我删除了条目
127.0.0.1 localhost
我也重新启动了网络服务.我执行了命令
"python -c "import socket; print socket.getfqdn(); print socket.gethostbyname(socket.getfqdn())""
我回来了
127.0.0.1
localhost
我正在使用 Impala JDBC 驱动程序将数据批量插入到 Impala 中。我目前的批处理大小为 1000,并使用PreparedStatement 的 INSERT INTO VALUES 子句来执行批处理查询。Impala Daemon 在 3 台机器上运行,Impala Catalog Server、状态存储在第 4 台机器上运行。
Impala 上的批量插入查询计划如下所示:
Query Timeline: 35s398ms
- Query submitted: 0.000ns (0.000ns)
- Planning finished: 34s822ms (34s822ms)
- Submit for admission: 34s886ms (63.997ms)
- Completed admission: 34s886ms (0.000ns)
- Ready to start 1 fragment instances: 34s886ms (0.000ns)
- All 1 fragment instances started: 34s958ms (71.997ms)
- DML data written: 35s082ms (123.996ms)
- DML Metastore update finished: 35s286ms (203.993ms)
- Request finished: 35s298ms …Run Code Online (Sandbox Code Playgroud) 我使用Spark 1.6.0和Cloudera 5.8.3.
我有一个DStream对象,并在其上定义了大量的转换,
val stream = KafkaUtils.createDirectStream[...](...)
val mappedStream = stream.transform { ... }.map { ... }
mappedStream.foreachRDD { ... }
mappedStream.foreachRDD { ... }
mappedStream.map { ... }.foreachRDD { ... }
Run Code Online (Sandbox Code Playgroud)
有没有办法注册foreachRDD保证最后执行的最后一个并且只有在上面的foreachRDDs完成执行时?
换句话说,当Spark UI显示作业已完成时 - 就在我想要执行轻量级函数时.
API中是否有允许我实现的内容?
谢谢
刚刚开始使用Spark和Scala。我们已经在我们的dev cloudera hadoop集群上安装了Spark 2,而我正在使用spark2-shell。我正在读一本书以学习一些基础知识。它的示例显示println(foo)在不执行收集的情况下工作,但这对我不起作用:
scala> val numbers = sc.parallelize(10 to 50 by 10)
numbers: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[9] at parallelize at <console>:24
scala> numbers.collect().foreach(println)
10
20
30
40
50
scala> numbers.foreach(x => println(x))
scala>
Run Code Online (Sandbox Code Playgroud)
如您所见,除非我执行collect(),否则什么都不会打印。
这是怎么回事,这本书是错的,还是我的spark / scala / config有点有趣?
版本信息:
Spark version 2.0.0.cloudera2
Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_111)
Run Code Online (Sandbox Code Playgroud) Hadoop技术对我来说非常混乱(Hbase,flume,oozie,scoop,zookeeper,Hive,hue,Bigtop,pig)以及现在它的黑斑羚.有人可以定义它们是如何集成的吗?(我是一个信息开发人员,对Java的知识很少)至少是数据软件的外壳!
cloudera ×12
hadoop ×7
hive ×4
apache-spark ×3
cloudera-cdh ×2
scala ×2
command-line ×1
dns ×1
hbase ×1
hdfs ×1
hosts ×1
hue ×1
impala ×1
jdbc ×1
mapreduce ×1
python ×1
ubuntu-14.04 ×1