准备 在vmvare worktion pro 上安装好了一台centos7的虚拟机 去官网下载jdk hadoop的压缩包 不限于以下 链接: https://pan.baidu.com/s/18eONPUGfCb3C7EenFzpdJQ 提取码:0418 链接:https://pan.baidu.com/s/1Bn6MBlL_7FimNiv_eaPsiQ 提取码:0418
下载xshell或者其它文件传输工具 链接: https://www.netsarang.com/zh/downloading/?token=YkhaN2l0TEYyX1daY1JLRlpBMUoxd0BBeFVEZGpVZDNNY25KR1lvcVI3a1BB 用root用户登录减少麻烦 点击未列出 用户名输入root 然后输入密码
关闭防火墙并禁止开机启动,输入以下两条命令
systemctl stop firewalld.service systemctl disable firewalld.service如下
输入vim /etc/sysconfig/network-scripts/ifcfg-ens33 打开ifcfg-ens33这个文件按i插入 将BOOTPROTO后面的值改为static ONBOOT后改为yes 并添加自己的IPADDR,NETMASK,GATEWAY,DNS几个数据
然后按esc 输入 :wq 然后回车(这里是,冒号然后wq,你要乱搞我也没法)
如果你不知道怎么看自己的IP ? 还是学点Java吧,能养活自己就行
首先卸载centos7自带jdk 输入 rpm -qa|grep java查询自带的
然后用rpm -e - -nodeps卸载上面的jdk 用xshell链接虚拟机,上传jdk hadoop的压缩包并解压
新建会话
主机就是虚拟机ip ,名称你想改啥就是啥。然后点击用户身份验证 这里用户名就是你登录centos的那一套。我这里用的root
点击链接 然后接受 新建两个文件夹,切换到相应目录上传压缩包并解压 切换目录cd /opt/java rz- E 上传 解压 配置jdk环境变量
vi /etc/profile文件末端插入 export JAVA_HOME=/opt/java/jdk1.8.0_221 export PATH=: $PATH : $JAVA_HOME/bin
esc 后 :wq保存退出 然后source /etc/profile 刷新profile文件
java -version 看到如下就成功
切换目录cd /opt/hadoop 上传
解压 vi /etc/profile 插入
export HADOOP_HOME=/opt/hadoop/hadoop-2.10.1 export PATH=: $ PATH: $ HADOOP_HOME/bin:$HADOOP_HOME/sbin
esc 后 :wq保存退出 然后source /etc/profile 刷新profile文件 执行hadoop
说明成功
右键 管理 克隆 创建完整克隆 然后启动三台机器
修改hostname文件,修改主机名
vi /etc/hostname将原先文件里的删掉 改为相应的主机名
修改hosts文件,配置主机ip映射。 vi /etc/hosts在文件末尾插入 192.168.116.131 master 192.168.116.132 slave1 192.168.116.133 slave2
修改ip 三台机器hosts文件相同 ip和主机名对应上述 最后重启三台机器
分别在三个节点中执行ssh-keygen -t rsa 一直回车
然后分别执行
ssh-copy-id master ssh-copy-id slave1 ssh-copy-id slave2问yes/no 输入yes, 会要求输入另一台主机的密码 这里三台主机密码都相同,就是root账户的密码 测试登录 ssh 主机名 能登录就说明成功 exit退出登录
在master下执行以下操作 修改/opt/hadoop/hadoop-2.10.1/etc/hadoop目录内的一系列文件 修改core-site.xml
在< configuration > 和 < /configuration>之间加入以下
<property> <name>hadoop.tmp.dir</name> <value>/root/hadoop/tmp</value> </property> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property>修改hdfs-site.xml
<property> <name>dfs.name.dir</name> <value>/root/hadoop/dfs/name</value> </property> <property> <name>dfs.data.dir</name> <value>/root/hadoop/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property>新建并且修改mapred-site.xml 将名为mapred-site.xml.template的文件改名为mapred-site.xml
<property> <name>mapred.job.tracker</name> <value>master:49001</value> </property> <property> <name>mapred.local.dir</name> <value>/root/hadoop/var</value> </property> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>修改yarn-site.xml
<property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <description>The address of the applications manager interface in the RM.</description> <name>yarn.resourcemanager.address</name> <value>${yarn.resourcemanager.hostname}:8032</value> </property> <property> <description>The address of the scheduler interface.</description> <name>yarn.resourcemanager.scheduler.address</name> <value>${yarn.resourcemanager.hostname}:8030</value> </property> <property> <description>The http address of the RM web application.</description> <name>yarn.resourcemanager.webapp.address</name> <value>${yarn.resourcemanager.hostname}:8088</value> </property> <property> <description>The https adddress of the RM web application.</description> <name>yarn.resourcemanager.webapp.https.address</name> <value>${yarn.resourcemanager.hostname}:8090</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>${yarn.resourcemanager.hostname}:8031</value> </property> <property> <description>The address of the RM admin interface.</description> <name>yarn.resourcemanager.admin.address</name> <value>${yarn.resourcemanager.hostname}:8033</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>2048</value> <discription>每个节点可用内存,单位MB,默认8182MB</discription> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>2.1</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>2048</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>配置文件参考https://blog.csdn.net/pucao_cug/article/details/71698903?utm_source=app
修改slaves(这个就是数据节点所以下面master上jps没有namenode) 将文件里的内容删除添加 slave1 slave2 修改hadoop-env.sh 将export JAVA_HOME=${JAVA_HOME} 修改为: export JAVA_HOME=/opt/java/jdk1.8.0_221 说明:修改为自己的JDK路径
先切换目录cd /opt/hadoop然后执行以下命令
scp -r hadoop-2.10.1/ root@slave1:/opt/hadoop/ scp -r hadoop-2.10.1/ root@slave2:/opt/hadoop/等待传输完成
在master上面执行命令
hadoop namenode -format没报错,看到该图第一行说明成功,可以在看到在/root/hadoop/dfs/name/目录多了一个current目录,而且该目录内有一系列文件 不要多次格式化,重新格式化需要删除current目录
直接yes
在master节点上jps (一般的集群配置在主节点出现如上四个进程就为正常)
slave节点上jps 在master上的火狐浏览器访问 http://master:50070 http://master:8088 Hadoop集群成功 stop-all.sh关闭hadoop集群
以上搭建步骤其实还可以简化
