内存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.5.100 hadoop100
192.168.5.101 hadoop101
192.168.5.102 hadoop102
192.168.5.103 hadoop103
192.168.5.104 hadoop104
192.168.5.105 hadoop105
192.168.5.106 hadoop106
192.168.5.107 hadoop107
192.168.5.108 hadoop108
192.168.5.109 hadoop109 -
创建一个一般用户atfada,给他配置密码
useradd atfada
passwd atfada -
配置这个用户为sudoers
vim /etc/sudoers
在root ALL=(ALL) ALL
添加atfada ALL=(ALL) NOPASSWD:ALL
保存时wq!强制保存 -
*在/opt目录下创建两个文件夹module和software,并把所有权赋给atfada
mkdir /opt/module /opt/software
chown atfada:atfada /opt/module /opt/software -
关机,快照,克隆
从这里开始要以一般用户登陆
-
克隆的虚拟机改IP
-
搞一个分发脚本
cd ~
vim xsync
内容如下:
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi#2 获取文件名称 p1=$1 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 localhost 输入一次密码 3. 分别ssh登陆一下所有虚拟机 ssh hadoop102 exit ssh hadoop103 exit ssh hadoop104 exit 4. 把/home/atfada/.ssh 文件夹发送到集群所有服务器 xsync /home/atfada/.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= P A T H : 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
<!-- 指定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.jobhistory.address hadoop104:10020 mapreduce.jobhistory.webapp.address hadoop104:19888
mapreduce.framework.name
yarn
-
配置Slaves
hadoop102
hadoop103
hadoop104 -
分发配置文件
xsync /opt/module/hadoop-2.7.2/etc -
格式化Namenode 在hadoop102
hdfs namenode -format -
启动hdfs
start-dfs.sh[atfada@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh
-
在配置了Resourcemanager机器上执行
在Hadoop103上启动start-yarn.sh
24
mkdir input
vim input/input
hadoop fs -put input /
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output
25 关 stop-dfs.sh stop-yarn.sh
26 hadoop-daemon.sh start namenode或datanode
yarn-daemon.sh start resourcemanager或nodemanager
如果集群出了问题
cd $HADOOP_HOME
rm -rf data logs
回到21
hadoop集群启动jps查看后没有DATANODE
删除data/hadoop/cluster/data/current/VERSION文件后重启即可
总结:*克隆的虚拟机首先做三件事情:
1(1)修改ip
命令:编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0
(2)改etho (只留下最后一行,多余部分dd删除)
命令:sudo vim /etc/udev/rules.d/70-persistent-net.rules
(3)改主机名
命令:编辑vim /etc/sysconfig/network
改HOSTNAME=那一行
改完后重启虚拟机 reboot ifconfig观察有没有改成自己设置的ip
如果设置失败:
解决办法:1.service network restart 重启网路
2.若1不好使 ,重启网卡时提示:"活跃连接路径“ /org/freedestop.......
解决办法:
执行命令:1、service NetworkManager stop -->2.chkconfig NetworkManager off–>3.service network restart
即可改为自己想要改的IP。
chown bigdata(组名):bigdata(用户名)
修改普通用户用户名
su - 或 su - root(到root用户下。 注意要使用su -,原因见下文)
usermod -l 新用户名 -d /home/新用户名 -m 老用户名 (英文L)
注意:网上有些人方法是usermod -l 新用户名 老用户名,
但这种方法只改了表面,你用pwd命令看一下,路径还是之前的用户名。
补充 :修改用户名 usermod -l bigdata -d /home/bigdata -m atfada
修改组名
sudo groupmod -n sftp073 sftp075
** sudo groupmod -n 新组 旧组
** 将 组sftp075 改名为 组sftp073