我知道du -sh常见的Linux文件系统.但是如何用HDFS做到这一点?
如何从命令提示符中找到我正在使用的Hive版本.以下是详情 -
我使用Putty连接到hive表并访问表中的记录.所以我做的是 - 我打开Putty并输入我输入的主机名 - leo-ingesting.vip.name.com然后点击Open.然后我输入了我的用户名和密码,然后输入了很少的命令来访问Hive sql.以下是我所做的清单
$ bash
bash-3.00$ hive
Hive history file=/tmp/rkost/hive_job_log_rkost_201207010451_1212680168.txt
hive> set mapred.job.queue.name=hdmi-technology;
hive> select * from table LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
那么从命令提示符是否有任何方法我可以找到我正在使用的Hive版本和Hadoop版本?
在研究了大规模数据存储解决方案之后,我几乎落在了卡桑德拉.但它普遍认为Hbase是大规模数据处理和分析的更好解决方案.
虽然两者都是相同的键/值存储,并且两者都是/可以运行(最近的Cassandra)Hadoop层,但是当大数据需要处理/分析时,Hadoop是更好的候选者.
我也在http://ria101.wordpress.com/2010/02/24/hbase-vs-cassandra-why-we-moved/找到了关于这两方面的详细信息.
但我仍然在寻找Hbase的具体优势.
虽然我更加信服Cassandra,因为它简单易用,无需添加节点和无缝复制,也没有故障点功能.它还保留了二级索引功能,因此它是一个很好的优点.
Spark和Hadoop之间是否有任何依赖关系?
如果没有,当我在没有Hadoop的情况下运行Spark时,是否会有任何我想念的功能?
我打算在hadoop相关项目中使用hadoop文件格式之一.我知道实木复合地板对于基于列的查询是有效的,而avro可用于全扫描或当我们需要所有列数据时!
在我继续选择其中一种文件格式之前,我想了解一种文件格式的缺点/缺点.任何人都可以用简单的语言向我解释一下吗?
在Hadoop中什么时候开始减少任务?它们是在完成一定百分比(阈值)的映射器后开始的吗?如果是这样,这个门槛是否固定?通常使用什么样的阈值?
我正在对Hive可用的存储格式进行一些测试,并使用Parquet和ORC作为主要选项.我使用默认压缩包含ORC一次,使用Snappy包含一次.
我已经阅读了许多文件,说明Parquet在时间/空间复杂性方面比ORC更好,但我的测试与我经历的文件相反.
关注我的数据的一些细节.
Table A- Text File Format- 2.5GB
Table B - ORC - 652MB
Table C - ORC with Snappy - 802MB
Table D - Parquet - 1.9 GB
Run Code Online (Sandbox Code Playgroud)
就我的桌子的压缩而言,实木复合地板是最糟糕的.
我对上表的测试得出以下结果.
行计数操作
Text Format Cumulative CPU - 123.33 sec
Parquet Format Cumulative CPU - 204.92 sec
ORC Format Cumulative CPU - 119.99 sec
ORC with SNAPPY Cumulative CPU - 107.05 sec
Run Code Online (Sandbox Code Playgroud)
列操作的总和
Text Format Cumulative CPU - 127.85 sec
Parquet Format Cumulative CPU - 255.2 sec
ORC Format Cumulative …Run Code Online (Sandbox Code Playgroud) 现在,我有一个Hadoop工作,它创建了一个非常有名的计数器.例如,以下一个:stats.counters.server-name.job.job-name.mapper.site.site-name.qualifier.qualifier-name.super-long-string-which-is-not-within-standard-limits.此计数器在Web界面和getName()方法调用上被截断.我发现Hadoop对计数器最大名称有限制,此设置ID mapreduce.job.counters.counter.name.max用于配置此限制.所以我将此增加到,500并且web界面现在显示完整的计数器名称.但是getName()计数器仍然返回截断的名称.
请问某人,解释一下或指出我的错误?谢谢.
编辑1
我的hadoop服务器配置由单个服务器组成,其中包含hdfs,yarn和map-reduce.在map-reduce期间,有一些计数器增量,在作业完成后,在ToolRunnerI中使用的获取计数器org.apache.hadoop.mapreduce.Job#getCounters.
编辑2
Hadoop版本如下:
Hadoop 2.6.0-cdh5.8.0
Subversion http://github.com/cloudera/hadoop -r 042da8b868a212c843bcbf3594519dd26e816e79
Compiled by jenkins on 2016-07-12T22:55Z
Compiled with protoc 2.5.0
From source with checksum 2b6c319ecc19f118d6e1c823175717b5
This command was run using /usr/lib/hadoop/hadoop-common-2.6.0-cdh5.8.0.jar
Run Code Online (Sandbox Code Playgroud)
我做了一些额外的调查,似乎这个问题描述了与我类似的情况.但这很令人困惑,因为我可以增加计数器的数量而不是计数器名称的长度......
编辑3
今天我花了很多时间调试hadoop的内部.一些有趣的东西:
org.apache.hadoop.mapred.ClientServiceDelegate#getJobCounters方法从具有TRUNCATED名称和FULL显示名称的yarn返回一组计数器.org.apache.hadoop.mapreduce.Counter#getName方法在reducer执行期间正常工作.在我的本地机器上安装hadoop时,出现以下错误
ssh -vvv localhost
OpenSSH_5.5p1, OpenSSL 1.0.0e-fips 6 Sep 2011
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: connect to address 127.0.0.1 port 22: Connection refused
ssh: connect to host localhost port 22: Connection refused
Run Code Online (Sandbox Code Playgroud)
可以帮助我解决这个错误,而不是更改端口号
我们想将Hive查询的结果放到CSV文件中.我以为命令看起来应该是这样的:
insert overwrite directory '/home/output.csv' select books from table;
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它表示它已成功完成但我永远找不到该文件.如何找到此文件或者我应该以不同的方式提取数据?
谢谢!