Aleks 2019-06-26
Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台。允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理
大规模数据:通常也就1PB以上吧.
Hadoop核心组件有
1.HDFS(分布式文件系统):解决海量数据存储 2.YARN(作业调度和集群资源管理的框架):解决资源任务调度 3.MAPREDUCE(分布式运算编程框架):解决海量数据计算
现在说Hadoop,一般都是指Hadoop生态圈.就是下面这张图片.
MAPREDUCE:分布式运算程序开发框架 HIVE:基于HADOOP的分布式数据仓库,提供基于SQL的查询数据操作 HBASE:基于HADOOP的分布式海量数据库 ZOOKEEPER:分布式协调服务基础组件 Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库 Oozie:工作流调度框架 Sqoop:数据导入导出工具(比如用于mysql和HDFS之间) Flume:日志数据采集框架 Impala:基于Hadoop的实时分析
Hadoop特性优点
1.**扩容能力**(Scalable):Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可用方便的扩展到数以千计的节点中。 2.**成本低**(Economical):Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低。 3.**高效率**(Efficient):通过并发数据,Hadoop可以在节点之间动态并行的移动数据,使得速度非常快。 4.**可靠性**(Rellable):能自动维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。所以Hadoop的按位存储和处理数据的能力值得人们信赖。
集群模式主要用于生产环境部署。会使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上
hadoop1 NameNode DataNode ResourceManager hadoop2 DataNode NodeManager SecondaryNameNode hadoop3 DataNode NodeManager
准备工作:
开始安装
修改hadoop-env.sh 文件 . vi hadoop-env.sh .因为hadoop要在java环境下运行
export JAVA_HOME=#java环境变量的路径
修改core-site.xml文件 vi core-site.xml
<configuration> #<!-- 设置Hadoop的文件系统,由URI指定 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop1:9000</value> </property> <property> <name>hadoop.tmp.dir</name> #/export/data/hddata 需要自己创建目录 <value>/export/data/hddata</value> </property> </configuration>
修改hdfs-site.xml 文件
<configuration> <!-- HDFS副本的数量 --> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop1:50090</value> </property> </configuration>
修改mapred-site.xml文件 vi mapred-site.xml
<configuration> #<!-- mr运行时框架,这里指定在yarn上--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
修改 yarn-site.xml 文件 vi yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop1</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
启动后,hadoop1 执行 jps命令查看是否启动成功. 成功显示这几个进程. NameNode,ResourceManager,DataNode,SecondaryNameNode,NodeManager hadoop2 和 hadoop3显示 NodeManager DataNode 进程. 启动成功后 ,浏览器打开http://(linux1的IP地址):50070 ,http://(linux1的ip地址):8088地址查看集群. 完毕!!!