hadoop之伪分布式

来源:互联网 发布:淘宝大学网店运营视频 编辑:程序博客网 时间:2024/05/20 18:51

接上篇 http://blog.csdn.net/yibei8811/article/details/46709135

配置文件etc/hadoop/core-site.xml:添加

<configuration>    <property>        <name>fs.defaultFS</name>        <value>hdfs://localhost:9000</value>  --配置hdfs分布式文件系统    </property></configuration>

配置文件etc/hadoop/hdfs-site.xml:添加

<configuration>    <property>        <name>dfs.replication</name>        <value>1</value>                      --文件系统存储几份    </property></configuration>


hadoop需要各个datanode通讯,数据复制,需要设置ssh免密码登陆,执行

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsacat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
使用命令
ssh localhost
测试是是否成功,如果不成功,执行
cd ~/.ssh/chmod 600 authorized_keys

貌似ssh免登陆需要600权限。


进入hadoop主目录,依次执行代码测试

1.

bin/hdfs namenode -format   --格式化文件系统
2.
sbin/start-dfs.sh           --启用文件系统
这里启动的时候报错JAVA_HOME找不到,检索以下脚本报错信息位置。
find ./ -name '*.sh' |xargs grep 'Error: JAVA_HOME is not set and could not be found'./libexec/hadoop-config.sh:    echo "Error: JAVA_HOME is not set and could not be found." 1>&2

搜索到的shell脚本,跳转很乱,我们打开  etc/hadoop/hadoop-env.sh文件

发现脚本25行,有export JAVA_HOME=${JAVA_HOME},

我已经在profile配置过JAVA_HOME但是这里居然无效,我在hadoop主目录下再次配置JAVA_HOME也是无效,遂修改为

export JAVA_HOME=/root/soft/java1.7/jdk1.7.0_79/

重新回到第2步最初,启动hfs成功。

3.

有一个http网址已经可以查看了。默认在http://localhost:50070/

4.

在HDFS文件系统上创建目录,执行

bin/hdfs dfs -mkdir /userbin/hdfs dfs -mkdir /user/hadoop

如果不明白这2个命令的话,可以执行

bin/hdfs dfs -ls /bin/hdfs dfs -ls /user

我想你会理解它。

5.

把一些文件放入HDFS文件系统,执行

bin/hdfs dfs -put etc/hadoop input

6.

运行测试,执行

 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep input output 'dfs[a-z.]+'
7.

将hadoop文件系统内文件,考入Linux文件系统,并查看内容,

执行

bin/hdfs dfs -get output outputcat output/*


也可以直接输出HDFS文件系统的文件内容,执行

bin/hdfs dfs -cat output/*

8.如果想关闭HDFS文件系统,执行

sbin/stop-dfs.sh

**********************************************************************************************************************************

hadoop2.0有一个特性是yarn,下面把yarn也装上。

1.

修改配置文件etc/hadoop/mapred-site.xml:

<configuration>    <property>        <name>mapreduce.framework.name</name>        <value>yarn</value>                  --给hadoop装上yarn    </property></configuration>

etc/hadoop/yarn-site.xml:

<configuration>    <property>        <name>yarn.nodemanager.aux-services</name>        <value>mapreduce_shuffle</value>    --yarn通过这个程序运行mapreduce    </property></configuration>

2.

启动yarn,执行

 sbin/start-yarn.sh

3.

yarn的WEB接口网址已经可以查看了,默认地址 http://localhost:8088/


4.

测试yarn,执行上一个mapreduce代码,只改变一下输出目录

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep input output2 'dfs[a-z.]+'

感觉上yarn上面跑的好像比刚才慢点?我未有严谨的测试它。


5.

和之前的输出对比一下,执行

bin/hdfs dfs -cat output/*bin/hdfs dfs -cat output2/*
发现结果是一样,这个很正常。


6.如果想关闭yarn,执行

sbin/stop-yarn.sh


tips:

1.

若不知道配置文件格式,或者有哪些参数,可以执行下面等命令,看看系统自带的文件的格式。

find ~/hadoop-2.7.0/ -name core-default.xmlfind ~/hadoop-2.7.0/ -name hdfs-default.xmlfind ~/hadoop-2.7.0/ -name yarn-default.xml

顺带可以了解哪些已经默认配置了。

2 hadoop还有一些相关的信息,可以查看启动的进程和端口进行分析。.


0 0
原创粉丝点击