Hadoop伪分布式模式 - Datanode和tasktracker无法启动(Hadoop pseudo distributed mode - Datanode and tasktracker not starting)
我正在运行安装了Hadoop 1.1.2的Red Hat Enterprise Linux Server 6.4版(Santiago)发行版。 我已经完成了所需的配置以启用伪分布式模式。 但是在尝试运行hadoop时,datanode和tasktracker无法启动。
我无法将任何文件复制到hdfs。
[hduser@is-joshbloom-hadoop hadoop]$ hadoop dfs -put README.txt /input Warning: $HADOOP_HOME is deprecated. 13/05/23 16:42:00 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /input could only be replicated to 0 nodes, instead of 1
在尝试
hadoop-daemon.sh start datanode
我收到消息:starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-hduser-datanode-is-joshbloom-hadoop.out
tasktracker也是如此。 但是当我为namenode,secondarynamenode,jobtracker尝试相同的命令时,它们似乎正在运行。
namenode running as process 32933. Stop it first.
我尝试了以下解决方案:
- 重新格式化namenode
- 重新安装hadoop
- 安装不同版本的hadoop(1.0.4)
似乎没有工作。 我在我的Mac和亚马逊ubuntu VM上遵循了相同的安装步骤,它完美无缺。
我怎样才能让hadoop工作? 谢谢!
*更新**
这是namenode的日志条目
2013-05-23 16:27:44,087 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting DataNode STARTUP_MSG: host = java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop STARTUP_MSG: args = [] STARTUP_MSG: version = 1.1.2 STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.1 -r 1440782; compiled by 'hortonfo' on Thu Jan 31 02:03:24 UTC 2013 ************************************************************/ 2013-05-23 16:27:44,382 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties 2013-05-23 16:27:44,432 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered. 2013-05-23 16:27:44,446 ERROR org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Error getting localhost name. Using 'localhost'... java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop at java.net.InetAddress.getLocalHost(InetAddress.java:1438) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.getHostname(MetricsSystemImpl.java:463) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configureSystem(MetricsSystemImpl.java:394) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configure(MetricsSystemImpl.java:390) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.start(MetricsSystemImpl.java:152) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.init(MetricsSystemImpl.java:133) at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.init(DefaultMetricsSystem.java:40) at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.initialize(DefaultMetricsSystem.java:50) at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1589) at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1608) at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1734) at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1751) Caused by: java.net.UnknownHostException: is-joshbloom-hadoop at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258) at java.net.InetAddress.getLocalHost(InetAddress.java:1434) ... 11 more 2013-05-23 16:27:44,453 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s). 2013-05-23 16:27:44,453 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started 2013-05-23 16:27:44,768 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source ugi registered. 2013-05-23 16:27:44,914 INFO org.apache.hadoop.util.NativeCodeLoader: Loaded the native-hadoop library 2013-05-23 16:27:45,212 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop at java.net.InetAddress.getLocalHost(InetAddress.java:1438) at org.apache.hadoop.security.SecurityUtil.getLocalHostName(SecurityUtil.java:271) at org.apache.hadoop.security.SecurityUtil.login(SecurityUtil.java:289) at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:301) at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1651) at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1590) at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1608) at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1734) at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1751) Caused by: java.net.UnknownHostException: is-joshbloom-hadoop at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258) at java.net.InetAddress.getLocalHost(InetAddress.java:1434) ... 8 more 2013-05-23 16:27:45,228 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down DataNode at java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop ************************************************************/
*更新***
/etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
I am running a Red Hat Enterprise Linux Server release 6.4 (Santiago) distribution with Hadoop 1.1.2 installed on it. I have made the required configurations to enable the pseudo distributed mode. But on trying to run hadoop, the datanode and tasktracker don't start.
I am not able to copy any files to hdfs.
[hduser@is-joshbloom-hadoop hadoop]$ hadoop dfs -put README.txt /input Warning: $HADOOP_HOME is deprecated. 13/05/23 16:42:00 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /input could only be replicated to 0 nodes, instead of 1
Also after trying
hadoop-daemon.sh start datanode
I get the message:starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-hduser-datanode-is-joshbloom-hadoop.out
same goes for tasktracker. But when I try the same command for namenode, secondarynamenode, jobtracker they are seem to be running.
namenode running as process 32933. Stop it first.
I tried the following solutions:
- Reformatting namenode
- Reinstalling hadoop
- Installing different version of hadoop (1.0.4)
None seem to work. I have followed the same installation steps on my Mac and on amazon ubuntu VM and it works perfectly.
How can I get hadoop working? Thanks!
*UPDATE**
Here is the log entry of namenode
2013-05-23 16:27:44,087 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting DataNode STARTUP_MSG: host = java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop STARTUP_MSG: args = [] STARTUP_MSG: version = 1.1.2 STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.1 -r 1440782; compiled by 'hortonfo' on Thu Jan 31 02:03:24 UTC 2013 ************************************************************/ 2013-05-23 16:27:44,382 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties 2013-05-23 16:27:44,432 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered. 2013-05-23 16:27:44,446 ERROR org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Error getting localhost name. Using 'localhost'... java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop at java.net.InetAddress.getLocalHost(InetAddress.java:1438) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.getHostname(MetricsSystemImpl.java:463) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configureSystem(MetricsSystemImpl.java:394) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configure(MetricsSystemImpl.java:390) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.start(MetricsSystemImpl.java:152) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.init(MetricsSystemImpl.java:133) at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.init(DefaultMetricsSystem.java:40) at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.initialize(DefaultMetricsSystem.java:50) at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1589) at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1608) at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1734) at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1751) Caused by: java.net.UnknownHostException: is-joshbloom-hadoop at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258) at java.net.InetAddress.getLocalHost(InetAddress.java:1434) ... 11 more 2013-05-23 16:27:44,453 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s). 2013-05-23 16:27:44,453 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started 2013-05-23 16:27:44,768 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source ugi registered. 2013-05-23 16:27:44,914 INFO org.apache.hadoop.util.NativeCodeLoader: Loaded the native-hadoop library 2013-05-23 16:27:45,212 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop at java.net.InetAddress.getLocalHost(InetAddress.java:1438) at org.apache.hadoop.security.SecurityUtil.getLocalHostName(SecurityUtil.java:271) at org.apache.hadoop.security.SecurityUtil.login(SecurityUtil.java:289) at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:301) at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1651) at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1590) at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1608) at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1734) at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1751) Caused by: java.net.UnknownHostException: is-joshbloom-hadoop at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258) at java.net.InetAddress.getLocalHost(InetAddress.java:1434) ... 8 more 2013-05-23 16:27:45,228 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down DataNode at java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop ************************************************************/
*UPDATE***
content of
/etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
原文:https://stackoverflow.com/questions/16725804
最满意答案
删除
IFS=","
赋值,从而使空格,制表符,换行符的默认IFS值适用#!/bin/bash eCollection=( $(cut -d ',' -f2 MyAssignment.csv ) ) printf "%s\n" "${eCollection[0]}"
Remove the
IFS=","
assignment thereby letting the default IFS value of space, tab, newline apply#!/bin/bash eCollection=( $(cut -d ',' -f2 MyAssignment.csv ) ) printf "%s\n" "${eCollection[0]}"
相关问答
更多-
你可以使用awk这个。 将“$ 2”更改为您想要的第n列。 awk -F "\"*,\"*" '{print $2}' textfile.csv You could use awk for this. Change '$2' to the nth column you want. awk -F "\"*,\"*" '{print $2}' textfile.csv
-
从csv文件中检索列并将值提取到另一个csv文件(Retrieve columns from a csv files and extract value to another csv file)[2023-06-20]
您在文件中看到None的原因是您将print(row[col])的结果分配给data变量: data=print(row[col]) print()不返回任何内容,因此data内容为None 。 如果你删除print()并且只有data = row[col] ,你将获得一些有价值的东西。 我在您的代码中看到了另外一个问题,您可能希望修复它: 您将在第一个循环中的每次迭代中反复打开该文件。 因此,对于每一行,您将使用该行值覆盖整个文件。 如果你想要整个列,那么你就可以在循环之前打开文件一次。 The rea ... -
如何从csv文件返回特定行并将它们放入数组中(How to return specific rows from a csv file and put them into array)[2019-07-14]
你很亲密。 您不需要在while循环内运行for循环。 你可以使用这样的东西: $file = fopen('/path/to/file', 'r'); // Helps us keep tabs on the row we are on $rowCount = 0; // Array that stores all of our column values. In this case, I'll be gathering // values from the second column $secon ... -
你应该创建一个服务或工人片段来完成所有繁重的工作:打开csv,读取国家和城市,并过滤给定国家/地区的城市。 然后创建一个对Activity的回调,显示两个微调器以相应地更新UI。 需要以下组件: 1 FragmentActivity显示微调器。 应该有一个回调方法来接收数据更新。 1工作片段或服务,用于读取包含Spinners的FragmentActivity的文件和广播更新 希望能帮助到你。 You should create a Service or a Worker Fragment to do al ...
-
csv可以很大,用于在查找参数列表中添加所有文件名。 您也不希望在循环中为csv中的每一行调用find。 解: 首先在tmp文件中创建一个完整的文件列表。 第二个解析csv并过滤文件。 第三是chmod -w。 下一个解决方案将文件存储在tmp中创建一个脚本,该脚本将servername作为参数。 请参阅代码中的注释: # Before EDIT: # Hostname by parameter 1 # Check that you have a hostname if [ $# -ne 1 ]; then ...
-
删除IFS=","赋值,从而使空格,制表符,换行符的默认IFS值适用 #!/bin/bash eCollection=( $(cut -d ',' -f2 MyAssignment.csv ) ) printf "%s\n" "${eCollection[0]}" Remove the IFS="," assignment thereby letting the default IFS value of space, tab, newline apply #!/bin/bash eCollection ...
-
我希望这可以帮助您解决新线路的问题。 使用awk,您可以定义字段分隔符FS是什么(在本例中为a或a ,\n )以及记录分隔符RS是什么(在这种情况下,任何不是a的字符,后跟\n ) 参考: http : //www.thegeekstuff.com/2010/01/8-powerful-awk-built-in-variables-fs-ofs-rs-ors-nr-nf-filename-fnr/ ------------------------------- test.csv (每个csv行以空格结尾,然 ...
-
这应该工作 - let i=0 while (( ${#CHUNK[@]} > i )); do TMP=`echo ${CHUNK[i]} | tr -s " "` # Copy line of interest (which contains the character “:”) into output file for ALPHABET in a b c; do for NUMBER in 1 2 3; do # Copy interaction values ...
-
对于初学者,我会停止尝试自己做一些PHP可以为你做的事情。 使用fputcsv而不是自己动手: http ://php.net/manual/en/function.fputcsv.php。 此方法还涉及转义分隔符(您的逗号)。 最重要的是..不要使用','作为你的csv分离器。 你可能最好使用'|' 作为一个分词,因为这个角色不太常见。 For starters I would stop trying to do something yourself that PHP can do for you. Us ...
-
如果这是逗号分隔的字符串,则在这种情况下可以使用str_getcsv() : // load the string and explode, then apply str_getcsv $data = array_map('str_getcsv', explode("\n", $request->getResponseBody())); array_shift($data); // remove the header $fourth_column = array(); foreach($data as $l ...