Hadoop7天课程 java
hadoop前景node
apache的开源项目linux
海量数据的存储(HDFS) sql
---Hadoop分布式文件系统,解决机器怎么存储 shell
海量数据的分析(MapReduce) 数据库
----分布的计算模型,解决机器怎么干活,区分主从 apache
资源管理调度(YARN) 编程
---另外一个资源调用系统,hadoop2.0以后出现,之前只能MapReduce vim
(不局限于mapreduce:storm实时流、mpi等) windows
Hadoop的商业版本cdh,已经提供技术支持
lucene的做者
gfs谷歌的分布式文件系统---hdfs数据存储
mapreduce谷歌分布式计算模型----mapreduce数据分析
bigtable大表数据库---hbase列式数据库(介于关系型和nosql之间)怎么存储
hadoop擅长日志分析,主要处理离线数据(分析之前产生的数据),facebook就用Hive来进行日志分析,2009年时facebook就有非编程人员的30%的人使用HiveQL进行数据分析;淘宝搜索中的自定义筛选也使用的Hive;利用Pig还能够作高级的数据处理,包括Twitter、LinkedIn 上用于发现您可能认识的人,能够实现相似Amazon.com的协同过滤的推荐效果。淘宝的商品推荐也是!在Yahoo!的40%的Hadoop做业是用pig运行的,包括垃圾邮件的识别和过滤,还有用户特征建模。(2012年8月25新更新,天猫的推荐系统是Hive,少许尝试mahout!)
storm作实时推荐
Hadoop被公认是一套行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力。几乎全部主流厂商都围绕Hadoop开发工具、开源软件、商业化工具和技术服务。今年大型IT公司,如EMC、Microsoft、Intel、Teradata、Cisco都明显增长了Hadoop方面的投入
扩展知识:参照淘宝双十一解决方案
淘宝数据魔方的真实面目
官方版本(2.4.1)
使用下载最多的版本,稳定,有商业支持,在Apache的基础上打上了一些patch。推荐使用。
Hortonworks公司发行版本。
Hdfs分布式文件系统
Mapreduce并行计算框架
Yarn资源管理调度系统(运行符合规则的程序)
Yarn的出现使得hadoop能够支持多个计算框架(不只是mapreduce)
经过水平扩展机器数量来提升存储数据的能力
主节点,只有一个: namenode,负责管理
从节点,有不少个: datanode 负责存储
接收用户操做请求
维护文件系统的目录结构
管理文件与block之间关系,block与datanode之间关系
存储文件
文件被分红block存储在磁盘上
为保证数据安全,文件会有多个副本
map:大任务分解为若干个小任务
reduce:小任务再汇总整合成大任务的结果
Rack:机架、switch:交换机、datanode:hdfs的小弟(从节点)
本地模式:eclipse调试用,只启一个mapper一个reduce
伪分布模式:一台机器模拟多台机器
集群模式:真实的生产环境
1.0点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.1.0 子网掩码:255.255.255.0 -> apply -> ok
回到windows --> 打开网络和共享中心 -> 更改适配器设置 -> 右键VMnet1 -> 属性 -> 双击IPv4 -> 设置windows的IP:192.168.1.110 子网掩码:255.255.255.0 -> 点击肯定
在虚拟软件上 --My Computer -> 选中虚拟机 -> 右键 -> settings -> network adapter -> host only -> ok
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=itcast01 ###
两种方式:
第一种:经过Linux图形界面进行修改(强烈推荐)
进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections -> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 -> 添加IP:192.168.1.119 子网掩码:255.255.255.0 网关:192.168.1.1 -> apply
第二种:修改配置文件方式(屌丝程序猿专用)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:2C:BF:E3"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ce22eeca-ecde-4536-8cc3-ef0fc36d6a8c"
IPADDR="192.168.56.32 "
NETMASK="255.255.255.0"
GATEWAY="192.168.56.1"
----x至关于本地的dns
vim /etc/hosts
192.168.56.31 jkdong01
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
reboot
#建立文件夹
mkdir /usr/java
#解压
tar -zxvf jdk-7u55-linux-i586.tar.gz -C /usr/java/
vim /etc/profile
#在文件最后添加
export JAVA_HOME=/usr/java/jdk1.7.0_55
export PATH=$PATH:$JAVA_HOME/bin
#刷新配置
source /etc/profile
#解压到/itcast/目录下
tar -zxvf hadoop-2.2.0.tar.gz -C /itcast/
Cd etc/hadoop
第一个:hadoop-env.sh—指定环境变量
#在27行修改
第二个:core-site.xml—hadoop核心配置
第三个:hdfs-site.xml—hdfs节点配置
第四个:mapred-site.xml.template 须要重命名: mv mapred-site.xml.template mapred-site.xml
第五个:yarn-site.xml
命令:vim /etc/profile
再执行:source /etc/profile刷新配置
hadoop namenode -format(过期了可是依然可用)
hdfs namenode -format(现用的格式化命令)
先启动HDFS
sbin/start-dfs.sh
再启动YARN
sbin/start-yarn.sh
使用jps命令验证
Ssh即安全的shell命令
生成ssh免登录密钥
cd ~,进入到个人home目录
cd .ssh/
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免登录的机器上
/root/.ssh目录下:cp id_rsa.pub authorized_keys
或
ssh-copy-id 192.168.56.32
这样server A就能够对server B进行免密码登陆
课程安排:
Datanode会横向流水线方式复制文件产生副本
上传的文件还会分block块(hadoop块的大小128M)
用一个系统来管理多台机器上的文件(冗余存储)
容许经过网络分享文件和存储空间
通透性:访问远程文件就像访问本地资源同样
容错:持续运行而不会使数据损失
Hdfs就是一种分布式文件系统,不支持并发写(按block块的顺序写),小文件不适合(hadoop1.x)
常见分布式文件系统:gfs(谷歌文件系统),hdfs、Lustre。。。