| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Hadoop全分布式集群(3.3.1版本)CentOS7 -> 正文阅读 |
|
[大数据]Hadoop全分布式集群(3.3.1版本)CentOS7 |
参考了林子雨的教程Hadoop集群安装配置教程_Hadoop3.1.3_Ubuntu_厦大数据库实验室博客 但他使用的是ubuntu 的,在一些方面和centos还是不同 Hadoop的安装同样可以参考:Hadoop安装教程_伪分布式配置_CentOS6.4/Hadoop2.6.0_厦大数据库实验室博客 Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)_厦大数据库实验室博客e 但是centos版本的太过时了,我同样通过查询学习,整理了一份 使用的软件: vm15 centos7 hadoop3.3.1 jdk1.8.0 准备工作:1.选定一台作为master,需要在master创建hadoop用户,安装ssh服务端,安装java环境,安装hadoop并且完成配置 2.这里我是选择一主二从,在两个slave上创建hadoop用户,安装SSH服务端,安装java环境 开始:1.网络配置:需改为桥接模式 并且查看三台机子的的MAC地址是否一样,一样的话需要随机生成以至不一样 2.修改主机名: Centos7通过 3.修改IP映射: 输入以下命令: sudo vim /etc/hosts 在加如映射关系前先通过ifconfig来查到三个主机的IP地址,查到后建立如下映射关系: 同样的,在两个slave1和slave2里面同样进行配置,配置完成后重新启动slave节点的Linux系统 4.完成后还需要检查是否顺利配置: 在master节点上: $ ping slave1 -c 3 #只会ping三次 $ ping slave2 -c 3 ? 在两个slave节点上: $ ping master -c 3 如果出现如下结果,则ping通了 特别注意,每一次更换了网络之后,IP就会发生变化,则需要重新改一下映射关系 5.SSH无密码登录节点: 必须要让Master节点可以SSH无密码登录到各个Slave节点上,首先,Master节点的公匙,如果之前已经生成过公钥,必须要删除原来生成的公钥,重新生成一次: $ cd ~/.ssh ? ? ? ? ? ? # 如果没有该目录,先执行一次ssh localhost $ rm ./id_rsa* ? ? ? ? ? # 删除之前生成的公匙(如果已经存在) $ ssh-keygen -t rsa ? 为了让Master节点能够无密码SSH登录本机,需要在Master节点上执行如下命令: $ cat ./id_rsa.pub >> ./authorized_keys 然后将master节点将公钥传输到slave节点: $ scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/ 然后再slave节点上,将SSH公钥加入授权: $ mkdir ~/.ssh ? ? ? # 如果不存在该文件夹需先创建,若已存在,则忽略 $ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys $ rm ~/id_rsa.pub ? # 用完以后就可以删掉 然后进行检验: $ ssh slave1 ? ? ? ? #slave2同样需要 若成功切换到slave1节点则成功(以上需要对slave1和slave2两个节点进行操作) 6.配置集群和分布式环境: 在配置集群/分布式模式时,需要修改“/usr/local/hadoop/etc/hadoop”目录下的配置文件,这里仅设置正常启动所必须的设置项,包括workers 、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml共5个文件 (1)centos7下修改workers 先进入目录: $ cd /usr/local/hadoop/etc/hadoop 修改文件workers: $ gedit workers 将workers文件中的原来的localhost删除,添加上: slave1 slave2 (如果你有更多的从节点,则需同样加进去) (2)修改同样目录下的core-site.xml文件: <configuration> ? ? ? <property> ? ? ? ? ? ? ? <name>fs.defaultFS</name> ? ? ? ? ? ? ? <value>hdfs://Master:9000</value> ? ? ? </property> ? ? ? <property> ? ? ? ? ? ? ? <name>hadoop.tmp.dir</name> ? ? ? ? ? ? ? <value>file:/usr/local/hadoop/tmp</value> ? ? ? ? ? ? ? <description>Abase for other temporary directories.</description> ? ? ? </property> </configuration> (3)修改文件hdfs-site.xml <configuration> ? ? ? <property> ? ? ? ? ? ? ? <name>dfs.namenode.secondary.http-address</name> ? ? ? ? ? ? ? <value>Master:50090</value> ? ? ? </property> ? ? ? <property> ? ? ? ? ? ? ? <name>dfs.replication</name> ? ? ? ? ? ? ? <value>2</value> ? ? ? </property> ? ? ? <property> ? ? ? ? ? ? ? <name>dfs.namenode.name.dir</name> ? ? ? ? ? ? ? <value>file:/usr/local/hadoop/tmp/dfs/name</value> ? ? ? </property> ? ? ? <property> ? ? ? ? ? ? ? <name>dfs.datanode.data.dir</name> ? ? ? ? ? ? ? <value>file:/usr/local/hadoop/tmp/dfs/data</value> ? ? ? </property> </configuration> 注意第九行的value值,两个slave则改为2,三个则3 (4)“/usr/local/hadoop/etc/hadoop”目录下有一个mapred-site.xml.template,需要修改文件名称,把它重命名为mapred-site.xml,然后,把mapred-site.xml文件配置成如下内容: <configuration> ? ? ? <property> ? ? ? ? ? ? ? <name>mapreduce.framework.name</name> ? ? ? ? ? ? ? <value>yarn</value> ? ? ? </property> ? ? ? <property> ? ? ? ? ? ? ? <name>mapreduce.jobhistory.address</name> ? ? ? ? ? ? ? <value>Master:10020</value> ? ? ? </property> ? ? ? <property> ? ? ? ? ? ? ? <name>mapreduce.jobhistory.webapp.address</name> ? ? ? ? ? ? ? <value>Master:19888</value> ? ? ? </property> ? ? ? <property> ? ? ? ? ? ? ? <name>yarn.app.mapreduce.am.env</name> ? ? ? ? ? ? ? <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value> ? ? ? </property> ? ? ? <property> ? ? ? ? ? ? ? <name>mapreduce.map.env</name> ? ? ? ? ? ? ? <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value> ? ? ? </property> ? ? ? <property> ? ? ? ? ? ? ? <name>mapreduce.reduce.env</name> ? ? ? ? ? ? ? <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value> ? ? ? </property> </configuration> (5)修改文件yarn-site.xml <configuration> ? ? ? <property> ? ? ? ? ? ? ? <name>yarn.resourcemanager.hostname</name> ? ? ? ? ? ? ? <value>Master</value> ? ? ? </property> ? ? ? <property> ? ? ? ? ? ? ? <name>yarn.nodemanager.aux-services</name> ? ? ? ? ? ? ? <value>mapreduce_shuffle</value> ? ? ? </property> </configuration> 配置完成以上五个文件后,需要把Master节点上的“/usr/local/hadoop”文件夹复制到各个节点上。如果之前已经运行过伪分布式模式,建议在切换到集群模式之前首先删除之前在伪分布式模式下生成的临时文件。具体来说,需要首先在Master节点上执行如下命令: $ cd /usr/local $ sudo rm -r ./hadoop/tmp ? ? # 删除 Hadoop 临时文件 $ sudo rm -r ./hadoop/logs/* ? # 删除日志文件 $ tar -zcf ~/hadoop.master.tar.gz ./hadoop ? # 先压缩再复制 $ cd ~ $ scp ./hadoop.master.tar.gz Slave1:/home/hadoop 然后在两个Slave节点上执行如下命令: $ sudo rm -r /usr/local/hadoop ? # 删掉旧的(如果存在) $ sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local $ sudo chown -R hadoop /usr/local/hadoop 同样,如果有其他Slave节点,也要执行将hadoop.master.tar.gz传输到Slave节点以及在Slave节点解压文件的操作。 首次启动Hadoop集群时,需要先在Master节点执行名称节点的格式化(只需要执行这一次,后面再启动Hadoop时,不要再次格式化名称节点),命令如下: $ hdfs namenode -format 注意格式化只有一次,之后启动不需要再格式化 然后可以启动Hadoop了: $ start-dfs.sh $ start-yarn.sh $ mr-jobhistory-daemon.sh start historyserver 通过jps来查看是否成功 master节点: slave节点: 注意:我用的是Hadoop3.3.1版本的,所以如果需要通过web端查看 名称节点和数据节点的状态,则需要再虚拟机网址中输入: 而不是之前网上很多教程里面的50070 综上Hadoop的全分布式完成安装,安装Java环境以及遇到的一些问题在其他笔记中得以解答,Hadoop的安装同样 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 22:54:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |