Hadoop认识
Hadoop包含的模块:
- Hadoop Common:支持其他hadoop模块的公用工具包;
- HDFS:高吞吐量访问的分布式文件系统;
- Hadoop YARN:任务调度和集群资源管理的框架;
- Hadoop MapReduce:基于YARN并行处理大数据集的系统。
Hadoop其他相关项目:
- Ambari:一个web管理工具;
- Avro:数据序列化系统;
- Cassandra:可扩展的无单点失败的多主数据库;
- Chukwa:管理大分布式系统的数据集系统;
- HBase:支持大表存储结构化数据的可扩展的分布式数据库;
- Hive:数据仓库基础设施,提供数据汇总和即席查询;
- Mahout:可扩展的机器学习和数据挖掘库;
- Pig:一个高层次的数据流语言和并行计算执行框架;
- Spark:Hadoop的数据的快速和通用计算引擎。Spark提供了支持广泛的应用,包括ETL,机器学习,流处理和图形计算的简单和表现的编程模型;
- Tez:广义数据流编程框架;
- ZooKeeper:分布式应用的高性能协调服务。
Hadoop伪分布式环境配置
- 下载Hadoop,直接去官网下载;
- 修改hadoop的java环境,下载完hadoop后,解压,找到hadoop中etc/hadoop/hadoop-env.sh
# set to the root of your Java installation
export JAVA_HOME=/usr/java/latest(设置为java的安装目录)
- 配置
- etc/hadoop/core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
- etc/hadoop/hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
- etc/hadoop/core-site.xml
- 执行
- 格式化文件系统
$ bin/hdfs namenode -format
- 启动后台线程
$ sbin/start-dfs.sh
- 浏览器访问
http://localhost:50070/ - 执行MapReduce任务
$ bin/hdfs dfs -mkdir /user // 创建目录 $ bin/hdfs dfs -mkdir /user/<username> //username必须是当前登录用户名,否则会报找不到input目录的错误
- 赋值目录文件
$ bin/hdfs dfs -put etc/hadoop input
- 运行例子
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
- 测试输出结果
$ bin/hdfs dfs -get output output $ cat output/* 或者 $ bin/hdfs dfs -cat output/*
- 关闭
$ sbin/stop-dfs.sh
- 格式化文件系统
- YARN的方式执行任务
1-4部同上- 配置etc/hadoop/mapred-site.xml
首先从mapred-site-template.xml拷贝一份重命名为mapred-site.xml,然后再修改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>
- 以yarn方式启动
$ sbin/start-yarn.sh
- 浏览器查看
http://localhost:8088/ - 停止
$ sbin/stop-yarn.sh
- 配置etc/hadoop/mapred-site.xml