全国大学生大数据技能竞赛指导文档(大数据集群搭建指南)

一、基础搭建

1.1 使用连接工具连接比赛节点,更改本地源
  1.使用本地Windows操作机提供的Xshell或MobaXterm连接比赛平台所提供的master,slave1,slave2三台机器,并按照比赛平台提供的linux用户和密码进行登录,登录成功后开始进行接下来的比赛。
  注意连接工具没有在桌面上,点击(或者键入)左下角“windows”,即可看到连接工具。
  同时可以使用以下命令进行修改主机名:
  hostnamectl set-hostname master(在master执行)
  立即生效:bash在这里插入图片描述
  同理修改slave1和slave2的主机名:
  hostnamectl set-hostname slave1(在slave1执行)
  hostnamectl set-hostname slave2(在slave2执行)
  2.配置本地源。通过比赛平台提供源文件下载路径,将本地源文件下载到/etc/yum.repos.d/目录下(三台机器都执行)。

  ●发信号给yum进程: pkill -9 yum
  ●进入yum源配置文件: cd /etc/yum.repos.d
  ●删除所有文件:rm -rf *
  ●下载yum源:
  wget http://172.16.47.240/bigdata/repofile/bigdata.repo
  wget http://172.31.10.254:8000/bigdata/repofile/bigdata.repo
  ●清除YUM缓存: yum clean all yum makecache
在这里插入图片描述

1.2 配置hosts文件(三台机器都执行)
  可以通过ifconfig命令进行查看机器的ip地址或者直接输入比赛平台提供的ip地址。
查看节点地址之后将三个节点的ip地址以及其对应的名称写进hosts文件。这里我们设置为master、slave1、slave2。注意保存退出。
  vim /etc/hosts(三台机器都执行,然后内容见下图)
在这里插入图片描述

1.3 关闭防火墙(三台机器都执行)
  ●关闭防火墙:systemctl stop firewalld
  ●查看状态:systemctl status firewalld
在这里插入图片描述
注意:当环境重置之后,防火墙会自动开启,可以使用如下命令禁止开机自启:

systemctl stop firewalld
systemctl status firewalld
systemctl disable firewalld

1.4 时间同步
●选择时区(三台执行):

tzselect

在这里插入图片描述

echo "TZ='Asia/Shanghai'; export TZ" >> /etc/profile && source /etc/profile

(三台都执行)
●下载ntp(三台机器都执行):

yum install -y ntp

在这里插入图片描述
master作为ntp服务器,修改ntp配置文件。(master上执行,注意空格问题)

vim /etc/ntp.conf

●注释图中的server0~3
在这里插入图片描述

server 127.127.1.0               # local clock
fudge 127.127.1.0 stratum 10   #stratum设置为其它值也是可以的,其范围为0~15

留下下图中的内容就可以了:
在这里插入图片描述
  修改后注意保存退出。
  ●重启ntp服务。(master上执行)

/bin/systemctl restart ntpd.service

  ●定时任务,早八晚五每半个小时同步一次,(slave1和2上使用此方法):

crontab -e
*/30 8-17 * * * /usr/sbin/ntpdate master
crontab -l

  ●其他机器进行同步(在slave1,slave2中执行)

ntpdate master

在这里插入图片描述

1.5 配置ssh免密
1.配置ssh免密时得配置ssh自己,否则启动Hadoop会输入自己的密码,3个节点要完成两两之间的免密,所以要执行3*3=9次的免密配置。在master上执行如下命令生成公私密钥:(注意master上执行)
  ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
2.然后将master公钥id_dsa复制到slave1进行公钥认证。
  ssh-copy-id -i /root/.ssh/id_dsa.pub slave1
在这里插入图片描述
3.退出连接:exit
  同理可以将master公钥复制到master、slave2进行公钥认证。
  ssh-copy-id -i /root/.ssh/id_dsa.pub master
  ssh-copy-id -i /root/.ssh/id_dsa.pub slave2
  注意:以上只是master到slave1、slave2的免密。如果想配置其他(比如slave1到master、slave2)的免密,其命令类似。

二、安装JDK

1.以下操作为先在master上操作,然后远程复制到slave1和slave2。参赛选手仅供参考。首先在根目录下建立工作路径/usr/java,进入创建的java工作路径
  mkdir -p /usr/java
  cd /usr/java
2.下载java安装包(master上执行)
  wget http://172.16.47.240/bigdata/bigdata_tar/jdk-8u171-linux-x64.tar.gz
3.解压(在master执行)
  tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java/
4.删除软件包:
  rm -rf /usr/java/jdk-8u171-linux-x64.tar.gz
5.修改环境变量:vim /etc/profile(在master执行)
  注意:此时需要去slave1和slave2上配置java的环境变量,并使环境变量生效。
  添加内容如下:

export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

在这里插入图片描述
  生效环境变量:(在master执行)查看java版本:(在master执行)
  source /etc/profile
  java -version
在这里插入图片描述
6.在master中将JDK复制到slave1和slave2中。(在master执行)
  scp -r /usr/java root@slave1:/usr/
  scp -r /usr/java root@slave2:/usr/
在这里插入图片描述

三、安装zookeeper

1.首先创建zookeeper的工作路径:(在master上执行,然后远程复制到其他节点)
  mkdir -p /usr/zookeeper
  cd /usr/zookeeper
  下载zookeeper

wget http://172.16.47.240/bigdata/bigdata_tar/zookeeper-3.4.10.tar.gz

  解压到/usr/zookeeper
  tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/zookeeper/
  删除软件包
  rm -rf /usr/zookeeper/zookeeper-3.4.10.tar.gz
  在zookeeper的目录中,创建配置中所需的zkdata和zkdatalog两个文件夹。(在master执行)
  cd /usr/zookeeper/zookeeper-3.4.10
  mkdir zkdata
  mkdir zkdatalog
在这里插入图片描述
2.配置文件zoo.cfg
  进入zookeeper配置文件夹conf,将zoo_sample.cfg文件拷贝一份命名为zoo.cfg,Zookeeper 在启动时会找这个文件作为默认配置文件。
  cd /usr/zookeeper/zookeeper-3.4.10/conf/
  mv zoo_sample.cfg zoo.cfg
  对zoo.cfg文件配置如下:(在master执行)
  vim zoo.cfg
  修改如下:全删然后放入框内内容

tickTime=2000    
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
clientPort=2181
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

在这里插入图片描述
3.进入zkdata文件夹,创建文件myid,用于表示是几号服务器。master主机中,设置服务器id为1。(集群中设置master为1号服务器,slave1为2号服务器,slave2为3号服务器)
  cd /usr/zookeeper/zookeeper-3.4.10/zkdata
  echo 1 > myid
  cat myid
(myid不加空行)
在这里插入图片描述
4.远程复制分发安装文件。
  以上已经在主节点master上配置完成ZooKeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下:(在master执行)
  scp -r /usr/zookeeper root@slave1:/usr/
  scp -r /usr/zookeeper root@slave2:/usr/
在这里插入图片描述
5.设置myid。
  在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字。(在slave1和slave2中执行)
  cd /usr/zookeeper/zookeeper-3.4.10/zkdata
  echo 2 > myid
  cat myid
  echo 3 > myid
  cat myid
(myid不加空行)
实验中设置slave1中为2;
在这里插入图片描述
slave2中为3:
在这里插入图片描述
6.修改/etc/profile文件,配置zookeeper环境变量。(三台机器都执行)。确保粘贴复制没有后空格,否则source出错。
vi /etc/profile

#set zookeeper environment    
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10 
PATH=$PATH:$ZOOKEEPER_HOME/bin  

在这里插入图片描述
生效环境变量:source /etc/profile

7.启动ZooKeeper集群。在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本。注意在zookeeper目录下:(三台机器都执行)
  回到上一层:cd ..
  开启服务:bin/zkServer.sh start
  查看状态:bin/zkServer.sh status
master节点状态👇:
在这里插入图片描述
slave1节点状态👇:在这里插入图片描述
slave2节点状态👇:
在这里插入图片描述
  通过上面状态查询结果可见,一个节点是Leader,其余的结点是Follower。至此,zookeeper安装成功。

四、安装hadoop

  以下步骤逻辑仅供选手参考:即hadoop安装同样在主节点master上进行配置操作,然后将文件复制到到子节点slave1和slave2。
4.1解压安装包,配置环境变量
1.下载hadoop压缩包,创建对应工作目录/usr/hadoop,解压hadoop到相应目录,删除相应软件包。

mkdir -p /usr/hadoop
cd /usr/hadoop
wget http://10.10.88.2:8000/bigdata/bigdata_tar/hadoop-2.7.3.tar.gz
tar -zxvf hadoop-2.7.3.tar.gz -C /usr/hadoop/
rm -rf /usr/hadoop/hadoop-2.7.3.tar.gz

2.添加hadoop环境变量(三台机器执行)

vim /etc/profile

添加如下内容:

# HADOOP
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

在这里插入图片描述
使用以下命令使profile生效:

source /etc/profile

4.2配置hadoop各组件
  hadoop的各个组件的都是使用XML进行配置,这些文件存放在hadoop的etc/hadoop目录下。
在这里插入图片描述
1.进入hadoop配置目录,编辑hadoop-env.sh环境配置文件。

cd $HADOOP_HOME/etc/hadoop
vim hadoop-env.sh

在这里插入图片描述
输入以下内容,修改java环境变量:
记得删除:
在这里插入图片描述
添加这个:↓

export JAVA_HOME=/usr/java/jdk1.8.0_171

在这里插入图片描述
键入“Esc”,退出编辑模式,使用命令“:wq”进行保存退出。
2.编辑core-site.xml文件。

vim core-site.xml

添加以下:

<property>
  <name>fs.default.name</name>
   <value>hdfs://master:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
   <value>/usr/hadoop/hadoop-2.7.3/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
  <name>io.file.buffer.size</name>
   <value>131072</value>
</property>
<property>
  <name>fs.checkpoint.period</name>
   <value>60</value>
</property>
<property>
  <name>fs.checkpoint.size</name>
   <value>67108864</value>
</property>

master:在主节点的ip或者映射名。
9000:主节点和从节点配置的端口都是9000。
在这里插入图片描述
同样注意保存退出。
3. 编辑mapred-site.xml。hadoop是没有这个文件的,需要将mapred-site.xml.template样本文件复制为mapred-site.xml,对其进行编辑:

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

在这里插入图片描述
<configuration></configuration>中加入以下代码:

<property>
<!--指定Mapreduce运行在yarn上-->
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
 </property>

注意保存退出。
4.修改yarn-site.xml。

vim yarn-site.xml

<configuration></configuration>中加入以下代码:

<!-- 指定ResourceManager的地址-->
<property>
 <name>yarn.resourcemanager.address</name>
   <value>master:18040</value>
 </property>
 <property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>master:18030</value>
 </property>
 <property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>master:18088</value>
 </property>
 <property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>master:18025</value>
 </property>
 <property>
  <name>yarn.resourcemanager.admin.address</name>
  <value>master:18141</value>
 </property>
<!-- 指定reducer获取数据的方式-->
 <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>
 <property>
  <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>

<!-- Site specific YARN configuration properties -->

在这里插入图片描述
注意保存退出。
5. 编辑hdfs-site.xml配置文件。

vim hdfs-site.xml
echo “export JAVA_HOME=/usr/java/jdk1.8.0_171” >> yarn-env.sh

<configuration></configuration>中加入以下代码:

<property>
 <name>dfs.replication</name>
   <value>2</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/usr/hadoop/hadoop-2.7.3/hdfs/name</value>
   <final>true</final>
</property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/usr/hadoop/hadoop-2.7.3/hdfs/data</value>
   <final>true</final>
 </property>
 <property>
  <name>dfs.namenode.secondary.http-address</name>
   <value>master:9001</value>
 </property>
 <property>
   <name>dfs.webhdfs.enabled</name>
   <value>true</value>
 </property>
 <property>
   <name>dfs.permissions</name>
   <value>false</value>
 </property>

dfs.replication:因为hadoop是具有可靠性的,它会备份多个文本,这里value就是指备份的数量(小于等于从节点的数量)。在这里插入图片描述
注意保存退出。
6.编写slaves文件,添加子节点slave1和slave2。

vi slaves

记得删localhost
在这里插入图片描述
在这里插入图片描述
编写master文件,这里添加主节点master。如果没有此文件,可以直接添加。

vi master

在这里插入图片描述
7.分发hadoop文件到slave1、slave2两个子节点:

scp -r /usr/hadoop root@slave1:/usr/
scp -r /usr/hadoop root@slave2:/usr/

在这里插入图片描述
注意:slave各节点上还需要配置环境变量,参考hadoop中第一个步骤。
8.在master中格式化hadoop,开启hadoop。(仅在master中进行操作)

namenode:hadoop namenode -format

在这里插入图片描述
当出现“Exiting with status 0”的时候,表明格式化成功。
在这里插入图片描述
9.主节点格式化成功之后,就可以在主节点中开启hadoop集群。仅在master主机上开启操作命令。它会带起从节点的启动。(仅在master中进行操作)
  ●回到hadoop目录:cd /usr/hadoop/hadoop-2.7.3
  ●主节点开启服务:sbin/start-all.sh
  ●Jps
master主节点状态如下:
在这里插入图片描述
slave1节点状态如下:
在这里插入图片描述
slave2节点状态如下:
在这里插入图片描述
11.使用hadoop命令“hadoop fs”进行相关操作。

五、安装hbase

1.同样先在主节点master下进行操作,然后在复制到子节点slave1和slave2.先建立工作路径/usr/hbase,将/opt/soft下的hbase解压到工作路径中。

mkdir -p /usr/hbase
cd /usr/hbase
wget http://10.10.88.2:8000/bigdata/bigdata_tar/hbase-1.2.4-bin.tar.gz
#解压缩并删除
tar -zxvf hbase-1.2.4-bin.tar.gz -C /usr/hbase
rm -rf /usr/hbase/hbase-1.2.4-bin.tar.gz

2.进入hbase配置目录conf,修改配置文件hbase-env.sh,添加配置变量:

cd /usr/hbase/hbase-1.2.4/conf
vim hbase-env.sh

添加以下内容:

export HBASE_MANAGES_ZK=false
export JAVA_HOME=/usr/java/jdk1.8.0_171
export HBASE_CLASSPATH=/usr/hadoop/hadoop-2.7.3/etc/hadoop

在这里插入图片描述
解释:一个分布式运行的Hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。默认的情况下Hbase会管理一个zookeep集群,即Hbase默认自带一个zookeep集群。这个集群会随着Hbase的启动而启动。而在实际的商业项目中通常自己管理一个zookeeper集群更便于优化配置提高集群工作效率,但需要配置Hbase。需要修改conf/hbase-env.sh里面的HBASE_MANAGES_ZK 来切换。这个值默认是true的,作用是让Hbase启动的时候同时也启动zookeeper.在本实验中,我们采用独立运行zookeeper集群的方式,故将其属性值改为false。
3.配置conf目录下的hbase-site.xml。

vim hbase-site.xml 

添加或修改为以下内容:

<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.master</name>
  <value>hdfs://master:6000</value>
</property>
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>master,slave1,slave2</value>
</property>
<property>
  <name>hbase.zookeeper.property.dataDir</name>
  <value>/usr/zookeeper/zookeeper-3.4.10</value>
</property>

在这里插入图片描述
解释:要想运行完全分布式模式,加一个属性 hbase.cluster.distributed 设置为 true 然后把 hbase.rootdir 设置为HDFS的NameNode的位置;
hbase.rootdir:这个目录是region server的共享目录,用来持久化Hbase。URL需要是’完全正确’的,还要包含文件系统的scheme;
hbase.cluster.distributed :Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。在hbase-site.xml配置zookeeper,当Hbase管理zookeeper的时候,你可以通过修改zoo.cfg来配置zookeeper,对于zookeepr的配置,你至少要在 hbase-site.xml中列出zookeepr的ensemble servers,具体的字段是 hbase.zookeeper.quorum.在这里列出Zookeeper集群的地址列表,用逗号分割。
hbase.zookeeper.property.clientPort:ZooKeeper的zoo.conf中的配置,客户端连接的端口。
hbase.zookeeper.property.dataDir:ZooKeeper的zoo.conf中的配置。对于独立的Zookeeper,要指明Zookeeper的host和端口。需要在 hbase-site.xml中设置。
4. 配置conf/regionservers

vim regionservers

在这里插入图片描述
在这里列出了希望运行的全部 HRegionServer,一行写一个host (就Hadoop里面的slaver 一样)。列在这里的server会随着集群的启动而启动,集群的停止而停止。
5.hadoop配置文件拷入hbase的目录下(当前目录为/usr/hbase/hbase-1.2.4/conf)

#注意最后面有 .
cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml .
cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml .

6.分发hbase到子节点。

scp -r /usr/hbase root@slave1:/usr/
scp -r /usr/hbase root@slave2:/usr/

7.配置环境变量(三台机器)

vim /etc/profile

添加以下内容:

# set hbase environment
export HBASE_HOME=/usr/hbase/hbase-1.2.4
export PATH=$PATH:$HBASE_HOME/bin

生效环境变量:

source /etc/profile

9.运行和测试,在master上执行(保证hadoop和zookeeper已开启):

start-hbase.sh
jps

slave1中进程👇:
在这里插入图片描述
master中进程👇:
在这里插入图片描述
10. hbase shell 查看状态与版本exit

hbase shell

在这里插入图片描述

六、安装hive

  实验中我们选用hive的远程模式,slave2安装mysql server用于存放元数据,slave1作为hive server作为thrift 服务器,master作为client客户端进行操作。
6.1slave2上安装MySQL server
1.配置过本地源了,安装MySQL Server
安装MySQL:

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum -y localinstall mysql57-community-release-el7-8.noarch.rpm

(比赛时候只用下面这一句就行,平时应该需要加上面的)

yum -y install mysql-community-server

在这里插入图片描述
2.启动服务
●重载所有修改过的配置文件:systemctl daemon-reload
查看状态:systemctl status mysqld
●开启服务:systemctl start mysqld
●开机自启:systemctl enable mysqld
在这里插入图片描述
3.安装完毕后,MySQL会在/var/log/mysqld.log这个文件中会自动生成一个随机的密码,获取得这个随机密码,以用于登录MySQL数据库:
●获取初密码:

grep "temporary password" /var/log/mysqld.log

●登陆MySQL:(注意中英文)

mysql -uroot -p

在这里插入图片描述
4.MySQL密码安全策略设置:
●设置密码强度为低级:set global validate_password_policy=0;
●设置密码长度:set global validate_password_length=4;
●修改本地密码:alter user 'root'@'localhost' identified by '123456';
●退出:\q
在这里插入图片描述
密码强度分级如下:
●0为low级别,只检查长度;
●1为medium级别(默认),符合长度为8,且必须含有数字,大小写,特殊字符;
●2为strong级别,密码难度更大一些,需要包括字典文件。
●密码长度最低长为4,当设置长度为1、2、3时,其长度依然为4。

5.设置远程登录
●以新密码登陆MySQL:mysql -uroot -p123456
●创建用户:create user 'root'@'%' identified by '123456';
●允许远程连接:grant all privileges on *.* to 'root'@'%' with grant option;
●刷新权限:flush privileges;

6.创建数据库test:create database test;

6.2创建工作路径,解压安装包
  首先创建工作路径,并将hive解压。环境中master作为客户端,slave1作为服务器端,因此都需要使用到hive。因为hive相关安装包存放在master中,因此我们先在master中对hive进行解压,然后将其复制到slave1中。
master中操作如下:

mkdir -p /usr/hive
wget http://10.10.88.2:8000/bigdata/bigdata_tar/apache-hive-2.1.1-bin.tar.gz
tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /usr/hive/

6.3slave1中建立文件
同样slave1上建立文件夹/usr/hive,然后master中将安装包远程复制到slave1。

mkdir -p /usr/hive

master中将hive文件复制到slave1:

scp -r /usr/hive/apache-hive-2.1.1-bin root@slave1:/usr/hive/

在这里插入图片描述
修改/etc/profile文件设置hive环境变量。(master和slave1都执行)

vim /etc/profile

添加以下内容:

#set hive
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin

在这里插入图片描述生效环境变量:source /etc/profile
在这里插入图片描述

6.4解决版本冲突和jar包依赖问题
  由于客户端需要和hadoop通信,所以需要更改Hadoop中jline的版本。即保留一个高版本的jline jar包,从hive的lib包中拷贝到Hadoop中lib位置为/usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib。(master,salve1中执行)

cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/

在这里插入图片描述
  因为服务端需要和Mysql通信,所以服务端需要将Mysql的依赖包放在Hive的lib目录下。(slave1中进行)
cd /usr/hive/apache-hive-2.1.1-bin/lib
wget http://10.10.88.2:8000/bigdata/bigdata_tar/mysql-connector-java-5.1.47-bin.jar
在这里插入图片描述
6.5Slave1作为服务器端配置hive(slave1,master都得执行)
  回到slave1,修改hive-env.sh文件中HADOOP_HOME环境变量。进入hive配置目录,因为hive中已经给出配置文件的范本hive-env.sh.template,直接将其复制一个进行修改即可:

cd $HIVE_HOME/conf
ls
#cp hive-env.sh.template hive-env.sh
vim hive-env.sh

在这里插入图片描述

hive-env.sh文件中修改HADOOP_HOME环境变量。

export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf
export HIVE_AUX_JARS_PATH=/usr/hive/apache-hive-2.1.1-bin/lib

在这里插入图片描述
3.修改hive-site.xml文件
  如果配置一台机器的话,需要将下面slave2改成master,并且将3.6.6第一步hive-site.xml中的配置文件复制到这个里头,将重复的存放位置删除,将3.6.6第一步里的slave1改为master。

<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!-- 数据库连接JDBC的URL地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name> 
<value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>
<!-- 数据库连接driver,即MySQL驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- MySQL数据库用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- MySQL数据库密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>

</configuration>

在这里插入图片描述
6.6Master作为客户端配置hive
和slave1中配置方式类似,直接进入
1.修改hive-site.xml 如果是一台机器需要将slave1改为master

<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!--- 使用本地服务连接Hive,默认为true-->
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<!-- 连接服务器-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://slave1:9083</value>
</property>
</configuration>

在这里插入图片描述
Slave1格式化数据库:

schematool -dbType mysql -initSchema

由于在3.6.5Slave1作为服务器端配置hive(slave1,master都得执行)这一步配置了master的hive-env.sh的三行配置,所以此处省略
2.修改hive-env.sh中HADOOP_HOME环境变量:(配置单台机器,此步骤可以省略)

ls
cp hive-env.sh.template hive-env.sh
vim hive-env.sh

添加以下内容:

HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf

6.7成功启动Hive
1.启动hive server服务(slave1上)注意在hive目录下进行

cd /usr/hive/apache-hive-2.1.1-bin
bin/hive --service metastore(注意空格)

在这里插入图片描述
2.启动hive client(master上) 注意在hive目录下进行
在这里插入图片描述

cd /usr/hive/apache-hive-2.1.1-bin
bin/hive

测试hive是否启动成功:

hive>show databases;

在这里插入图片描述
创建数据库hive_db。

hive>create database hive_db;

3.复制master会话,最后master的进程如下:

jps

在这里插入图片描述

七、安装Spark

7.1安装scala环境
1.下载相应安装包,创建对应工作目录/usr/scala,解压scala到相应目录。

mkdir -p /usr/scala
cd /usr/scala
wget http://10.10.88.2:8000/bigdata/bigdata_tar/scala-2.11.12.tgz
tar -zxvf scala-2.11.12.tgz -C /usr/scala

2.配置scala的环境变量并生效:(三台都添加)

vim /etc/profile

写入以下内容:

##scala
export SCALA_HOME=/usr/scala/scala-2.11.12
export PATH=$SCALA_HOME/bin:$PATH

查看scala是否安装成功:

source /etc/profile
scala -version

复制到其他节点:

scp -r /usr/scala root@slave1:/usr/
scp -r /usr/scala root@slave2:/usr/

7.2安装spark
1.下载相应安装包,创建对应工作目录/usr/scala,解压scala到相应目录。

mkdir -p /usr/spark
cd /usr/spark
wget http://10.10.88.2:8000/bigdata/bigdata_tar/spark-2.4.0-bin-hadoop2.7.tgz 
tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz -C /usr/spark
rm -rf /usr/spark/spark-2.4.0-bin-hadoop2.7.tgz

2.复制conf下spark-env.sh文件

cd /usr/spark/spark-2.4.0-bin-hadoop2.7/conf
ls
cp spark-env.sh.template spark-env.sh
vim  spark-env.sh

并添加以下内容,具体操作如下图所示:

export SPARK_MASTER_IP=master
export SCALA_HOME=/usr/scala/scala-2.11.12
export SPARK_WORKER_MEMORY=8g
export JAVA_HOME=/usr/java/jdk1.8.0_171
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.7.3/etc/hadoop

3.配置spark从节点,修改slaves文件。(注意slaves节点中只包含节点信息,其他注释不需要)

cp slaves.template slaves
vim slaves

写入以下内容:

slave1
slave2

接下来向所有子节点发送spark配置好的安装包,具体操作如下图所示:

scp -r /usr/spark root@slave1:/usr/
scp -r /usr/spark root@slave2:/usr/

4.配置spark环境变量
命令:vim /etc/profile(三台都添加)
在其中添加如下内容:

#spark
export SPARK_HOME=/usr/spark/spark-2.4.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH

生效:source /etc/profile

(3)开启spark环境(master节点)
命令:/usr/spark/spark-2.4.0-bin-hadoop2.7/sbin/start-all.sh

  • 22
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高哥的代码没Bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值