Tag: hadoop2

Hadoop和Docker

我以多节点的方式在局域网中的多台机器上使用docker运行Hadoop。 当我提交一个工作(地图缩小例子pi),我得到以下错误: 2017-04-22 17:48:58,077 INFO org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl: appattempt_1492883262700_0001_000001 State change from SCHEDULED to ALLOCATED_SAVING 2017-04-22 17:48:58,083 INFO org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl: appattempt_1492883262700_0001_000001 State change from ALLOCATED_SAVING to ALLOCATED 2017-04-22 17:48:58,087 INFO org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher: Launching masterappattempt_1492883262700_0001_000001 2017-04-22 17:48:58,152 INFO org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher: Setting up container Container: [ContainerId: container_1492883262700_0001_01_000001, Version: 0, NodeId: hadoop-slave2:35472, NodeHttpAddress: hadoop-slave2:8042, Resource: <memory:2048, vCores:1>, Priority: 0, Token: Token { kind: […]

Pyspark:远程Hive仓库位置

我需要从Pyspark读取/写入存储在远程Hive Server中的表。 我所知道的这个远程Hive是在Docker下运行的。 从Hadoop色调我find了两个网站的iris表,我尝试从中select一些数据: 我有一个表metastoreurl: http://xxx.yyy.net:8888/metastore/table/mytest/iris 和表位置url: hdfs://quickstart.cloudera:8020/user/hive/warehouse/mytest.db/iris 我不知道为什么最后的url包含quickstart.cloudera:8020 。 也许这是因为Hive在Docker下运行? 讨论访问Hive表Pyspark教程写道: https://spark.apache.org/docs/latest/sql-programming-guide.html#hive-tables 使用Hive时,必须使用Hive支持实例化SparkSession,包括连接到持久性Hive Metastore,支持Hive serdes和Hive用户定义的函数。 没有现有Hive部署的用户仍然可以启用Hive支持。 当未由hive-site.xmlconfiguration时,上下文自动在当前目录中创buildmetastore_db,并创build一个由spark.sql.warehouse.dirconfiguration的目录,该目录默认为Spark应用程序当前目录中的spark-warehouse目录开始。 请注意,自从Spark 2.0.0以来,hive-site.xml中的hive.metastore.warehouse.dir属性已被弃用。 而是使用spark.sql.warehouse.dir来指定仓库中数据库的默认位置。 您可能需要向启动Spark应用程序的用户授予写权限。 在我的情况下,我设法得到hive-site.xml既没有hive.metastore.warehouse.dir也没有spark.sql.warehouse.dir属性。 Spark教程build议使用下面的代码来访问远程Hive表: from os.path import expanduser, join, abspath from pyspark.sql import SparkSession from pyspark.sql import Row // warehouseLocation points to the default location for managed databases and tables val warehouseLocation = new File("spark-warehouse").getAbsolutePath […]