1、大数据概论
大数据解决的问题:存储(分布式)与计算(分布式)
云计算解决的问题:服务(定制化)。是一种虚拟化技术;
关系:大数据技术可以在云上进行完成,云计算的一个功能是实现大数据计算。
分布式:由分布在不同主机上的进程协同在一起,才能构成整个应用(web程序就是一个典型的分布式)
B/S:Browser/ http server : 瘦客户端
存储单位:1bit = 1位(0/1)
1Byte = 8 bit
1KB = 1024Bytes = 2^10Bytes
1MB = 1024Kb = 2^20Bytes
1GB = 1024MB = 2^30Bytes
1TB = 1024GB = 2^40Bytes
1PB = 1024TB = 2^50Bytes(拍)
1EB = 1024PB = 2^60Bytes(艾)
1ZB = 1024EB = 2^70Bytes(泽)
1YB = 1024ZB = 2^80Bytes
1NB = 1024YB = 2^90Bytes
1DB = 1024NB = 2^100Bytes
大数据的四个特征:(1)volume:体量大、存储量大、增量大
(2)variety:样式多,结构多(结构化、半结构化、非结构化)
(3)velocity:速度快(高速数据)
(4)valueless:价值密度低
RAID:磁盘冗余阵列
去IOE:IBM:ibm小型机 Oracle:Oracle数据库服务器,RAC EMC:EMC共享存储设备。IOE模式下,用硬件做高可用
failure over:容灾(硬件故障)
fault over:容错(软件故障)
Hadoop的四个模块:
(1)common
(2)hdfs
(3)hadoop yarn
(4)hadoop mapreduce(mr)
Hadoop简介:Apache开源软件,计算框架特性分布式、可靠、可伸缩(对容量),主要用于搜索引擎以及对海量数据的存储。
Hadoop发展史:2002,Apache Nutch:抓取网页,数十亿存储瓶颈
2003,GFS论文
2004,Nutch开发NDFS,即NDFS前身。N代表Nutch
2004,Google发表mapreduce(映射和化解)
2005,NUtch应用MR,主要算法转移到MR和NDFS运行
2006,Mapreduce的NDFS从Nutch分离形成Hadoop作为独立的Lucene子项目
2006,Doug Cutting加入Yahoo
2008.2,Yahoo/1w内核/hadoop/
2008,4,Yahoo/1T排序/209秒/910节点
2008.11,Google/1T/68秒
2009.5,Yahoo/1T/62秒
现状:Yahoo,4.2W节点/10WCPU/大群4500节,主要用于广告、用户行为分析、反垃圾邮件
Facebook,1400台/1.12WCPU/15PB
百度,单群2800节点/上万台/存储100PB
阿里,3200,/30000 core/100T men/60PB
腾讯,5000/单群2000/
2、安装Hadoop
(1)安装JDK
a)下载jdk-8u65-linux-x64.tar.gz
b)tar开
$>su centos ; cd ~
$>mkdir downloads
$>cp /mnt/hdfs/downloads/bigdata/jdk-8u65-linux-x64.tar.gz ~/downlooads
$>tar -xzvf jdk-8u65-linux-x64.tar.gz
c)创建/soft文件夹
$>sudo mkdir /soft
$>sudo chown centos:centos /soft
d)移动tar开的文件到/soft下
$>mv ~/downloads/jdk-1.8.0_65 /soft/
e)创建符号连接
$>ln -s /soft/jdk-1.8.0_65 /soft/jdk
f)验证jdk安装是否成功
$>cd /soft/jdk/bin
$>./java -version
(2)centos配置环境变量
1.编辑/etc/profile
$>sudo nano /etc/profile
...
export JAVA_HOME=/soft/jdk
exprot PATH=$PATH:$JAVA_HOME/bin
2.使环境变量即刻生效
$>source /etc/profile
3.进入任意目录下,测试是否ok
$>cd ~
$>java -version
3、安装hadoop
-------------------------
(1)安装hadoop
a)下载hadoop-2.7.3.tar.gz
b)tar开
$>su centos ; cd ~
$>cp /mnt/hdfs/downloads/bigdata/hadoop-2.7.3.tar.gz ~/downloads
$>tar -xzvf hadoop-2.7.3.tar.gz
c)无
d)移动tar开的文件到/soft下
$>mv ~/downloads/hadoop-2.7.3 /soft/
e)创建符号连接
$>ln -s /soft/hadoop-2.7.3 /soft/hadoop
f)验证jdk安装是否成功
$>cd /soft/hadoop/bin
$>./hadoop version
(2)配置hadoop环境变量
$>sudo nano /etc/profile
...
export JAVA_HOME=/soft/jdk
exprot PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(3)生效
$>source /etc/profile
(4)配置hadoop
--------------------
1.standalone(local)
nothing !
不需要启用单独的hadoop进程。
2.Pseudodistributed mode
伪分布模式。
a)进入${HADOOP_HOME}/etc/hadoop目录
b)编辑core-site.xml //配置文件系统
<?xml version="1.0"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost/</value> //URL,localhaost为主机名:8020
</property>
</configuration>
c)编辑hdfs-site.xml //配置副本
<?xml version="1.0"?>
<configuration>
<property>
<name>dfs.replication</name> //副本,对于为分布式来说只有一个节点,所以只有一个副本即本身
<value>1</value> //1代表的是副本格式
</property>
</configuration>
d)编辑mapred-site.xml //配置yarn框架
注意:cp mapred-site.xml.template mapred-site.xml //文件中原有的文件为mapred-site.xml.template,需要将其复制一份并更名为mapred-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
e)编辑yarn-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name> //资源管理主机名
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
f)配置SSH //安全远程连接
1)检查是否安装了ssh相关软件包(openssh-server(服务端安装软件) + openssh-clients(客户端安装软件) + openssh)
$yum list installed | grep ssh //检查是否安装ssh
2)检查是否启动了sshd进程
$>ps -Af | grep sshd
3)在client侧生成公私秘钥对。
$>which ssh-keygen //查看是否有公私密钥对
$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa //命令在openssh包中
//生成密钥 使用rsa算法 ‘’为密码 存放到 文件夹
4)生成~/.ssh文件夹,里面有id_rsa(私钥) + id_rsa.pub(公钥)
5)追加公钥到~/.ssh/authorized_keys文件中(文件名、位置固定)
$>cd ~/.ssh
$>cat id_rsa.pub >> authorized_keys
6)修改authorized_keys的权限为644.
$>chmod 644 authorized_keys
7)测试
$>ssh localhost
sshd:ssh daemon服务
ssh使用的协议是TCP协议