1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 虚拟机搭建hadoop集群步骤

虚拟机搭建hadoop集群步骤

时间:2023-04-24 16:54:31

相关推荐

虚拟机搭建hadoop集群步骤

内存4G,硬盘50G

安装好linux

/boot 200M

/swap 2g

/ 剩余

*安装VMTools

关闭防火墙

sudo service iptables stop

sudo chkconfig iptables off

设置静态IP,改主机名

编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0

改成

=================================

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=static

NAME=“eth0”

IPADDR=192.168.5.101

PREFIX=24

GATEWAY=192.168.5.2

DNS1=192.168.5.2

=================================

编辑vim /etc/sysconfig/network

改HOSTNAME=那一行

配置/etc/hosts

vim /etc/hosts

=============================

192.168.1.100 hadoop100

192.168.1.101 hadoop101

192.168.1.102 hadoop102

192.168.1.103 hadoop103

192.168.1.104 hadoop104

192.168.1.105 hadoop105

192.168.1.106 hadoop106

192.168.1.107 hadoop107

192.168.1.108 hadoop108

192.168.1.109 hadoop109

=============================

创建一个一般用户atguigu,给他配置密码

useradd atguigu

passwd atguigu

配置这个用户为sudoers

vim /etc/sudoers

在root ALL=(ALL) ALL

添加atguigu ALL=(ALL) NOPASSWD:ALL

保存时wq!强制保存

*在/opt目录下创建两个文件夹module和software,并把所有权赋给atguigu

mkdir /opt/module /opt/software

chown atguigu:atguigu /opt/module /opt/software

关机,快照,克隆

从这里开始要以一般用户登陆

克隆的虚拟机改IP

搞一个分发脚本

cd ~

vim xsync

内容如下:

=================================================================

#!/bin/bash#1 获取输入参数个数,如果没有参数,直接退出pcount=$#if ((pcount==0)); thenecho no args;exit;fi#2 获取文件名称p1=$1fname=`basename $p1`echo fname=$fname#3 获取上级目录到绝对路径pdir=`cd -P $(dirname $p1); pwd`echo pdir=$pdir#4 获取当前用户名称user=`whoami`#5 循环for((host=103; host<105; host++)); doecho ------------------- hadoop$host --------------rsync -av $pdir/$fname $user@hadoop$host:$pdirdone

==============================================================

chmod +x xsyncsudo cp xsync /binsudo xsync /bin/xsync

配置免密登陆

1. 生成密钥对ssh-keygen -t rsa 三次回车2. 发送公钥到本机ssh-copy-id hadoop102 输入一次密码3. 分别ssh登陆一下所有虚拟机ssh hadoop103exitssh hadoop104exit4. 把/home/atguigu/.ssh 文件夹发送到集群所有服务器xsync /home/atguigu/.ssh

在一台机器上安装Java和Hadoop,并配置环境变量,并分发到集群其他机器

1. 拷贝文件到/opt/software,两个tar包

2. tar -zxf h"+tab" -C /opt/module

3. tar -zxf j"+tab" -C /opt/module

4. sudo vim /etc/profile

在文件末尾添加

=======================================================

#JAVA_HOMEexport JAVA_HOME=/opt/module/jdk1.8.0_144export PATH=$PATH:$JAVA_HOME/bin#HADOOP_HOMEexport HADOOP_HOME=/opt/module/hadoop-2.7.2export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

========================================================

保存

5. source /etc/profile

6. sudo xsync /etc/profile7. 在其他机器分别执行source /etc/profile

###所有配置文件都在$HADOOP_HOME/etc/hadoop

14. 首先配置hadoop-env.sh,yarn-env.sh,mapred-env.sh文件,配置Java_HOME

在每个文件第二行添加 export JAVA_HOME=/opt/module/jdk1.8.0_144

配置Core-site.xml

<!-- 指定HDFS中NameNode的地址 --><property><name>fs.defaultFS</name><value>hdfs://hadoop102:9000</value></property><!-- 指定Hadoop运行时产生文件的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-2.7.2/data/tmp</value></property>

配置hdfs-site.xml

dfs.replication

3

dfs.namenode.secondary.http-address

hadoop104:50090

配置yarn-site.xml

<!-- Site specific YARN configuration properties --><!-- Reducer获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定YARN的ResourceManager的地址 --><property><name>yarn.resourcemanager.hostname</name><value>hadoop103</value></property><!-- 日志聚集功能使能 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 日志保留时间设置7天 --><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property>

配置mapred-site.xml

mapreduce.framework.name

yarn

mapreduce.jobhistory.address hadoop104:10020 mapreduce.jobhistory.webapp.address hadoop104:19888

启动历史服务器:mr-jobhistory-daemon.sh start historyserver

配置Slaves

hadoop102

hadoop103

hadoop104

分发配置文件

xsync /opt/module/hadoop-2.7.2/etc

格式化Namenode 在hadoop102

hdfs namenode -format

启动hdfs

start-dfs.sh

在配置了Resourcemanager机器上执行

在Hadoop103上启动start-yarn.sh

24

mkdir input

vim input/input

abc

def efg

asd

hadoop fs -put input /hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output

此处可能出现一个问题:启动Hadoop时,DataNode启动后一会儿自动消失

原因:因为datanode的clusterID 和 namenode的clusterID 不匹配,出现该问题的原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。

解决办法: 1.打开hdfs-site.xml里配置的datanode和namenode对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID项正如日志里记录的一样,确实不一致,修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动dfs(执行start-dfs.sh)再执行jps命令可以看到datanode已正常启动。

2. 可能是因为重新格式化集群,但是以前的数据没有清理干净。重新格式化方式如下:

注意:重新格式化HDFS要将hdfs-site.xml中dfs.namenode.name.dir和dfs.datanode.data.dir所指定目录下的内容删除;core-site.xml中hadoop.tmp.dir目录中的内容删除。

然后重新启动hadoop集群,执行hadoop namenode -format

25 关 stop-dfs.sh stop-yarn.sh

26 hadoop-daemon.sh start namenode或datanode

yarn-daemon.sh start resourcemanager或nodemanager

注意: 如果集群出了问题

stop-dfs.sh

stop-yarn.sh

cd $HADOOP_HOME

rm -rf data logs

回到21步骤

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。