`
tmj_159
  • 浏览: 700298 次
  • 性别: Icon_minigender_1
  • 来自: 永州
社区版块
存档分类
最新评论

Hadoop 单节点的部署(来自翻译官方文档和自我实践)

 
阅读更多

英文参考文档链接如下:

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html

 

这篇文章描述了单节点的伪分布式hadoop部署。下面是我根据官方文档进行自我部署测试 。

 

一、写在前面的话

       hadoop包括的东西很多,而且文档上的东西也不一定全都正确 ,再加上运行环境的多样化,学习中途出现各种问题是很常见的,遇到问题的时候,先自己花点时间想想能不能自己解决,如果不能再上网找方法,既然都准备要学习它了,就要有自信,hadoop在牛逼也是一种技术,是技术就没有学不会的。

       还有我的个人建议是不要一上来就开始跑hadoop这种hello级别的例子,先自己了解下hadoop是什么,主要包括哪些方面,这些东西又是干什么的。这时候我们不知道具体操作,但是心里有点概念会让自己对后面学习过程中的一些步骤多些理解。

 

二、说说环境

       操作系统:看官网推荐的是ubuntu系统,所以我用的是64bit 的ubuntu12.10这个版本

       必要软件:ssh 用 apt-get install ssh

                        rsync 用 apt-get install rsync

                        java 用 orache 的 64bit 7u55版本,安装方法见链接

                        hadoop 上官网下2.6.0的stable版本

 

三、准备工作

    将下载的hadoop 解压到/usr/local/下

cp hadoop-2.6.0.tar /usr/local
cd /usr/local
tar xf hadoop-2.6.0.tar
    修改配置文件,我用的是vim,也可以用其他的工具,安装的话也是apt-get install vim

 

 

vim /usr/local/hadoop-2.6.0/etc/hadoop/hadoop-env.sh
    在26行,修改java home的路径 

 

 

export JAVA_HOME="/usr/local/java/jdk1.7.0_55"
    我没有找到 HADOOP_PREFIX的内容所有没有加下面的内容

 

 

export HADOOP_PREFIX=/usr/local/hadoop
    运行hadoop应该会有下面的一些命令提示

 

 

root@mtang-VirtualBox:/usr/local/hadoop-2.6.0/bin# ./hadoop
Usage: hadoop [--config confdir] COMMAND
       where COMMAND is one of:
  fs                   run a generic filesystem user client
  version              print the version
  jar <jar>            run a jar file
  checknative [-a|-h]  check native hadoop and compression libraries availability
  distcp <srcurl> <desturl> copy file or directories recursively
  archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
  classpath            prints the class path needed to get the
  credential           interact with credential providers
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
  trace                view and modify Hadoop tracing settings
 or
  CLASSNAME            run the class named CLASSNAME
 

 

四、独立的hadoop

独立的就是没有配置任何分布式特性的,默认的就是这样,这比较方便调试,下面的命令可以让给你看到点输出信息。

 

$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
$ cat output/*
 

 

五、伪分布式hadoop

 

5.1 修改配置文件

将下面的内容拷贝到你的配置文件/usr/local/hadoop-2.6.0/etc/hadoop/core-site.xml ,刚打开的时候应该是自由<configuration>,中间是空的。

 

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
 如上,拷贝下面内容到配置文件/usr/local/hadoop-2.6.0/etc/hadoop/hdfs-site.xml

 

 

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
 

 

5.2 设置免密码的ssh

       首先试下下面的命令ssh localhost看是否需要密码,如果要那么执行下面的命令,$表示一行的开头,不要拷贝进去了。

 

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
       上面的命令是生成一个证书,然后通过这个证书完成免密码ssh连接

 

 

5.3 开始执行吧

      1. 格式化文件系统,这次我们用到了HDFS了,HDFS是一种分布文件系统,对分布式文件系统不了解的就先把它当作本地的文件系统,FAT32,NTFS之类的,再简单点说就是你的硬盘,这次的任务是格式化你的"硬盘“

 

/usr/local/hadoop-2.6.0/bin/hdfs namenode -format
   

 

   2.接下来我们启动我们的namenode,namenode是hdfs的内容

 

/usr/local/hadoop-2.6.0/sbin/start-dfs.sh
   

 

   3. 这时候我们可以通过浏览器查看namenode的界面,在浏览器输入下面内容,当然如果不是本机localhost换成机器IP吧。

 

http://localhost:50070/
   

 

   4. 在dfs上创建目录吧,用来存放待处理的文件的

 

/usr/local/hadoop-2.6.0/bin/hdfs dfs -mkdir -p /user/root/input

 

 

    5. 把本地待处理的文件拷贝到dfs上的

 

/usr/local/hadoop-2.6.0/bin/hdfs dfs -put /usr/local/hadoop-2.6.0/etc/hadoop/* /user/root/input
 

 

    6. 接下来我们就可以运行期待的已久的hadoop分析任务了,注意是一行

 

/usr/local/hadoop-2.6.0/bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
    如果你多次运行上面的命令碰巧出现下面的错误的话

 

 

org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/root/output already exists
    你需要先删除这个文件夹

 

 

/usr/local/hadoop-2.6.0/bin/hdfs dfs -rm -r /user/root/output
 

 

    7. 好了,运行完了,把结果拷贝到本地磁盘看看

/usr/local/hadoop-2.6.0/bin/hdfs dfs -get /user/root/output /root/output

    看看结果

 

cat /root/output/*
   其实也可以不用拷贝,直接在hfs上看的
/usr/local/hadoop-2.6.0/bin/hdfs dfs -cat /user/root/output/*
    我的结果是这样的
6	dfs.audit.logger
4	dfs.class
3	dfs.server.namenode.
2	dfs.period
2	dfs.audit.log.maxfilesize
2	dfs.audit.log.maxbackupindex
1	dfsmetrics.log
1	dfsadmin
1	dfs.servers
1	dfs.replication
1	dfs.file
   
    8. 别忘了擦屁股,dfs关了
/usr/local/hadoop-2.6.0/sbin/stop-dfs.sh
    
六、YARN的伪分布式hadoop
    YARN 作为第二代map/reduce框架,是必然要替代第一代的,这里我们不管,既然是map/reduce的替代,现在我们运行应该就是替换map/reduce相关的内容,其他的不用动吧。
注:下面的路径我不写全了,假设已经cd到/usr/local/hadoop-*下了
    1. 我们修改配置文件,etc/hadoop/mapred-site.xml,我们可能找不到这个文件,但是我们有mapred-site.xml.template,先拷贝一份出来吧
cp mapred-site.xml.template mapred-site.xml
   然后加入下面内容
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
 然后继续修改 etc/hadoop/yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
   2. 然后启动
sbin/start-yarn.sh
    3. 打开网页可以查看ResourceManager 的页面
http://localhost:8088/
    4. 运行mapreduce的任务
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
    当你运行的时候可能会遇到Connect refused 的错误,提示服务器9000拒绝,然后我们回到前面看看哪里用了9000端口会发现DFS用了,所以继续定位重新启动dfs ,etc/hadoop/start-dfs.sh的日志会发现datanode没有启动,而且会有java.io.IOException: Incompatible clusterIDs的错误,上网查了下是因为做format 的时候没有清空dataNode下的data目录引起的,一个可行的解决方法是手动删除data目录下所有文件。
看下datanode 的日志 ,一般在%hadoop_home%/logs/下,我们会发先我们的datanode的data目录为/tmp/hadoop-root/dfs/data,手动删除即可。
P.S 如果不想这么麻烦就把tmp下的全删除吧,反正我的只有hadoop 相关的内容,当然这个路径是可以设置的,然后从hdfs format开始,again。(亲测可用,来来回回好多遍命令基本都记住了,format namenode ,启动hdfs,创建目录拷贝文件,启动yarn,运行map/reduce任务,查看结果,关闭hdfs和yarn服务,so easy).
    5. 停止
sbin/stop-yarn.sh
    6. 看结果,方法和以前一样

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    基于hadoop对某网站日志分析部署实践课程设计报告参考模板.doc

    基于Hadoop部署实践对网站日志分析 1. 项目概述 本次要实践的数据日志来源于国内某技术学习论坛,该论坛由某培训机构主办,汇聚了众多技术学习者,每天都有人发帖、回帖。至此,我们通过Python网络爬虫手段进行数据...

    hadoop集群部署.docx

    hadoop作为大数据平台,经常需要部署集群,文档非常详细地介绍了hadoop集群的部署过程,两个节点master和slave

    大数据hadoop集群部署-最详细的部署-2.8.5.pdf

    HDFS HA通常由两个NameNode组成,一个处于Active状态,另一个处于Standby状态。Active NameNode对外提供服务,而...Zookeeper的作用是负责HDFS中NameNode主备节点的选举,和YARN框架下ResourceManaer主备节点的选举。

    大数据Hadoop安装部署文档

    主要介绍了Hadoop在windows上伪分布式的安装过程、在Linux单节点伪分布式的安装过程、Eclipse开发环境介绍

    Docker部署本地以及集群hadoop.zip

    资料目录如下: 1. 制作docker基础镜像-01 2. 制作支持ssh的docker镜像-centos7_ssh-01 ...4. 构建基于docker的单节点的HDFS集群-01 5. docker容器跨物理节点通信-01 ...Docker一键部署hadoop分布式.zip

    Hadoop实战手册

    Hive 部署和安装27#安装Hadoop集群,看EasyHadoop安装文档。27#安装Mysql,启动Mysql,检查gc++包。27#解压Hive包并配置JDBC连接地址。27#启动Hive thrift Server。27#启动内置的Hive UI。274. Hive Cli 的基本用法28#...

    hadoop 高可用性HA部署

    hadoop HA 高可用性 本文提供了一个HDFS 的高可用性(HA )功能的概述,以及如何配置和管理HDFS 高可用性(HA) 集群。本文档假定读者具有对HDFS 集群的组件和节点类型具有一定理解

    zookeeper安装部署.zip

    1. 准备一台内存最少8G(建议16G)、cpu i7 4核的电脑 2. 搭建3节点zookeeper集群 3. 完成zookeeper集群安装

    还在为搭建集群的期末作业发愁吗?最简单的搭建hadoop+spark+hive大数据集群搭建文档.docx

    3-4节点,集群部署自己确定,比如集群涉及的多种角色namenode,secondary namenode, datanode,resourcemanager等的节点分配,并用表格形式给出。给出可访问的ip,用户名密码。(阿里云直接给公网ip,校园网需给公网和...

    Hadoop+Hbase+Solr(集成中文分词)分布式部署流程

    由于早期项目的客户服务器重新规划,原来部署应用的员工已离职且部署文档不完整,所以用三个虚机节点搭了简单的Hadoop+Hbase+Solr的环境并形成部署步骤文档给运维人员参考,有兴趣的可以下载一下,以上。

    超详细的在RedHat6.2上配置Hadoop群集环境步骤

    本文档为本人部署hadoop集群过程的总结,该集群有3个节点,分别对应VMware中的三个Linux虚拟机。该过程的每一步本人都截图了,按照此文档部署成功率很高。

    Ambari部署大数据环境文档

    基于Ambari部署大数据开发环境的文档,可以部署成单节点的,也可以配置多节点的,Ambari能刚好的监测集群运行的健康状态,

    zookeeper集群部署文档.txt

    zookeeper是现在大数据领域不可或缺的组件,它用于Hadoop生态圈多个组件的HA配置,协调各个节点有序进行工作,在这里,我将一步一步教你搭建生产使用的zookeeper集群。

    hadoop集群间免秘钥配置

    Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。所以我们需要部署集群,然而集群之间的通讯每次都要输入密码的话很麻烦,所以我们配置集群免秘钥。

    云计算实验报告-(2).doc

    实验报告 项目名称: Hadoop平台部署(两次实验) 课程名称: 云计算技术 班级: 信息工程学院计算机系 linux系统配置(在本实验中,创建了master和slave两个节点) 1主机名的配置 通过语句编辑,将hostname分别改为...

    安全大数据分析框架OpenSOC.zip

    且能够集成已有的分析工具支持实时的Telemetry搜索和跨Telemetry的匹配支持自动生成报告、和异常报警支持原数据包的抓取、存储、重组支持数据驱动的安全模型OpenSOC 官方文档介绍了以下五大优点:由思科全力支持,...

    大数据平台常见面试题.pdf

    a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 注:haoop1.X 分析: hadoop 的集群是基于 master/slave 模式,namenode 和 jobtracker 属于 master,datanode 和 tasktracker属于 slave,master 只 ...

    大数据面试题.doc

    a)它是 NameNode 的热备 b)它对内存没有要求 c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间 d)SecondaryNameNode 应与 NameNode 部署到一个节点 多选题 8. 下列哪项可以作为集群的管理工具 a)...

    大数据面试题(1).doc

    a)它是 NameNode 的热备 b)它对内存没有要求 c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间 d)SecondaryNameNode 应与 NameNode 部署到一个节点 多选题 8. 下列哪项可以作为集群的管理工具 a)...

Global site tag (gtag.js) - Google Analytics