一、什么是Hadoop? 是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。 Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。 二、Hadoop的优点是什么? 1、高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。 2、高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。 3、高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。 4、高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。 5低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。 6、Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。 三、JDK+Hadoop安装配置、单机模式配置 SecureCRT的使用 (1)首先,安装好SecureCRT,在桌面上双击SecureCRT然后打开SecureCRT后,可以看到SecureCRT的主界面,如果要telnet一台设备,该设备的IP为192.168.192.22点击new sesstio。修改名称,以便自动保存后,能够更加直观的看到之前连接过得信息。协议选择telnet,左侧切换到telnet,右侧的hostname填写好要远程的设备的ip地址,点击OK,然后在左侧自动生成session。双击这个session。这样一来,就能够呈现所需要登录的设备的登录界面了 (2)在securecrt里面完成如下命令 put jdk-8u121-linux-x64.tar.gz put hadoop-2.7.3.tar.gz 把Windows下准备好的文件传输过来![在这里插入图片描述 (3)解压JDK、HADOOP tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt/module 解压安装 tar -zxvf hadoop-2.7.3.tar.gz -C /opt/module 解压安装
(4)配置JDK并生效 vi /etc/profile文件添加: export JAVA_HOME=/opt/module/jdk1.8.0_121 export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH Esc :wq!保存并退出。不需要配置CLASSPATH。 source /etc/profile配置生效 运行命令javac,检验是否成功。
(5)配置HADOOP并生效 vi /etc/profile文件添加: export HADOOP_HOME=/opt/module/hadoop-2.7.3 export PATH= H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:HADOOP_HOME/sbin:$PATH Esc :wq!保存并退出。 source /etc/profile配置生效 运行命令hadoop,检验是否成功。
(6)单机模式配置hadoop -env.sh vi /opt/module/hadoop-2.7.3/etc/hadoop/hadoop-env.sh文件修改 显示行号 Esc :set number 取消行号Esc :set nonumber 修改第25行export JAVA_HOME=/opt/module/jdk1.8.0_121 Esc :wq!保存并退出 本地模式没有HDFS和Yarn,配置JDK后MapReduce能够运行java程序。
(7)运行自带程序wordcount cd /opt/module/hadoop-2.7.3/share/hadoop/mapreduce 转入wordcount所在路径。 运行touch in.txt,创建In.txt文件,作为输入文件。 (如果in.txt是空文件,运行vi in.txt,输入内容作为被统计词频的输入文件) 输出目录/output必须不存在,程序运行后自动创建。 运行wordcount: hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /adir/in.txt output/ 四、Hadoop伪分布式模式配置 只有一台虚拟机bigdata128,既是namenode又是datanode。 一、基础安装配置 完成上述1-5安装配置。 二、修改以下5个配置文件 在与之间添加如下property: ①core-site.xml
fs.defaultFS hdfs://bigdata128:9000 hadoop.tmp.dir /opt/module/hadoop-2.7.3/tmp ②hdfs-site.xml dfs.replication 1 dfs.namenode.secondary.http-address bigdata128:50090 ③mapred-site.xml(该配置文件不存在,先复制) cp mapred-site.xml.template mapred-site.xml mapreduce.framework.name yarn ④yarn-site.xml yarn.resourcemanager.hostname bigdata128 yarn.nodemanager.aux-services mapreduce_shuffle ⑤Slaves文件里使用默认localhost,或者添加 bigdata128(既是NameNode又是DataNode) 注:如果Slaves文件为空,就没有DataNode和NodeManager。 ⑥修改\etc\hosts配置文件 运行命令 vi \etc hosts 注释掉已有内容,添加虚拟机的ip及对应主机名: 192.168.163.128 bigdata128 ⑦修改\etc\hostname配置文件 运行命令 vi \etc hostname 添加虚拟机的主机名: bigdata128 重启虚拟机,主机名生效。 三、格式化 hdfs namenode -format (如果不是第一次格式化,格式化之前先删除/opt/module/hadoop-2.7.3/下面的tmp、logs两个目录) 四、启动 start-all.sh (如果启动之前已经启动过,启动之前先停止stop-all.sh) 查看伪分布式配置是否成功: ①执行ll,查看/opt/module/hadoop-2.7.3/tmp/dfs目录,如下图所示,则正确。 ②执行jps,如下图所示,NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager如果全部启动,伪分布式配置成功。③web控制台访问:http://192.168.163.132:50070 、http://192.168.163.132:8088 页面正常显示,则成功。 五、运行wordcount hdfs dfs -put in.txt /adir 上传本地当前路径下的in.txt文件 到hdfs的/adir目录下。 运行hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /adir/in.txt output/。 在http://192.168.163.132:50070 查看/user/root/output/part-r-00000文件里的词频统计结果。 Hadoop完全分布式模式配置 一、新建另外两台Linux虚拟机 完全分布式模式共三台虚拟机,前述伪分布式的虚拟机(bigdata128)作为master主节点,克隆另外两个虚拟机(bigdata129、bigdata131)作为slaves子节点,克隆机自带安装JDK、Hadoop及配置文件。 注:此配置是为学习所用,且电脑资源有限,因此照搬伪分布式配置,将NameNode、SecondaryNameNode、ResourceManager全部配置在主节点bigdata128上面,实际情况则相反,应该分别配置在不同的节点上面。 二、修改以下配置文件 ①slaves配置文件 三台虚拟机分别都运行命令 vi /opt/module/hadoop-2.7.3/etc/hadoop slaves 修改slaves为: bigdata129 bigdata131 ②修改\etc\hosts配置文件 三台虚拟机分别都运行命令 vi \etc hosts 注释已有内容,添加集群三台虚拟机的ip及对应主机名: 192.168.163.128 bigdata128 192.168.163.129 bigdata129 192.168.163.131 bigdata131 ③修改\etc\hostname配置文件 三台虚拟机分别都运行命令 vi \etc hostname 添加各自的主机名bigdata128或者bigdata129或者bigdata131。 重启全部虚拟机,主机名生效。 三、格式化 在主节点bigdata128上面输入格式化命令(hdfs namenode -format),格式化集群。 注:如果不是第一次格式化,三台虚拟机都删除\opt\module\hadoop-2.7.3\下面的tmp、logs目录:rm –rf \opt\module\hadoop-2.7.3\tmp rm –rf \opt\module\hadoop-2.7.3\logs 注:如果格式化之前启动过集群,先在主节点bigdata128上面停止集群(stop-all.sh),再格式化。 四、启动集群 在主节点bigdata128上面输入启动命令(start-all.sh),启动集群。 注:如果启动之前启动过集群,先在主节点bigdata128上面停止集群(stop-all.sh),再启动。 启动正常,输入jps命令,显示如下: 启动正常jps显示3台主机如上如下 启动正常目录显示如下: web控制台访问:http://192.168.163.132:50070 、http://192.168.163.132:8088 页面正常显示,则成功。 五、运行wordcount web控制台访问:http://192.168.163.132:50070 、http://192.168.163.132:8088 页面正常显示,则成功。