设为首页 收藏本站
查看: 556|回复: 0

[经验分享] hadoop快速入门,初步感受分布式文件系统

[复制链接]

尚未签到

发表于 2016-12-9 07:39:47 | 显示全部楼层 |阅读模式
  很抱歉,本篇文章有误,今(20100225)天已经修正。(请注意官方中文文档已经落后了,请尽量看英文文档)
  一、准备工作:


Hadoop分布式文件系统,架构和设计 :http://hadoop.apache.org/common/docs/r0.20.2/cn/hdfs_design.html

Hadoop快速入门:http://hadoop.apache.org/common/docs/r0.20.2/cn/quickstart.html

SSH认证登录(可后看):http://www.ibm.com/developerworks/cn/linux/security/openssh/part1/index.html

二、下面实际操作,初步感受分布式文件系统:

  
1、ssh安装(linux:openssh,windwos:要先安装Cygwin),略过


2、下载Hadoop的发行版,从Apache的某个镜像服务器上下载最近的 稳定发行版:



http://hadoop.apache.org/core/releases.html,解压所下载的Hadoop发行版。


$ wget http://labs.renren.com/apache-mirror/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz

$ tar -zxvf hadoop-0.20.2.tar.gz

$ cd hadoop-0.20.2

3、编辑 conf/hadoop-env.sh文件,至少需要将JAVA_HOME设置为Java安装根路径


4、稍微熟悉下使用文档



$ bin/hadoop //将会显示hadoop 脚本的使用文档。


现在你可以用以下三种支持的模式中的一种启动Hadoop集群:


    * 单机模式

    * 伪分布式模式

    * 完全分布式模式

5、单机模式的操作方法



 默认情况下,Hadoop被配置成以非分布式模式运行的一个独立Java进程。这对调试非常有帮助。


 下面的实例将已解压的 conf 目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的output


目录。

 

 $ mkdir input

 $ cp conf/*.xml input


 我们看看下面的查找:


 $ egrep dfs[a-z.]+ input/*


 输出:

 input/hadoop-policy.xml:    dfsadmin and mradmin commands to refresh the security policy in-effect.


 运行hadoop命令:


 $ bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+'


 执行上面的命令,会有一些输出日志,随便看看,了解了解。


 $ cat output/*


 结果:

 1       dfsadmin

6、伪分布式模式的操作方法



Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个独立的Java进程运行。

6.1、配置
(中文官方文档落后了,我上面的链接是中文文档,请自己转到英文文档看):

  conf/core-site.xml


<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

  conf/hdfs-site.xml


<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/lighttpd/hadoopfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/lighttpd/hadoopfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
  conf/mapred-site.xml


<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
  
6.2、免密码ssh设置(参考我的另外一篇文章:http://jiajun.iyunv.com/blog/621309)



现在确认能否不输入口令就用ssh登录localhost:


$ ssh localhost


如果不输入口令就无法用ssh登陆localhost,执行下面的命令:


$ ssh-keygen -t dsa

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

6.3、格式化一个新的分布式文件系统



$ bin/hadoop namenode -format


注意看看输出日志哦,有助于理解。


6.4、启动Hadoop守护进程:




$ bin/start-all.sh


如果你设置了ssh的RSA认证,就不用输入密码,不然就要输入三次密码登录

6.5、日志



Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs).

6.6、浏览NameNode和JobTracker的网络接口,它们的地址默认为:



    * NameNode - http://localhost:50070/

    * JobTracker - http://localhost:50030/


浏览观察一下,会看懂甚至更好的理解一些东西。
  
6.7、将输入文件拷贝到分布式文件系统:



$ bin/hadoop fs -put conf input //把本地的文件夹conf拷贝到分布式文件系统input文件夹


$ bin/hadoop fs -ls input //浏览分布式文件系统中的input文件


上面的命令是hadoop的,你可以输入下面命令,获取帮助


$ bin/hadoop fs

6.8、运行发行版提供的示例程序:



$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'


查看输出文件:


$ bin/hadoop fs -get output output // 将输出文件从分布式文件系统拷贝到本地文件系统

$ cat output/*


或者,在分布式文件系统中查看:

$ bin/hadoop fs -cat output/*

6.9、你可以多试试bin/hadoop fs 下的java FsShell,和操作本地文件差不多,很快能熟悉。


6.10、最后,完成全部操作后,可以停止守护进程:



$ bin/stop-all.sh


bin下面有很多shell脚本这时可以适当看看名称,猜个大概意思。


下面我会继续给大家一个完全分布式模式的操作方法,敬请稍候。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-311590-1-1.html 上篇帖子: 【Avro三】Hadoop MapReduce读写Avro文件 下篇帖子: 安装Hadoop和HBase中遇到的错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表