第1章 hadoop集群部署

第1章 hadoop集群搭建

第1章 hadoop集群搭建
1.1 环境准备
1.1.1 准备软件包

#下载链接:http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz
[[email protected] ~]# hadoop-2.6.5.tar.gz  
#下载链接:http://archive.apache.org/dist/hbase/1.2.6/hbase-1.2.6-bin.tar.gz
[[email protected] ~]# hbase-1.2.6-bin.tar.gz  
#下载链接:http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz
[[email protected] ~]# jdk-8u171-linux-x64.tar.gz

1.1.2 准备三台centos7系统

ip分别为
10.0.0.80
10.0.0.81
10.0.0.82

1.2 修改hosts文件

[[email protected] ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.80 master
10.0.0.81 slave1
10.0.0.82 slave2

1.3 安装jdk

[[email protected] ~]# mkdir /usr/java
[[email protected] ~]# tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java

1.3.1 设置jdk环境变量

[[email protected] ~]# cat /etc/environment 
VA_HOME=/usr/java/jdk1.8.0_171
JRE_HOME=/usr/java/jdk1.8.0_171/jre

1.3.2 设置全局变量

[[email protected] ~]# tail /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_171
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile     # 使改动生效

1.4 设置集群间无密码访问
1.4.1 slave1服务器配置
1.4.1.1 创建rsa**

[[email protected] ~]#  ssh-****** -t rsa

1.4.1.2 拷贝公钥

[[email protected] ~]#  cp ~/.ssh/id_rsa.pub ~/.ssh/slave1_id_rsa.pub

1.4.1.3 传送到master

[[email protected] ~]#  scp ~/.ssh/slave1_id_rsa.pub master:~/.ssh/

说明:slave2上进行同样的操作
1.4.2 master服务器配置
1.4.2.1 使用rsa加密

[[email protected] ~]# ssh-****** -t rsa 

1.4.2.2 拷贝master公钥到authorized_keys

[[email protected] ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

1.4.2.3 拷贝master公钥到authorized_keys
1.4.2.4 拷贝slave1公钥到authorized_keys

[[email protected] ~]# cat ~/.ssh/slave1_id_rsa.pub >> ~/.ssh/authorized_keys 

1.4.2.5 拷贝slave2公钥到authorized_keys

[[email protected] ~]# cat ~/.ssh/slave2_id_rsa.pub >> ~/.ssh/authorized_keys

此时master的authorized_kyes里面有三台机器的公钥
1.4.2.6 传送authorized_kyes到slave1和slave2

[[email protected] ~]# scp ~/.ssh/authorized_keys slave1:~/.ssh 
[[email protected] ~]# scp ~/.ssh/authorized_keys slave2:~/.ssh

1.5 关闭防火墙及SELINUX
1.5.1 关闭防火墙

systemctl stop firewalld.service 
systemctl disable firewalld.service

1.5.2 关闭SELINUX

vim /etc/selinux/config
SELINUX=disable

1.6 Hadoop安装及配置
1.6.1 解压缩安装包及创建基本目录

tar -zxvf hadoop-2.6.5.tar.gz -C /usr 
cd /usr/hadoop-2.6.5 
mkdir tmp logs hdf hdf/data hdf/name

1.6.2 修改/usr/hadoop-2.6.5/etc/hadoop/hadoop-env.sh中JAVA_HOME

应当使用绝对路径
export JAVA_HOME=${JAVA_HOME}            //文档原来的(错误)
export JAVA_HOME=/usr/java/jdk1.8.0_171        //正确,应该这么改

1.6.3 修改slaves文件

vim /usr/hadoop-2.6.5/etc/hadoop/slaves
删除localhost
加入
slave1
slave2

1.6.4 修改 /app/hadoop-2.5.2/etc/hadoop/core-site.xml 文件

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop-2.6.5/tmp</value>
</property>
</configuration>

1.6.5 修改hdfs-site.xml 文件

vim /usr/hadoop-2.6.5/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/hadoop-2.6.5/hdf/data</value>
<final>true</final>
</property>

<property> 
<name>dfs.namenode.name.dir</name> 
<value>/usr/hadoop-2.6.5/hdf/name</value> 
<final>true</final> 
</property>

1.6.6 修改mapred-site.xml文件

cp /usr/hadoop-2.6.5/etc/hadoop/mapred-site.xml.template /usr/hadoop-2.6.5/etc/hadoop/mapred-site.xml
vim /usr/hadoop-2.6.5/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

<property> 
<name>mapreduce.jobhistory.address</name> 
<value>master:10020</value> 
</property> 

<property> 
<name>mapreduce.jobhistory.webapp.address</name> 
<value>master:19888</value> 
</property>
</configuration>

1.6.7 修改 yarn-site.xml 文件

<configuration>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.mapred.ShuffleHandler</value>
</property>

<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>

<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>

<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>

<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>

<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>

1.6.8 复制hadoop到slave1和slave2节点

scp -r /usr/hadoop-2.6.5 slave1:/usr 
scp -r /usr/hadoop-2.6.5 slave2:/usr

1.7 配置hadoop环境变量

[[email protected] ~]#  vim /etc/profile
export HADOOP_HOME=/usr/hadoop-2.6.5 
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH 
export HADOOP_LOG_DIR=/usr/hadoop-2.6.5/logs 
export YARN_LOG_DIR=$HADOOP_LOG_DIR
source /etc/profile

1.8 添加局部变量

vim ~/.bashrc
export HADOOP_PREFIX=/usr/hadoop-2.6.5/
# 每个节点都要修改

1.9 格式化namenode

/usr/hadoop-2.6.5/bin/hdfs namenode -format

1.10 启动hadoop进程,首先执行start-dfs.sh(注意中间没有空格);没有配置ssh免密登录之前,会不停的需要输入yes和密码,最后界面如图:
第1章 hadoop集群部署
1.11 地址栏输入http://10.0.0.80:50070/就可以进入如下界面:
第1章 hadoop集群部署
1.12 启动yarn,执行start-yarn.sh启动yarn计算进程
第1章 hadoop集群部署
1.12.1 地址栏输入http://10.0.0.80:8088/就可以进入如下界面
第1章 hadoop集群部署
至此hadoop环境搭建成功

第2章 Zookeeper 环境搭建
2.1 解压缩 zookeeper安装包,并建立基本目录

tar -zxvf zookeeper-3.4.10.tar.gz -C /usr 
mkdir /usr/zookeeper-3.4.10/data

2.2 修改配置文件
2.2.1 复制配置文件模版

cp /usr/zookeeper-3.4.10/conf/zoo-sample.cfg /usr/zookeeper-3.4.10/conf/zoo.cfg
vim /usr/zookeeper-3.4.10/conf/zoo.cfg

2.2.1.1 添加如下内容

dataDir=/usr/zookeeper-3.4.10/data 
server.1=master:2888:3888 
server.2=slave1:2888:3888 
server.3=slave2:2888:3888

2.3 创建myid文件(每个节点都需创建)

touch /usr/zookeeper-3.4.10/data/myid 
vim /usr/zookeeper-3.4.10/data/myid 

2.3.1 分别添加如下内容

1(master节点添加) 
2(slave2节点添加) 
3(slave3节点添加)

2.4 Zookeeper搭建成功
2.4.1 启动zookeeper查看是否成功,每个节点都需分别启动

cd /usr/zookeeper-3.4.10/bin 
./zkServer.sh start

第3章 hbase环境搭建
3.1 解压缩hbase安装包

tar -zxvf hadoop-2.6.5.tar.gz -C /usr 
mkdir /usr/hbase-1.2.6/logs

3.2 修改配置文件
3.2.1 添加如下内容

vim /usr/hbase-1.2.6/conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_171 
export HBASE_LOG_DIR=${HBASE_HOME}/logs 
export HBASE_MANAGES_ZK=false

3.3 修改regionservers

vim /usr/hbase-1.2.6/conf/regionservers
删除localhost,新增如下内容 
master
slave1 
slave2

3.4 修改配置文件

vim /usr/hbase-1.2.6/conf/hbase-site.xml
在configuration标签中添加如下内容
<property> 
<name>hbase.rootdir</name> 
<value>hdfs://master:9000/hbase</value> 
</property> 
<property> 
<name>hbase.cluster.distributed</name> 
<value>true</value> 
</property>

<property> 
<name>hbase.zookeeper.quorum</name> 
<value>master,slave1,slave2</value> 
</property> 
<property> 
<name>hbase.zookeeper.property.dataDir</name> 
<value>/usr/zookeeper-3.4.10/data</value> 
</property> 
<property> 
<name>hbase.master</name> 
<value>hdfs://master:60000</value> 
</property>

3.5 传送hbase到slave1和slave2中

scp -r /usr/hbase-1.2.4 slave1:/usr 
scp -r /usr/hbase-1.2.4 slave2:/usr

3.6 启动hbase

/usr/hbase-1.2.4/bin/start-hbase.sh  启动hbase查看是否安装成功