内存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)); then echo no args; exit; fi #2 获取文件名称 p1= fname=`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++)); do echo ------------------- hadoop$host -------------- rsync -av $pdir/$fname $user@hadoop$host:$pdir done
==============================================================
chmod +x xsync sudo cp xsync /bin sudo xsync /bin/xsync
配置免密登陆
1. 生成密钥对 ssh-keygen -t rsa 三次回车 2. 发送公钥到本机 ssh-copy-id hadoop102 输入一次密码 3. 分别ssh登陆一下所有虚拟机 ssh hadoop103 exit ssh hadoop104 exit 4. 把/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_HOME export JAVA_HOME=/opt/module/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin #HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
========================================================
保存
5. source /etc/profile
6. sudo xsync /etc/profile 7. 在其他机器分别执行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
fs.defaultFS hdfs://hadoop102:9000 hadoop.tmp.dir /opt/module/hadoop-2.7.2/data/tmp
配置hdfs-site.xml
dfs.replication
3
dfs.namenode.secondary.http-address
hadoop104:50090
配置yarn-site.xml
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop103 yarn.log-aggregation-enable true yarn.log-aggregation.retain-seconds 604800
配置mapred-site.xml
mapreduce.framework.name
yarn
启动历史服务器: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步骤
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)