我有一个包含特殊字符的文件。要将这些文件加载到 hadoop hive 中,文件应采用 UTF-8 格式。
当我输入file -bi $filename命令来获取编码类型时,它给了我text/plain; charset=us-ascii
然后我使用 icon 通过以下方式转换为 utf-8:
iconv -f iso-8859-1 -t utf8 $filename > ${filename}_conv
Run Code Online (Sandbox Code Playgroud)
现在这个 utf-8 文件已成功加载到 hive 中。但是当我运行file -bi $${filename}_conv命令时它给出:
text/plain; charset=us-ascii
我原以为字符集是 utf8,但它返回的是 ascii。
有没有其他方法可以找到编码。因为我可能会重复使用该文件并且不想再次编码。
没有 isutf8 或 chardet,我尝试了 file --mime。所有这些似乎都不起作用。
是否有任何其他命令可用于确定编码类型,将会非常有帮助。
谢谢。
感谢您使用spark 2.0.2运行火花流程序的帮助.
运行错误"java.lang.ClassNotFoundException: Failed to find data source: kafka".修改后的POM文件如下.
正在创建Spark,但是在调用来自kafka的负载时出现错误.
创建火花会话:
val spark = SparkSession
.builder()
.master(master)
.appName("Apache Log Analyzer Streaming from Kafka")
.config("hive.metastore.warehouse.dir", hiveWarehouse)
.config("fs.defaultFS", hdfs_FS)
.enableHiveSupport()
.getOrCreate()
Run Code Online (Sandbox Code Playgroud)
创建kafka流媒体:
val logLinesDStream = spark
.readStream
.format("kafka")
.option("kafka.bootstrap.servers", "localhost:2181")
.option("subscribe", topics)
.load()
Run Code Online (Sandbox Code Playgroud)
错误信息:
Exception in thread "main" java.lang.ClassNotFoundException: Failed to find data source: kafka. Please find packages at http://spark-packages.org
Run Code Online (Sandbox Code Playgroud)
pom.xml中:
<scala.version>2.10.4</scala.version>
<scala.compat.version>2.10</scala.compat.version>
<spark.version>2.0.2</spark.version>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.10</artifactId>
<version>${spark.version}</version>
</dependency> …Run Code Online (Sandbox Code Playgroud) 我已经在 Windows 上安装了 Hadoop 2.7.3,并且能够启动集群。现在我想拥有 hive 并完成以下步骤: 1. 下载 db-derby-10.12.1.1-bin.zip,解压并启动 startNetworkServer -h 0.0.0.0。
2、从镜像站点下载apache-hive-1.1.1-bin.tar.gz并解压。创建 hive-site.xml 以具有以下属性:
javax.jdo.option.ConnectionURL
javax.jdo.option.ConnectionDriverName
hive.server2.enable.impersonation
hive.server2.authentication
datanucleus.autoCreateTables
hive.metastore.schema.verification
Run Code Online (Sandbox Code Playgroud)
我还设置了 HIVE_HOME 并更新了路径。同时设置 HIVE_LIB 和 HIVE_BIN_PATH。
当我从 bin 运行 hive 时,我得到 'hive' 不是内部或外部命令、可运行的程序或批处理文件。
bin/hive 显示为文件类型文件。请建议。不确定蜂巢版本是否正确。
谢谢你。
你能帮我解决 GC 开销错误吗?
背景:这是一个pig脚本,通过HCATALOGUE从4个hive表加载数据。Hive 表位于序列文件中并按日期分区。加载数据大小约为。24TB。
此脚本已成功运行 16TB。
问题:尝试从配置单元读取数据时作业失败。未为此映射缩减提交应用程序 ID,甚至在提交应用程序 ID 之前就发生故障。因此,无法在 YARN 中找到日志。
我尝试将yarn.app.mapreduce.am.resource.mb修改为6G,mapreduce.map.memory.mb(6GB),mapreduce.map.java.opts(6GB的0.8%),mapreduce.reduce.memory.mb( 8GB)和mapreduce.reduce.java.opts。并且仍然得到相同的错误。
请问对此有什么帮助吗?
谢谢。
我有 python Flask 应用程序,它监听在 8080 上运行的另一个微服务。当我作为 Flask 应用程序运行时,它可以从 http://localhost:8080/users 获取。
但是当我在 docker 内部运行时它失败了
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /users (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f53804b5dc0>: Failed to establish a new connection: [Errno 111] Connection refused'))
Run Code Online (Sandbox Code Playgroud)
在行:
File "/alert.py", line 45, in get_users
r = requests.get('http://localhost:8080/users',verify=False)
Run Code Online (Sandbox Code Playgroud)
这是我的主要代码:
if __name__ == '__main__':
app.logger.setLevel(logging.INFO)
data = create_data()
port = os.getenv('PORT')
app.run(debug=True, host='0.0.0.0', port=port)
Run Code Online (Sandbox Code Playgroud)
Docker 脚本:
#!/bin/bash
docker build -t covid_service .
docker run -p 5000:5000 covid_service
Run Code Online (Sandbox Code Playgroud)
Docker 文件:
FROM python:3 …Run Code Online (Sandbox Code Playgroud) 我想要将 GMT 中的日期作为字符串,如下面的 JavaScript 代码:
const date = new Date();
date.toGMTString();
Run Code Online (Sandbox Code Playgroud)
我指的是: Parsing Java String into GMT Date,我的代码如下所示,但出现错误:
private static String getDateGMT() {
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sdf.format(date));
return sdf.format(sdf);
}
Run Code Online (Sandbox Code Playgroud)
如何获取“2021 年 11 月 4 日星期四 06:50:37 GMT”格式的日期?
hive ×2
apache-kafka ×1
apache-spark ×1
docker ×1
flask ×1
hadoop ×1
heap-memory ×1
java ×1
linux ×1
scala ×1
shell ×1
unix ×1