1.Hadoop
a.Common
b.Distributed File System (HDFS™)(一个分布式文件系统,提供对应用程序数据的高吞吐量访问)
c.YARN(作业调度和集群资源管理的框架)
d.MapReduce(大型数据集并行处理系统)
Hadoop Cluster
前提条件:
- 支持的平台:Linux
- 需要的软件:Java、ssh
配置文件:
- /etc/profile(配置HADOOP_HOME)
- hadoop-env.sh(配置JAVA_HOME)
- yarn-env.sh
- core-site.xml(fs.defaultFS=hdfs://10.10.11.225:9000、io.file.buffer.size=131072)
- hdfs-site.xml(dfs.namenode.name.dir=hadoop/hdfs/name、dfs.hosts / dfs.hosts.exclude、
dfs.blocksize=268435456、dfs.namenode.handler.count=100、dfs.datanode.data.dir=hadoop/hdfs/data)
- mapred-site.xml(http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html)
- yarn-site.xml(yarn.acl.enable=false/true)
- slaves(列出所有员工主机名或IP地址,每行一个)
- log4j.properties(自定义日志)
- 配置免密登录ssh
- 格式化文件系统(hdfs namenode -format )
相关进程:
- HDFS daemons(NameNode、SecondaryNameNode、DataNode)
- YARN daemons(ResourceManager、NodeManager、WebAppProxy)
- MapReduce Job History Server
Monitoring Health of NodeManagers(配置在yarn-site.xml中)
hadoop start
- /sbin/hadoop-daemon.sh –config /etc/hadoop –script hdfs start namenode
- /sbin/hadoop-daemons.sh –config /etc/hadoop –script hdfs start datanode
- /sbin/start-dfs.sh
- /sbin/yarn-daemon.sh –config /etc/hadoop start resourcemanager
- /sbin/yarn-daemons.sh –config /etc/hadoop start nodemanager
- /sbin/yarn-daemon.sh –config /etc/hadoop start proxyserver
- /sbin/start-yarn.sh
- /sbin/mr-jobhistory-daemon.sh –config /etc/hadoop start historyserver
Web Interfaces
- NameNode(50070)
- ResourceManager(8088)
- MapReduce JobHistory Server (19888)
API
2.Ambari(Hadoop分布式集群配置管理工具)
3.Avro(数据序列化的系统)
4.Cassandra(Column-based NOSQL数据库)
5.chukwa(一个开源的用于监控大型分布式系统的数据收集系统)
6.Hbase(分布式的、面向列的开源数据库)
7.Hive(基于Hadoop的一个数据仓库工具)
API
前提条件:
- Java1.7以上
- Hadoop2.X
- 配置HIVE_HOME
8.Mahout(提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。)
9.Pig(基于hadoop的一个数据处理的框架)
10.Spark(Hadoop数据的快速通用计算引擎。Spark提供了一个简单和表达性的编程模型,它支持广泛的应用程序,包括ETL、机器学习、流处理和图形计算。)
11.Tez(针对Hadoop数据处理应用程序的新分布式执行框架)
12.ZooKeeper(是一个分布式的,开放源码的分布式应用程序协调服务)
-支持的平台:Linux(Client、Server、NativeClient、Contrib)支持最好
-所需的软件:Java7以上、三个ZooKeeper服务器是一个集成的最小建议大小,我们还建议它们在不同的机器(双核处理器、2GBRAM、80GB硬盘)上运行
- 多服务器集群设置
1、安装JDK
2、设置Java堆大小
3、安装Zookeeper服务器包
4、zookeeper/conf/zoo.cfg
(tickTime=2000
dataDir=/var/lib/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888)
5、设置myid文件(1-255的数字)
6、启动zookeeper服务bin/zkServer.sh
7、测试bin/zkCli.sh -server 127.0.0.1:2181
13.Storm(分布式实时计算系统)
- 为什么要用Storm?
使可靠的数据流处理变得容易,实时处理hadoop的批处理,有很多用例:实时分析、在线机器学习、持续计算、分布式RPC、ETL,与您已经使用的队列和数据库技术相结合
- 与storm集成的队列(kestrel、RabbitMQ/AMQP、kafka、JMS、Amazon Kinesis)
- 基准是每秒钟处理100万字节的消息,每个节点的硬件上有以下规格:
英特尔处理器:2 x E5645@2.4Ghz、内存:24gb
- 设置Storm集群
1、配置一个zookeeper集群
2、在Nimbus和工作机器上安装Storm的依赖关系(Java7和8、Python 2.6.6 及以上)
3、安装storm
4、/conf/storm.yaml
5、启动(bin/storm nimbus、bin/storm supervisor、bin / Storm UI)
14.Kafka
- 发布与订阅(读取和写入数据流)
- process(编写可伸缩的流处理应用程序,以实时地对事件做出反应)
- 存储(在分布式、复制、容错集群中安全地存储数据流)
两大类应用
1、构建实时的流媒体数据管道,能够可靠地在系统或应用程序之间获取数据
2、构建实时的流媒体应用程序来转换或响应数据流
四个核心API
1、Producer API (允许应用程序将一条记录流发布到一个或多个Kafka主题)
2、ConsumerAPI(允许应用程序订阅一个或多个主题,并处理生成的记录流)
3、Streams API(允许应用程序充当流处理器,使用来自一个或多个主题的输入流,并将输出流输出到一个或多个输出主题,从而有效地将输入流转换为输出流)
4、Connector API (允许构建和运行可重用的生产者或消费者,将Kafka主题连接到现有的应用程序或数据系统)
QuickStart
1、安装zookeeper Server
2、安装Kafka
3、创建一个主题
4、发送一些消息
5、开启消费者
6、建立一个集群
- 复制3份server.properties
15.Impala (新型查询系统,能查询存储在Hadoop的HDFS和HBase中的PB级大数据)
16.Sqoop(用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中)
17.Flume(高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力)
18.Hue(是一个开源的Apache Hadoop UI系统)
19.Solr (独立的企业级搜索应用服务器)
初识大数据
最新推荐文章于 2020-04-09 20:31:12 发布