单机上的hadoop/hdfs

文档在这里

我下载了hadoop-2.6.0.tar.gz, 解压。
修改 etc/hadoop/hadoop-env.sh


#export JAVA_HOME=${JAVA_HOME}  #删除这一行,添加下面的两行

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
export HADOOP_PREFIX=/home/xuyang/download/hadoop-2.6.0/

修改etc/hadoop/core-site.xml为:

<configuration>      

 <property>      

 <name>fs.defaultFS</name>       

 <value>hdfs://localhost:9000</value>        

 </property>         

</configuration>

etc/hadoop/hdfs-site.xml 修改为:

<configuration>      

 <property>      

 <name>dfs.replication</name>        

 <value>1</value>        

 </property>         

</configuration>
    

然后让ssh到localhost不需要密码:


ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

然后就可以运行一下的命令:


bin/hdfs namenode -format

#启动namenode和dataNode, 然后可以通过http://localhost:50070/访问

#我在这一步碰到9000端口被占用问题,解决方法见后

sbin/start-dfs.sh

#建目录

bin/hdfs dfs -mkdir /user

bin/hdfs dfs -mkdir /user/

#放数据

bin/hdfs dfs -put etc/hadoop input

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output ‘dfs[a-z.]+’

#取数据

bin/hdfs dfs -get output output

cat output/*

#直接打印数据

bin/hdfs dfs -cat output/*

#关闭

sbin/stop-dfs.sh

关于端口占用问题:从hadoop-xuyang-namenode-xxx.log中看到
Problem binding to [localhost:9000] java.net.BindException: Address already in use; For more details see: http://wiki.apache.org/hadoop/BindException
于是查wiki,可以用下面的命令来列出占用端口的进程:
sudo netstat -a -t –numeric-ports -p

我查出来,居然是php-fpm占用了这个端口。找到进程号,直接杀死。然后在调用
sbin/start-dfs.sh
就可以了。

hdfs hdfs



本文地址: http://www.bagualu.net/wordpress/archives/4192 转载请注明




发表评论

电子邮件地址不会被公开。 必填项已用*标注