云计算第二章2-6教学.ppt
Hadoop:Google云计算的开源实现,提 纲,Hadoop简介 Hadoop分布式文件系统HDFS 分布式数据处理MapReduce 分布式结构化数据表HBase Hadoop安装 HDFS使用 HBase安装使用 MapReduce编程,在Linux系统中安装Hadoop,1安装环境配置1)安装Linux虚拟机 安装软件 2)安装SSH$sudo apt-get install ssh3)安装Java$cd/usr/java/$/mnt/hgfs/share/jdk-6u24-linux-i586.bin4)解压Hadoop安装包$tar zxvf5)编辑conf/hadoop-env.sh文件$vi conf/hadoop-env.sh,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系统中安装Hadoop,2安装步骤 2)伪分布式模式 用不同的Java进程模拟分布式运行中各类节点(1)Hadoop配置,在Linux系统中安装Hadoop,core-site.xml配置文档,hdfs-site.xml配置文档,mapred-site.xml配置文档,(2)免密码SSH设置 生成密钥对$ssh-keygen-t rsa 一直按【Enter】键,按照默认的选项将生成的密钥对保存在.ssh/id_rsa文件中 进入.ssh目录$cp id_rsa.pub authorized_keys 执行$ssh localhost,可以实现用SSH 连接并且不需要输入密码,在Linux系统中安装Hadoop,将密钥对保存在.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,3)完全分布式模式(1)配置NameNode和DataNode(2)在所有的机器上建立相同的用户grid$useradd-m grid$passwd grid(3)SSH配置 在所有机器上建立.ssh目录$mkdir.ssh 在ubuntunamenode上生成密钥对$ssh-keygen-t rsa,在Linux系统中安装Hadoop,配置ubuntunamenode的/etc/hosts,ubuntudata1和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,格式化分布式文件系统,启动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:WINDOWSsystem32driversetchosts文件,加入三台虚拟机的IP地址及其对应的主机名,即:127.0.0.1 localhost192.168.122.136 ubuntunamenode192.168.122.140 ubuntudata1192.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守护进程运行结果,在Windows系统中安装Hadoop,1安装环境配置1)下载安装Cygwin 编辑系统变量,新建系统变量CYGWIN,变量值为ntsec tty,如图6-19所示。编辑系统变量里的Path变量,加入C:cygwinbin 2)安装Java 默认的安装目录为新建系统变量JAVA_HOME编辑系统变量里的Path变量,加入%JAVA_HOME%bin;%JAVA_HOME%jrebin 新建系统变量CLASSPATH,值为.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar 2.安装步骤 1)单机模式默认的解压缩目录为用户的根目录,即C:cygwinhomeAdministrator。编辑conf/hadoop-env.sh文件,将JAVA_HOME变量设置为JAVA安装的根目录。例如JAVA安装在目录C:Program FilesJavajdk1.6.0_13,在Windows系统中安装Hadoop,配置完之后即可运行WordCount实例 file1.txt:hello world hello hadoopfile2.txt:bye hadoop运行实例,并将结果输出到指定的output目录(执行之前output目录必须为空,或者不存在这个目录,否则会出错)$bin/hadoop jar hadoop-0.20.2-examples.jar wordcount input output 2)伪分布式模式(1)编辑文件conf/core-site.xml和mapred-site.xml(2)安装配置SSH启动cygwin$ssh-host-config 当询问“Should privilege separation be used?”时,输入no 当询问“Do you want to install sshd as a service?”,选择yes,把sshd作为一项服务安装 当提示“Enter the value of CYGWIN for the daemon:ntsec”时,选择ntsec 输入命令$net start sshd,启动SSH 或 通过服务启动CYGWIN sshd,在Windows系统中安装Hadoop,执行$ssh-keygen来生成密钥对,然后一直按【Enter】键,就会按照默认的选项将生成的密钥对保存在.ssh目录下。将RSA公钥加入到公钥授权文件authorized_keys中$cd.ssh$cat id_rsa.pub authorized_keys(3)Hadoop运行(a)格式化分布式文件系统$bin/hadoop NameNode format(b)启动Hadoop守护进程$bin/start-all.sh(c)运行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/*(d)停止Hadoop守护进程$bin/stop-all.sh,在Windows系统中安装Hadoop,3)完全分布式模式(1)修改相应文件 修改所有机器的C:WINDOWSsystem32driversetchosts文件,加入各机器IP地址及其对应的主机名,即:127.0.0.1 localhost 192.168.11.254 centos254 192.168.11.253 centos253 192.168.11.252 centos252(2)在所有机器上建立相同的账户stony(3)在所有机器上进行SSH配置 执行$ssh-keygen来生成密钥对。然后一直按【Enter】键,就会按照默认的选项生成密钥对,并保存在.ssh/id_rsa文件中。执行下面的命令将RSA公钥加入到公钥授权文件authorized_keys中:$cd/.ssh$cat id_rsa.pub authorized_keys 在centos254上执行$cd/.ssh$scp authorized_keys stonycenos253:/home/stony/.ssh$scp authorized_keys stonycenos252:/home/stony/.ssh,在Windows系统中安装Hadoop,分别进入centos253、centos252和centos251的.ssh目录,改变authorized_keys文件的许可权限$chmod 644 authorized_keys(4)在所有机器上配置Hadoop 在centos254上配置$tar-zxvf$mv hadoop-0.20.2 hadoop 编辑conf/core-site.xml 编辑conf/mapred-site.xml 编辑conf/hdfs-site.xml,在Windows系统中安装Hadoop,编辑conf/master,修改为master的主机名,每个ip一行,在这里就是。编辑conf/slaves,加入所有slaves的主机名,即和。把hadoop复制到其他机器,命令如下:$scp/hadoop stonycentos253:/home/stony/$scp/hadoop stonycentos252:/home/stony/编辑所有机器的conf/hadoop-env.sh文件,将JAVA_HOME变量设置为JAVA安装的根目录,不同机器可以使用不同的JAVA版本,但需要jdk1.5版本以上,在Windows系统中安装Hadoop,(5)Hadoop运行格式化分布式文件系统。在centos254上执行如下的命令:$bin/hadoop namenode-format启动Hadoop守护进程$bin/start-all.sh同样的,访问http:/centos254:50070可以查看NameNode以及整个分布式文件系统的状态,浏览分布式文件系统中的文件以及日志等;访问http:/centos254:50060可以查看 TaskTracker的运行状态运行WordCount实例:$bin/hadoop dfs put input in$bin/hadoop jar hadoop-.020.2-examples.jar wordcount in out查看Hadoop分布式文件系统上数据处理的结果:$bin/hadoop dfs-cat out/*从Hadoop分布式文件系统复制到本地文件系统查看:$bin/hadoop dfs-get out output$cat output/*停止Hadoop守护进程:$bin/stop-all.sh,在Windows系统中安装Hadoop,4)注意事项格式化Hadoop文件系统是启动Hadoop的第一步,不过一旦安装Hadoop后,不要格式化运行中的文件系统,否则所有的数据会被清除。如果需要执行格式化,每次格式化(format)前,清空tmp目录下的所有文件。正确的步骤如下:(1)用bin/stop-all.sh停止所有的守护进程(2)删除$HADOOP_HOME/tmp这个文件夹(3)重新格式化NameNode(4)重新启动守护进程 在HADOOP_HOME/logs目录下,NameNode、DataNode、Secondary NameNode、JobTracker、TaskTracker各有一个对应的日志文件,每一次运行的计算任务也有对应的日志文件。当出现故障时,分析这些日志文件有助于找到故障原因。例如可通过http:/192.168.11.254:50070/logs/进行浏览日志信息,