标签: hadoop2

Hadoop fs -cp,说文件不存在?

new.txt文件可以肯定; 我不知道为什么当我试图进入hdfs目录时,它说文件不存在.

deepak@deepak:/$ cd $HOME/fs
deepak@deepak:~/fs$ ls
new.txt
deepak@deepak:~/fs$ cat new.txt
an apple a day keeps the doctor away
deepak@deepak:~/fs$ hadoop fs -cp $HOME/fs/new.txt $HOME/hdfs
cp: File does not exist: /home/deepak/fs/new.txt
deepak@deepak:~/fs$ 
Run Code Online (Sandbox Code Playgroud)

PS:我已经创建了一个名为hdfs的目录:

deepak@deepak:~/fs$ hadoop fs -mkdir $HOME/hdfs
mkdir: cannot create directory /home/deepak/hdfs: File exists
Run Code Online (Sandbox Code Playgroud)

hadoop hdfs hadoop2

3
推荐指数
1
解决办法
5173
查看次数

文件分为块存储在HDFS中?

据我所知,HDFS中的块系统是基础文件系统之上的逻辑分区.但是,当我发出cat命令时,如何检索文件.

假设我有一个1 GB的文件.我的默认HDFS块大小为64 MB.

我发出以下命令:

hadoop -fs copyFromLocal my1GBfile.db input/data/
Run Code Online (Sandbox Code Playgroud)

上面的命令将文件my1GBfile.db从我的本地机器复制到输入/数据目录中HDFS:

我有16个块要复制和复制(1 GB/64 MB~16).

如果我有8 datanodes,则单个datanode可能没有所有块来重建文件.

当我发出以下命令

hadoop -fs cat input/data/my1GBfile.db | head 
Run Code Online (Sandbox Code Playgroud)

现在发生了什么?

文件是如何重构的?虽然块只是逻辑分区,但1 GB文件是如何物理存储的.它存储在HDFS上.每个datanode获取文件的一些物理部分.因此,通过将输入1GB文件分成64 MB块,我们可能会破坏记录级别的某些内容(例如在行之间).这是怎么处理的?

我检查了我的datanode,我确实看到了一个blk_1073741825,在编辑器中打开时实际上显示了该文件的内容.

那么所制作的文件块是不合逻辑的,但实际partition的数据发生了吗?

请帮助澄清一下

hadoop hdfs hadoop2

3
推荐指数
1
解决办法
4955
查看次数

UnregisteredNodeException导致slave上的dataNode失败启动

我有一台Hadoop 2.5集群的两台机器,在一台机器上,数据节点出现故障UnregisteredNodeException.这是主配置:

master$ jps
5036 Jps
7145 DataNode
918 ResourceManager
7338 SecondaryNameNode
6986 NameNode
1105 NodeManager
Run Code Online (Sandbox Code Playgroud)

对于奴隶

slave$ jps
15950 Jps
26650 NodeManager
Run Code Online (Sandbox Code Playgroud)

以下是来自以下内容的完整堆栈跟踪hadoop-hadoop-datanode-slave.log:

2014-10-23 19:43:46,895 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool BP-8947225-127.0.1.1-1409591980216 (Datanode Uuid 5c9f00ab-1d75-4706-8ed8-bfb449174c9a) service to hadoop-server/192.168.2.72:8020 is shutting down
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.protocol.UnregisteredNodeException): Data node DatanodeRegistration(192.168.2.73, datanodeUuid=5c9f00ab-1d75-4706-8ed8-bfb449174c9a, infoPort=50075, ipcPort=50020, storageInfo=lv=-55;cid=CID-ab378c59-62ed-44ff-8814-03b5b733b6fa;nsid=1290295317;c=0) is attempting to report storage ID 5c9f00ab-1d75-4706-8ed8-bfb449174c9a. Node 192.168.2.72:50010 is expected to serve this storage.
    at org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.getDatanode(DatanodeManager.java:475)
    at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.processReport(BlockManager.java:1702)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.blockReport(NameNodeRpcServer.java:1049)
    at org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolServerSideTranslatorPB.blockReport(DatanodeProtocolServerSideTranslatorPB.java:152)
    at org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos$DatanodeProtocolService$2.callBlockingMethod(DatanodeProtocolProtos.java:28061)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
    at …
Run Code Online (Sandbox Code Playgroud)

hadoop cluster-computing hdfs hadoop-yarn hadoop2

3
推荐指数
1
解决办法
1300
查看次数

Pig和Hadoop连接错误

当我在mapreduce模式下运行pig时,我收到ConnectionRefused错误.

详细信息:
我已经从tarball(pig-0.14)安装了Pig,并在bashrc中导出了类路径.
我已经启动并运行了所有Hadoop(hadoop-2.5)守护进程(由JPS确认).

[root@localhost sbin]# jps
2272 Jps
2130 DataNode
2022 NameNode
2073 SecondaryNameNode
2238 NodeManager
2190 ResourceManager
Run Code Online (Sandbox Code Playgroud)

我在mapreduce模式下运行pig:

[root@localhost sbin]# pig
grunt> file = LOAD '/input/pig_input.csv' USING PigStorage(',') AS (col1,col2,col3);
grunt> dump file;  
Run Code Online (Sandbox Code Playgroud)

然后我收到错误:

java.io.IOException: java.net.ConnectException: Call From localhost.localdomain/127.0.0.1 to 0.0.0.0:10020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
    at org.apache.hadoop.mapred.ClientServiceDelegate.invoke(ClientServiceDelegate.java:334)
    at org.apache.hadoop.mapred.ClientServiceDelegate.getJobStatus(ClientServiceDelegate.java:419)
    at org.apache.hadoop.mapred.YARNRunner.getJobStatus(YARNRunner.java:532)
    at org.apache.hadoop.mapreduce.Cluster.getJob(Cluster.java:183)
    at org.apache.pig.backend.hadoop.executionengine.shims.HadoopShims.getTaskReports(HadoopShims.java:231)
    at org.apache.pig.tools.pigstats.mapreduce.MRJobStats.addMapReduceStatistics(MRJobStats.java:352)
    at org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil.addSuccessJobStats(MRPigStatsUtil.java:233)
    at org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil.accumulateStats(MRPigStatsUtil.java:165)
    at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.launchPig(MapReduceLauncher.java:360)
    at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.launchPig(HExecutionEngine.java:280)
    at org.apache.pig.PigServer.launchPlan(PigServer.java:1390)
    at …
Run Code Online (Sandbox Code Playgroud)

hadoop apache-pig hadoop2

3
推荐指数
1
解决办法
4776
查看次数

在猪中转储字符串或(字符串,整数)元组

我有一个简单的猪脚本,我能够读取数据并转储数据.但是,我无法转储字符串或(string,int)元组.只是想知道我在这里失踪了什么?非常感谢!


dataset = LOAD '/Users/me/input' USING PigStorage() AS (id:chararray,data:chararray);

dataset_GROUP = GROUP dataset ALL;
dataset_COUNT = FOREACH dataset_GROUP GENERATE COUNT(dataset);

DUMP "record_count = ";                 <-- this does not work
DUMP dataset_COUNT;                     <-- this works 
DUMP "record_count = ", dataset_COUNT;  <-- this does not work
Run Code Online (Sandbox Code Playgroud)

apache-pig hadoop2

3
推荐指数
1
解决办法
2370
查看次数

如何集成Ambari REST API以进行集群监视示例

我有一个用例,可以将在Ambari Web界面中生成的Ambari警报集成和导入到我们用于管理集群的集中监控环境中。我正在使用HDP。我们是否有任何详细的文档/步骤/有关如何执行此操作。这是我要完成的一些例子

如何进行REST API调用以查看是否填充并使用了HDFS文件系统是否超过90%,或者如何检查服务之一是否如HDFS / HBASE那样无法正常工作并在Ambari GUI中引发了警报。

rest monitoring hortonworks-data-platform hadoop2 ambari

3
推荐指数
1
解决办法
2859
查看次数

Hadoop 2.0数据写操作确认

我有一个关于hadoop数据写入的小查询

来自Apache文档

对于常见情况,当复制因子为3时,HDFS的放置策略是将一个副本放在本地机架中的一个节点上,另一个放在另一个(远程)机架中的节点上,而最后一个放在同一节点上的另一个节点上远程机架.此策略可以减少机架间写入流量,从而提高写入性能.机架故障的可能性远小于节点故障的可能性;

在下面的图像中,写入确认被视为成功?

1)将数据写入第一个数据节点?

2)将数据写入第一个数据节点+2个其他数据节点?

Hadoop数据写入

我问这个问题因为,我在youtube视频中听到了两个相互矛盾的陈述.一个视频引用一旦数据写入一个数据节点就写入成功,而其他视频引用只有在将数据写入所有三个节点后才会发送确认.

hadoop hdfs hadoop2

3
推荐指数
1
解决办法
3251
查看次数

在Yarn上运行时,Hadoop和Spark中的容器/资源分配意味着什么?

火花在内存中运行当在纱线上运行时,资源分配在Spark中意味着什么?它与hadoop的容器分配形成对比?只是好奇地知道hadoop的数据和计算是在磁盘上,而Spark是在内存中.

hadoop hadoop-yarn apache-spark hadoop2

3
推荐指数
1
解决办法
1658
查看次数

使用load命令将数据加载到hive静态分区表

请不要介意它是否是一个非常基本的:

的test.txt

1 ravi 100 hyd
2 krishna 200 hyd
3 fff 300秒

我在hive中创建了一个带有城市分区的表,并加载了如下数据:

create external table temp(id int, name string, sal int) 
partitioned by(city string) 
location '/testing';
Run Code Online (Sandbox Code Playgroud)

load data inpath '/test.txt' into table temp partition(city='hyd');

在HDFS中,结构是/testing/temp/city=hyd/test.txt

当我查询表为"select*from temp"时;

输出:

temp.id temp.name temp.sal temp.city  
    1   ravi    100 hyd  
    2   krishna 200 hyd  
    3   fff     300 hyd  
Run Code Online (Sandbox Code Playgroud)

这里我的问题是为什么第三行中"sec"的城市名称在输出中变为"hyd"?

我这边有什么不对吗?

提前致谢 !!!

hadoop hive hiveql hadoop2

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

运行start-dfs.sh时出现权限被拒绝错误

我在执行时遇到此错误 start-dfs.sh

Starting namenodes on [localhost] 
pdsh@Gaurav: localhost: rcmd: socket: Permission denied 
Starting datanodes
pdsh@Gaurav: localhost: rcmd: socket: Permission denied
Starting secondary namenodes [Gaurav]
pdsh@Gaurav: Gaurav: rcmd: socket: Permission denied 2017-03-13 09:39:29,559 
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Run Code Online (Sandbox Code Playgroud)

使用hadoop 3.0 alpha 2版本.

任何帮助表示赞赏

sockets hadoop hdfs hadoop-yarn hadoop2

3
推荐指数
4
解决办法
5996
查看次数