关闭

Hadoop知识点记录

标签: Hadoop 知识点总结
542人阅读 评论(0) 收藏 举报

 

   HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心,HDFS在集群上实现了分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理,HDFS


在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发,跟踪,执行等工作,并收集结果,二者相互作用,完成了


Hadoop分布式集群的主要任务


    对于SSH无密码登录,网络上的文章大多互相转载,都认为需要Master和Slave之间需要互相配置无密码,其实并不是这样的。通过验证后准确的总结下面这句话


在实际应用中,只需要配置从Master到所有的Slave发现SSH连接的时候不需要密码就可以了,但是这样就只能在Master的主机上启动或者关闭hadoop服务


因为在执行start dfs 或者start yarn的实际过程中,hadoop框架会查找对应执行主机上的masters文件以及slaves的文件,分别SSH到以上文件中指明的主机中执行对应的命令


所以在实际测试中,在Master执行start-dfs的时候,会在Master上启动namenode,而在Slave上启动nodenode,并不是Master通过RPC之类的方式进行的启动,而是Master


通过SSH无密码登录到Slave上,进行的对应命令调用。



    通过测试记录以下知识点


1)在配置SSH无密码登录的时候,实际上是只需要配置master能ssh到slave即可,这样就只能在master上启动整个hdfs环境,也就说如果在某个slave能够ssh到其他所有的主


机,包括master和slave,这样就可以在那台slave上执行start-dfs去启动整个hdfs,所以说一般情况下,如果可以在master上进行操作,只需要配置单向即可


2)在网上转载的文章上很多都说明需要在etc/hadoop下配置masters文件和slaves文件,在实际操作的时候,可以验证是不需要masters文件的,应该是需要slaves文件的,因


为启动主机并不是根据masters文件中的host去启动namenode,而是通过core-site.xml中配置的host去找到master,再去启动整个环境的


3) 在启动yarn服务的时候,首先发现是只能在启动主机上运行resourcemanage的,也就是jobstack。这就说明了并不一定要在namenode上运行。其次发现并不能在启动主


机上去指定其他主机启动resourcemanage,在测试的时候,在slave上的yarn-site.xml上指定master的host地址,在启动的时候会提示无法绑定地址,导致resourcemanage无


法正常运行,而改为启动主机host则可,这就说明,启动yarn应该不是走的SSH登录的方式,猜测应该是只能绑定本机的端口启动resourcemanage


4) 在启动hdfs服务的时候,启动主机会根据core-site.xml中配置的地址去ssh到指定master上启动,这一步是没问题的,此时在master主机上的core-site.xml的配置的


fs.default.name地址必须是本机地址,其实也就是在整个集群中的配置文件在实际运维中都是相同的,所以不会存在问题,在测试的过程中修改了上步描述的在master主机上的


core-site.xml的配置,会跟上面的3点的错误信息一样,也是无法绑定地址,这也是很明显的,因为只能绑定到本机的机制。


   在实际使用的时候,还是建议启动hdfs和yarn都在master上进行操作,而且保证所有主机上的配置文件保持一致,这也是实际运维过程中的正确做法,这样就可以避免配置文


件不一致导致的无法启动集群的问题,上述测试主要是为了验证一些不清楚的地方,在后续的测试不再考虑以上的情况




   Apache Hive数据仓库软件提供对存储在分布式中的大型数据集的查询和管理,本身是建立在Apache Hadoop之上,主要提供以下功能:


1) 提供了一系列的工具,可用来对数据进行提取,转化和加载

2) 是一种可以存储,查询和分析存储在HDFS或者HBase中的大规模数据的机制

3) 查询是通过MapReduce来完成的,并不是所有的查询都需要MapReduce来完成,比如select * from XXX就不需要


Hive在hadoop生态圈中属于数据仓库的角色,能够管理hadoop涨的数据,同时可以查询hadoop中的数据

本质上说,hive是一个SQL解析引擎,Hive可以将SQL查询转换为MapReduce中的job来运行


Hive的三种模式


1. 内嵌模式,特点是hive服务和metastore服务运行在同一个进程中,hive默认的数据库使用derby,这种模式下derby服务也运行在该进程中,该模式无需特殊配置

2. 本地模式,特点是hive服务和metastore服务运行在同一个进程中,mysql是单独的进程,可以在同一台机器上,也可以在远程机器上,该模式只需要将hive-site.xml中的

    ConnectionURL指向mysql,并配置好驱动名,数据库连接账号。

3. 远程模式,特点是hive服务和metastore服务在不同的进程内,可能是不同的机器,该模式需要将hive.metastore.local设置为false,并将hive.metastore.uris设置为metastore     服务器的URI,如有多个metastore服务器,URI之间用逗号分隔,metastore服务器URI的格式为thrift://127.0.0.1:10000

<property>

       <name>hive.metastore.uris</name>

       <value>thrift://127.0.0.1:9083</value>

 </property>


整理来说,其实仅仅的连接远程mysql并不能称为远程模式,是否属于远程模式指的是metastore和hive服务是否在同一个进程内




 

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:39555次
    • 积分:556
    • 等级:
    • 排名:千里之外
    • 原创:22篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    文章分类