分布式
由分布在不同主机上的进程(程序)协同在一起才能构成整个应用。
Browser/web server:瘦客户端程序.
大数据4V特征
1.Volumn : 体量大
2.Velocity : 速度快
3.Variaty : 样式多
4.Value : 价值密度低
Hadoop
可靠的、可伸缩的、分布式计算的开源软件.
是一个框架、允许跨越计算机集群的大数据集处理,使用简单的编程模型(MapReduce)。
可从单个服务器扩展到几千台主机,每个节点提供了计算和存储的功能。而不是依赖高可用性的机器
依赖于应用层面上的实现,
Hadoop 模块
1.hadoop common 公共类库
2.HDFS hadoop 分布式文件系统
3.Hadoop Yarn 作业调度和资源管理框架
4.Hadoop MapReduce 基于yarn系统的大数据集并行处理技术
MapReduce 工作原理
Hadoop安装
- Jdk(建议使用JDK 1.8.11)
- Tar hadoop.tar.gz(建议使用Hadoop 2.7.3)
30 hostnamectl set-hostname hadoop01
31 hostname
32 vi /etc/hosts
34 cd /
35 mkdir software
36 cd /software/
37 tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt
42 echo $PATH
43 cd /software/
44 ll
45 tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz
46 mv hadoop-2.6.0-cdh5.14.2 /opt/hadoop
48 cd /opt
49 vi /etc/profile
50 source /etc/profile
53 hadoop
54 hadoop version
- 配置环境变量
export JAVA_HOME=/opt/java8
export CLASSPATH=.:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export HADOOP_HOME=/opt/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_INSTALL=$HADOOP_HOME
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
- 配置hadoop ${HADOOP_HOME}/etc/hadoop/*-site.xml
a) Standalone | local 单机模式
i. 没有守护进程、所有程序运行在同一JVM中,利于test和debug
b) Pseduo distributed Mode 伪分布模式
修改Hadoop配置文件:路径:
/opt/hadoop/etc/hadoop
i. 修改Core-site.xml
5. Fs.defaultFS = hdfs://192.168.220.129:9000 默认文件系统(本地默认 file:/位置)此处端口与HBASE端口设成一样
6. hadoop.tmp.dir=/usr/local/softwave/hadoop-2.7.3/tmp
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.237.101:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.native.lib</name>
<value>false</value>
<description>Should native hadoop libraries, if present, be used.
</description>
</property>
ii. hdfs-site.xml
1.dfs.replication = 1 (副本个数,最少3个伪分布只写1个)
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.237.101:50090</value>
</property>
修改hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/opt/java8
a) 进程于主机关系
iii. mapred-site.xml (CP)
1. mapreduce.framework.name=yarn //设置映射化简模型框架为yarn
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.237.101:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.237.101:19888</value>
</property>
iv. yarn-site.xml
a) yarn.resourcemanager.localhost=localhost//yarn站点名称
b) yarn.nodemanager.aux-service=mapreduce_shuffle//辅助节点管理
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- 日志聚集功能使用 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
slaves文件设置为当前主机名:
hadoop01
v. 配置SSH(安全套接字处理)
- 目的是使用脚步启动远程服务器的启动,必须使用shell登陆远程服务,但每个登陆都需要输入密码就非常麻烦,所有需要配置无密配置,需要在NameNode上生成私钥,把公钥发给DataNode
- 步骤
a) 生成秘钥对
i. ssh-keygen –t rsa –P ‘’ –f ~/.ssh/id_rsa
b) 把公钥拷贝到秘钥库中
i. 伪分布式复制到自己 - cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ii. 完全分布式复制到DataNode - Scp root@主机名:~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
c) 把authorized_key权限设置为600
i. Chmod 600 ~/.ssh/authorized_keys
vi. 格式化NameNode - hdfs namenode –format
vii. 启动hadoop
- 命令(都存放在sbin 文件夹下)
a) ./Start-all.sh
b) ./Start-dfs.sh start-yarn.sh
一键关闭开启
测试:
hdfs dfs -ls /
hadoop fs -mkdir /test
上传一个文件:
hadoop fs -put README.txt /test
执行
hadoop jar share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /test/README.txt /output
在执行:hdfs namenode –format 前先删除Hadoop目录下的tmp和logs文件夹