hadoop简介
Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储。该库本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用层的故障,从而在计算机集群之上提供高可用性服务,每个计算机都可能容易出现故障。
hadoop的思想之源来源于Google在大数据方面的三篇论文
GFS => HDFS
MapReduce => MapReduce
BigTable => HBase
hadoop的优势:
1)高可靠性:
因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。
2)高扩展性:
在集群间分配任务数据,可方便的扩展数以千计的节点。
3)高效性:
在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
4)高容错性:
自动保存多份副本数据,并且能够自动将失败的任务重新分配。
Hadoop组成:
1)MapReduce(计算):一个分布式的离线并行计算框架。
2)Yarn(资源调度):作业调度与集群资源管理框架。
3)HDFS(数据存储):一个高可靠,高吞吐量的分布式文件系统。
4)common(辅助工具类):支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)。
hadoop安装
说明:
使用3台虚拟机服务器
分别是:10.1.255.121,10.1.255.1212 ,10.1.255.123
ip配置:https://blog.csdn.net/weixin_39806100/article/details/86628013
域名配置
vi /etc/hosts
bigdata121 10.1.255.121
bigdata122 10.1.255.122
bigdata123 10.1.255.123
下载地址:
https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
1,上传解压
我这里的解压目录为:/opt/moudle/hadoop-2.7.3
2,环境变量
vi /etc/profile
添加如下内容
export HADOOP_HOME=/opt/moudle/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
使配置生效
source /etc/profile
3,配置hadoop
cd /opt/moudle/hadoop-2.7.3/etc/hadoop
(1)vi hadoop-env.sh (用于指定jdk路径)
JDK安装
添加
export JAVA_HOME=/opt/moudle/jdk1.8.0_181
(2)vi core-site.xml (hadoop全局配置)
<configuration>
<!-- 配置HDFS主节点,namenode的地址,9000是RPC通信端口 -->
<property>
<name>fs.default.name</name><!-- fs.defaultFS -->
<value>hdfs://bigdata121:9000</value>
</property>
<!-- 配置HDFS数据块和元数据保存的目录,一定要修改 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/moudle/hadoop-2.7.3/tmp</value>
</property>
</configuration>
(3)vi hdfs-site.xml (HDFS配置)
<configuration>
<!-- 数据块的冗余度,默认是3 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- SecondaryNameNode配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata121:50090</value>
</property>
<!-- 配置HDFS的权限检查,默认是true -->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
(4)vi mapred-site.xml (配置MR程序运行的框架,默认没有)
cp mapred-site.xml.template mapred-site.xml
<configuration>
<!-- 配置MR程序运行的框架 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)vi yarn-site.xml(配置Yarn)
<configuration>
<!-- 配置Yarn的节点 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata121</value>
</property>
<!-- NodeManager执行MR任务的方式是Shuffle洗牌 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
(6)vi slaves (配置从节点)
bigdata122
bigdata123
(7)通过HDFS namenode格式化
hdfs namenode -format
成功日志:
Storage directory /opt/moudle/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.
4,scp 拷贝
scp -r /opt/moudle/hadoop-2.7.3/tmp/ root@bigdata122:/opt/moudle/hadoop-2.7.3/tmp/
scp -r /opt/moudle/hadoop-2.7.3/tmp/ root@bigdata122:/opt/moudle/hadoop-2.7.3/tmp/
5,ssh免密登录
#生成钥匙对
ssh-keygen -t rsa
#将公钥拷贝到其它两台机器上
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata121
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata122
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata123
其它两台机器重复上面的操作。
6,启动
cd /opt/moudle/hadoop-2.7.3/sbin
#启动
./start-all.sh
#停止
./stop-all.sh
7,查看java进程
jps
显示结果如下
主节点
7283 Jps
7013 ResourceManager
6859 SecondaryNameNode #第二节点
6670 NameNode #名称节点
从节点
4244 DataNode #数据节点
4469 Jps
4351 NodeManager
8,web访问:
yarn:
http://10.1.255.121:8088
hdfs:
http://10.1.255.121:50070
hadoop运行wordcount 案例
cd /opt/moudle/hadoop-2.7.3/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount ~/temp/a.txt ~/temp/out