1、基于基于HadoopHadoop平台平台的并行编程实践的并行编程实践内容介绍内容介绍v熟悉熟悉hadoop配置环境配置环境v搭建实验搭建实验 平台平台v编写编写(矩阵相乘)运算的(矩阵相乘)运算的 map,reduce函数函数v在在hadoop实验实验 平台上实现平台上实现v配置计算环境:配置计算环境:1个个Master、3个个Slave的的Hadoop集群集群vApacheApache软件基金会下的一个开源分布式计算平台软件基金会下的一个开源分布式计算平台v以以HadoopHadoop的的HDFSHDFS和和MapReduceMapReduce为核心的为核心的HadoopHadoop为用为用
2、户提供了系统底层细节透明的分布式基础架构。户提供了系统底层细节透明的分布式基础架构。v对于对于HadoopHadoop的集群来讲,可以分成两大类角色:的集群来讲,可以分成两大类角色:MasterMaster和和SalveSalve。v一个一个HDFSHDFS集群是由一个集群是由一个NameNodeNameNode和若干个和若干个DataNodeDataNode组成的。组成的。vMapReduceMapReduce框架是由一个单独运行在主节点上的框架是由一个单独运行在主节点上的JobTrackerJobTracker和运行在每个集群从节点的和运行在每个集群从节点的TaskTrackerTaskT
3、racker共同组成的。共同组成的。1.1 1.1 HadoopHadoop简介简介 HDFS HDFS在在MapReduceMapReduce任务处理过程中提供了文件操作任务处理过程中提供了文件操作和存储等支持,和存储等支持,MapReduceMapReduce在在HDFSHDFS的基础上实现了任务的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了作用,完成了HadoopHadoop分布式集群的主要任务。分布式集群的主要任务。集群中包括4个节点:1个Master,3个Salve,节点IP地址分布如下:127.0.0.1
4、localhost192.168.1.120 ubuntu1192.168.1.121 ubuntu2192.168.1.122 ubuntu3192.168.1.123 ubuntu41.21.2环境说明环境说明1.3hadoop1.3hadoop的主从节点结构分解的主从节点结构分解2.12.1在所有的机器上建立相同的用户在所有的机器上建立相同的用户v对每个系统进行系统名和对每个系统进行系统名和ipip地址的配置地址的配置必须在所有的机器上建立相同的用户,设置每个系统的ip地址。2.22.2配置配置NameNodeNameNode和和DataNodeDataNodev配置配置hostshos
5、ts文件文件修改每台机器的/etc/hosts(包括namenode和datanode))127.0.0.1 localhost192.168.1.120 ubuntu1192.168.1.121 ubuntu2192.168.1.122 ubuntu3192.168.1.123 ubuntu42 2环境说明和安装配置环境说明和安装配置SSHSSH2.22.2安装配置安装配置SSHSSHv安装和启动安装和启动SSHSSH协议协议yum install ssh 安装SSH协议yum install rsync service sshd restart 启动服务v 配置配置MasterMaster
6、无密码登录所有无密码登录所有SalveSalveHadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH来启动和停止各个DataNode上的各种守护进程的。SSHSSH安装配置安装配置这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。在用户目录下建立在用户目录下建立sshssh的安装目录,之后设置权限的安装目录,之后设置权限Master机器上生成无密码密
7、码对机器上生成无密码密码对,追加权限追加权限注意:注意:目录要设成700 有执行权限authorized_keys要设成600 否则会出错还有ssh 登陆要加入用户名的SSHSSH配置配置用用rootroot用户登录服务器修改用户登录服务器修改SSHSSH配置文件配置文件/etc/ssh/sshd_config,无密码登录本级已经设置完毕,接下来的事儿是把公钥复制所有的Slave机器上v配置所有配置所有SlaveSlave无密码登录无密码登录MasterMaster和Master无密码登录所有Slave原理一样,就是把Slave的公钥追加追加到Master的.ssh文件夹下的authorize
8、d_keys中这样就建立了Master和Slave之间的无密码验证相互登录SSHSSH配置配置v安装安装jdk1.6.45jdk1.6.45v环境变量配置环境变量配置编辑/etc/profile文件,在后面添加Java的JAVA_HOME、CLASSPATH以及PATH内容。export JAVA_HOME=/usr/java/jdk1.6.0_31export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexport PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin使配置生效使配置生效
9、 (重要)(重要)source/etc/profile source/etc/profile 验证验证u SlaveSlave安装安装jdkjdk:Master下的JDK复制到其他Slave的/home/hadoop/下面剩下的事儿就是在其余的Slave服务器上按照步骤安装JDK。3 3 jdkjdk安装配置安装配置首先在namenode上配置,配置后在分发到datanode上在“/usrusr/hadoophadoop”下面创建tmptmp文件夹v安装安装 把/usr/hadoop读权读权限分配给hadoophadoop用户v配置配置hadoophadoop配置配置hadoop-env.sh
10、 使得能够找到java的路径export HADOOP_HOME=/usr/hadoopexport JAVA_HOME=/usr/java/jdk1.6.0_294 4 HadoopHadoop集群安装配置集群安装配置配置文件也被分成了三个core-site.xml、hdfs-site.xml、mapred-site.xml。修改Hadoop核心配置文件core-site.xmlcore-site.xml,这里配置的是HDFS的地址和端口号。修改Hadoop中HDFS的配置hdfs-site.xml。(就是Slave的台数默认3个)修改Hadoop中MapReduce的配置文件mapred-
11、site.xml,配置的是JobTracker的地址和端口。4.14.1配置文件配置文件v配置配置masters文件文件 第一种:修改localhost为Master.Hadoop第二种:去掉localhost,加入Master机器的IP:192.168.1.121v配置配置slaves文件(文件(Master主机特有主机特有)第一种:第一种:去掉localhost,每行只添加一个主机名,把剩余的Slave主机名都填上。第二种:第二种:去掉localhost,加入集群中所有Slave机器的IP,也是每行一个。4.14.1配置文件配置文件 现在在Master机器上的Hadoop配置就结束了,剩下
12、的就是配置Slave机器上的Hadoop。一种方式一种方式是按照上面的步骤,把Hadoop的安装包在用普通用户hadoop通过scp复制到其他机器的/home/hadoop目录下,然后根据实际情况进行安装配置另一种方式另一种方式是将 Master上配置好的hadoop所在文件夹/usr/hadoop复制到所有的Slave的/usr目录下4.24.2配置配置SlaveSlave机器上的机器上的Hadoopv格式化格式化HDFS文件系统文件系统只需一次,下次启动不再需要格式化v启动启动hadoop(启动前关闭所有机器的防火墙启动前关闭所有机器的防火墙)可以一次全部启动所有的节点service ip
13、tables stop start-all.sh或是分别启动namenode、datanode、tasktracker、secondarynamenode、jobtrackerv验证验证hadoop4.3Hadoop4.3Hadoop启动及验证启动及验证用hadoop dfsadmin-report查看Hadoop集群的状态。v网页查看集群网页查看集群访问访问http:192.168.1.120:50030“http:192.168.1.120:50030“mapreduce的web页面访问访问http:192.168.1.120:50070http:192.168.1.120:50070hdfs的web页面4.44.4网页查看集群网页查看集群v首先启动hadoop,把jar包放到指定位置v通过hadoop的命令在HDFS上创建/tmp/work目录(本次所需)v通过copyFromLocal命令把本地的word.txt复制到HDFS上v通过命令运行例子,主要是指定jar程序包,需要统计的数据文件和结果存放的文件v查看运行结果5 5运行程序步骤运行程序步骤