电子工业出版社《云计算(第二版)》配套课件
第6章 Hadoop:Google云计算的开源实现
解放军理工大学 刘鹏 教授主编 华东交通大学 刘鹏 制作
《云计算(第二版)》购买网址: 当当网 京东商城
姊妹力作《实战Hadoop》购买网址: 当当网 京东商城
提 纲 Hadoop简介
Hadoop分布式文件系统HDFS 分布式数据处理MapReduce 分布式结构化数据表HBase Hadoop安装 HDFS使用 HBase安装使用 MapReduce编程
在Linux系统中安装Hadoop
1.安装环境配置1)安装Linux虚拟机 安装软件VMware Workstation v7.1.3 2)安装SSH $ sudo apt-get install ssh 3)安装Java $ cd /usr/java/ $ /mnt/hgfs/share/jdk-6u24-linux-i586.bin 4)解压Hadoop安装包 $ tar –zxvf /mnt/hgfs/share/hadoop-0.20.2.tar.gz 5)编辑conf/hadoop-env.sh文件 $ vi conf/hadoop-env.sh
在Linux系统中安装Hadoop
2.安装步骤1)单机模式 默认情况下,Hadoop被配置成一个以非分布式模式运行 的独立Java进程,适合开始时做调试工作 WordCount实例 $ mkdir input $ cd input $ echo "hello world" >test1.txt $ echo "hello hadoop" >test2.txt $ bin/hadoop jar hadoop-mapred-examples-0.20.2.jar wordcount input output 查看执行结果 $ cat output/*
在Linux系统中安装Hadoop2.安装步骤2)伪分布式模式(1)Hadoop配置
用不同的Java进程模拟分布式运行中各类节点
core-site.xml配置文档hdfs-site.xml配置文档
mapred-site.xml配置文档
在Linux系统中安装Hadoop(2)免密码SSH设置 生成密钥对 $ ssh-keygen -t rsa 一直按【Enter】键,按照默认的选项将生成的密钥对保存 在.ssh/id_rsa文件中 进入.ssh目录 $ cp id_rsa.pub authorized_keys 执行$ ssh localhost,可以实现用SSH 连接并且不需要输入密码
将密钥对保存在.ssh/id.rsa文件中
在Linux系统中安装Hadoop(3)Hadoop运行 (a)格式化分布式文件系统 $ bin/hadoop namenode –format (b)启动Hadoop守护进程 $ bin/start-all.sh 成功执行后将会在本机上启动NameNode、DataNode、JobTracker、 TaskTracker和Secondary NameNode 5个新的Java进程 (c)运行WordCount实例 $ bin/hadoop dfs –copyFromLocal input in $ bin/hadoop jar hadoop-mapred-examples-0.20.2.jar wordcount in out 查看Hadoop分布式文件系统上数据处理的结果 $ bin/hadoop dfs -cat out/* 把输出文件从Hadoop分布式文件系统复制到本地文件系统查看 $ bin/hadoop dfs -get out output $ cat output/* (d) 停止Hadoop守护进程。最后需要停止Hadoop守护进程 $ bin/stop-all.sh
在Linux系统中安装Hadoop3)完全分布式模式(1)配置NameNode和DataNode (2)在所有的机器上建立相同的用户grid$ useradd -m grid $ passwd grid
(3)SSH配置在所有机器上建立.ssh目录 在ubuntunamenode上生成密钥对 $ mkdir .ssh $ ssh-keygen -t rsa
配置ubuntunamenode的 /etc/hosts
ub
untudata1和 ubuntudata2的hosts配 置
在Linux系统中安装Hadoop(3)SSH配置 然后一直按【Enter】键,就会按照默认的选项将生成的密钥对保存 在.ssh/id_rsa文件中 $cd ~/.ssh $cp id_rsa.pub authorized_keys $scp authorized_keys ubuntudata1:/home/grid/.ssh $scp authorized_keys ubuntudata2:/home/grid/.ssh 最后进入所有机器的.ssh目录,改变authorized_keys文件的许可权限 $chmod 644 authorized_keys (4)在所有机器上配置Hadoop 在ubuntunamenode上配置 (a)编辑core-site.xml、hdfs-site.xml和mapred-site.xml (b)编辑conf/masters,修改为master的主机名,每个主机名一行,此外 即为ubuntunamenode (c)编辑conf/slaves,加入所有slaves的主机名,即ubuntudata1和 ubuntudata2 (d)把Hadoop安装文件复制到其他机器上 $ scp –r hadoop-0.20.2 ubuntudata1:/home/grid $ scp –r hadoop-0.20.2 ubuntudata2:/home/grid (e)编辑所有机器的conf/hadoop-env.sh文件
在Linux系统中安装Hadoop(5)Hadoop运行 格式化分布式文件系统 $bin/hadoop namenode -format 启动Hadoop守护进程 $ bin/start-all.sh $/usr/java/jdk1.6.0_24/bin/jps
格式化分布式文件系统
启动Hadoop守护进程
在Linux系统中安装Hadoop 用户也可以根据自己的需要来执行如下命令 (a)start-all.sh:启动所有的Hadoop守护进程,包括NameNode、DataNode、 JobTracker和Tasktrack (b)stop-all.sh:停止所有的Hadoop守护进程 (c)start-mapred.sh:启动Map/Reduce守护进程,包括JobTracker和 Tasktrack (d)stop-mapred.sh:停止Map/Reduce守护进程 (e)start-dfs.sh:启动Hadoop DFS守护进程,包括NameNode和DataNode (f)stop-dfs.sh:停止DFS守护进程 修改C:\WINDOWS\system32\drivers\etc\hosts文件,加入三台虚拟机的IP地 址及其对应的主机名,即: 127.0.0.1 localhost 192.168.122.136 ubuntunamenode 192.168.122.140 ubuntudata1 192.168.122.141 ubuntudata2
在Linux系统中安装Hadoop
NameNode运行状态
在Linux系统中安装Hadoop
JobTracker运行状态
在Linux系统中安装Hadoop
(g)运行WordCount实例 $ bin/hadoop dfs –put input in $ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount in out 查看Hadoop分布式文件系统上数据处理结果 $ bin/hadoop dfs -cat out/* 从Hadoop分布式文件系统复制到本地文件系统查看 $ bin/hadoop dfs -get out output $ cat output/* (h)停止Hadoop守护进程 $ bin/stop-all.sh
在Linux系统中安装Hadoop
查看数据处理结果
运行WordCount实例
停止Hadoop守护进程运行结果