准备工作
- 3台客户机(关闭防火墙、设置静态IP、设置主机名称)
#示例
node101 10.211.55.101
node102 10.211.55.102
node103 10.211.55.103
如何设置静态ip、主机名、配置ssh免密登录请参开Linux常用设置
**
创建twx用户,并赋予twx用户root权限
同步脚步 xsync (注意:需要在各个节点上先安装
sudo yum install rsync
)
#!/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=101; host<104; host++)); do
echo -------------------node$host --------------
rsync -rvl $pdir/$fname $user@node$host:$pdir
done
开始
准备
在每个节点下操作如下步骤:
1、在/opt下创建module、software文件夹
sudo mkdir module sudo mkdir software
2、修改module、software文件夹的所有者
sudo chown twx:twx module/ software/
安装JDK
1、上传、解压略过
2、配置环境变量 sudo vi /etc/profile
JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin
3、 source /etc/profile
4、分发到其他节点 sync
安装Hadoop
1、解压 tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
2、 配置环境变量 sudo vi /etc/profile
HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
3、source /etc/profile
配置集群
1、核心配置文件
vi core-site.xml,在该文件中编写如下配置
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
2、HDFS配置文件
配置hadoop-env.sh
[atguigu@hadoop102 hadoop]$ vi hadoop-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_144
配置hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node103:50090</value>
</property>
3、配置yarn文件
配置yarn-env.sh
[atguigu@hadoop102 hadoop]$ vi yarn-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_144
配置yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node102</value>
</property>
4、配置mapreduce文件
配置mapred-env.sh
[atguigu@hadoop102 hadoop]$ vi mapred-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_144
配置mapred-site.xml
[atguigu@hadoop102 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[atguigu@hadoop102 hadoop]$ vi mapred-site.xml
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5、配置slaves
/opt/module/hadoop-2.7.2/etc/hadoop/slaves [atguigu@hadoop102 hadoop]$ vi slaves
在该文件中增加如下内容:
hadoop102
hadoop103
hadoop104
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行
6、在集群上分发配置好的Hadoop配置文件
[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.7.2/
启动集群
第一次启动需格式化
[atguigu@hadoop102 hadoop-2.7.2]$ bin/hdfs namenode -format
1、启动hdfs
[atguigu@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh [atguigu@hadoop102 hadoop-2.7.2]$ jps 4166 NameNode 4482 Jps 4263 DataNode
2、启动yarn
[atguigu@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh
注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。
停止集群
1、停止yarn
/opt/module/hadoop-2.7.2/sbin/stop-yarn.sh
2、停止hdfs
/opt/module/hadoop-2.7.2/sbin/stop-dfs.sh
查看集群
NameNode: http://node101:50070/
SecondaryNameNode: http://node103:50090/
LZO压缩配置
1)先下载lzo的jar项目
https://github.com/twitter/hadoop-lzo/archive/master.zip
2)下载后的文件名是hadoop-lzo-master,它是一个zip格式的压缩包,先进行解压,然后用maven编译。生成hadoop-lzo-0.4.20.jar。
3)将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-2.7.2/share/hadoop/common/
[twx@node101 common]$ pwd /opt/module/hadoop-2.7.2/share/hadoop/common [twx@node101 common]$ ls hadoop-lzo-0.4.20.jar
4)同步hadoop-lzo-0.4.20.jar到node102、node103
[twx@node101 common]$ xsync hadoop-lzo-0.4.20.jar
5)core-site.xml增加配置支持LZO压缩
<property>
<name>io.compression.codecs</name>
<value>
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec,
com.hadoop.compression.lzo.LzoCodec
</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
6)同步core-site.xml到node102、node103
xsync core-site.xml