亦辰博客
默认分类

大数据各平台搭建

by 亦辰, 2022-09-27


环境安装准备

名称涉及到的包名版本号
JDKjdk-8u212-linux-x64.tar.gz1.8.0_212
Hadoophadoop-2.8.3.tar.gz2.8.3
MySQLmysql-5.7.34-linux-glibc2.12-x86_64.tar.gz5.7.34
Hiveapache-hive-1.2.1-bin.tar.gz1.2.1

首先修改默认配置文件

vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
~~~~~
ONBOOT=yes
IPADDR=192.168.1.10(IP地址)
GATEWAY=192.168.1.2(网关)
NETMASK=255.255.255.0
DNS1=8.8.8.8

重启服务

service network restart

分别修改3台主机名分别为master,slave1,slave2

hostnamectl set-hostname master

hostnamectl set-hostname slave1

hostnamectl set-hostname slave2

使主机名生效

bash
hostname                #查看当前主机名

在三台主机上编辑 vi /etc/hostname分别修改为

vi /etc/hostname
master、slave1、slave2

在三台主机上编辑vi /etc/hosts在末尾添加IP地址以及主机名称

vi /etc/hosts

192.168.1.10 master
192.168.1.11 slave1
192.168.1.12 slave2

临时关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld            #关闭防火墙开机自启动
systemctl status firewalld            #查看防火墙状态

安装ssh服务 查看进程

rpm -qa|grep -i ssh

在3台上配置ssh密钥实现免密登录,按三次回车

ssh-keygen -t rsa

将三台主机的公钥全部发送到master主机

ssh-copy-id master

再从主机将存放的公钥文件分发到另外的主机

scp -r /root/.ssh/authorized_keys root@slave1:/root/.ssh/

scp -r /root/.ssh/authorized_keys root@slave2:/root/.ssh/
Hadoop搭建

配置安装jdk

在Xftp里传完jdk文件解压jdk压缩包到/opt目录下

tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/

重命名文件夹为jdk

mv jdk1.8.0_221/ jdk

将jdk分发到另外两台主机的/opt/目录下

scp -r jdk root@slave1:/opt/

scp -r jdk root@slave2:/opt/

配置环境变量

vi /etc/profile   
#在末尾追加
#JAVA_HOME
export JAVA_HOME=/opt/jdk  
export PATH=$PATH:$JAVA_HOME/bin

使环境变量立即生效 ,另外两台主机相同配置

source /etc/profile
java -version                    #验证jdk安装

hadoop安装

将hadoop文件压缩包解压到/opt/目录下

tar -zxvf hadoop-2.8.3.tar.gz  -C /opt/

重命名文件夹

mv hadoop-2.8.3/ hadoop    

进入hadoop的核心配置文件下

cd /opt/hadoop/etc/hadoop/

配置核心文件

vi core-site.xml 在其中编辑

<configuration>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/data/tmp</value>
</property>
</configuration>

配置hdfs-site.xml文件

vi hdfs-site.xml 在其中编辑

<configuration>
<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave2:50090</value>
</property>
</configuration>

配置yarn-site.xml文件

vi yarn-site.xml 在其中编辑

<configuration>
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>slave1</value>
</property>
</configuration>

配置mapred-site.xml文件

cp mapred-site.xml.template  mapred-site.xml    拷贝一份配置文件
vi mapred-site.xml                        在其中编辑

<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>

配置jdk路径文件

vi hadoop-env.sh

# The java implementation to use.
export JAVA_HOME=/opt/jdk

vi yarn-env.sh

#some Java parameters
export JAVA_HOME=/opt/jdk

vi mapred-env.sh

export JAVA_HOME=/opt/jdk

配置slaves

vi slaves            #将其内容替换为
master
slave1
slave2

将hadoop文件分发到另外两台slave1和slave2主机中

scp -r /opt/hadoop/ root@slave1:/opt/

scp -r /opt/hadoop/ root@slave2:/opt/

修改环境变量,slave1与slave2一样操作

vi /etc/profile            在底部添加
#HDOOP_HOME
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使环境立即生效,slave1与slave2一样操作

source /etc/profile

初始化namenode

 hadoop namenode -format

在master里启动hdfs服务

start-dfs.sh 

在slave1里启动yarn服务

 start-yarn.sh 

验证集群启动进程

jps      #在3台主机输入并回车
主节点子节点1子节点2
masterslave1slave2
JpsNodeManagerJps
DataNodeJpsDataNode
NameNodeResourceManagerSecondaryNameNode
NodeManagerDataNodeNodeManager

MySQL的安装

安装MySQL服务,先查看其他关系数据库

 rpm -qa|grep mariadb

如有则复制全名卸载

rpm -e --nodeps XXX             卸载    XXX为查看到的包名

在Xftp上传MySQL的Linux压缩包

tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
#解压到/usr/local目录下
cd /usr/local/                #进入local目录下
mv mysql-5.7.34-linux-glibc2.12-x86_64/ mysql                #重命名      

创建用户

groupadd mysql
useradd -r -g mysql mysql                #添加用户进组

修改mysql文件权限

chown mysql:mysql -R /usr/local/mysql

进入mysql目录里

cd mysql
ll                #查看文件权限

修改mysql.server文件

cd support-files                #进入mysql里的support-files目录
vi mysql.server                 #修改mysql.server文件
#往下翻找到basedir=和datadir=,在后面添加上mysql的文件的绝对路径
basedir=/usr/local/mysql        
datadir=/usr/local/mysql/data

复制修改后的mysql.server文件到/etc/init.d/mysqld目录下

cp mysql.server /etc/init.d/mysqld            #复制并重命名

在/usr/local/mysql/bin中初始化

cd /usr/local/mysql/bin            #进入到bin目录下
./mysqld --initialize-insecure --user=mysql        

开启MySQL服务:

service mysqld start
chkconfig --add mysqld            #开启MySQL服务自启

无密登录

./mysql -uroot -p
Enter password:                   #提示输入密码直接按回车

设置密码

mysql> set password=password('123456');    #设置密码为123456
Query OK, 0 rows affected, 1 warning (0.00 sec)
#创建hive表
mysql> create database hive default charset utf8;
Query OK, 1 row affected (0.00 sec)
#赋予权限
mysql> grant all privileges on *.* to 'root'@'master' identified by '123456';                    #master为自己的主机名
#刷新权限
flush privileges;

验证登录

mysql> exit;               #退出MySQL
./mysql -uroot -p123456    #验证登录

Hive的安装

在Xftp上传hive的Linux压缩包

tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/
#解压到/opt/目录下
mv /opt/apache-hive-1.2.1-bin hive           #重命名为hive

配置环境变量

vi /etc/profile
#在尾部添加
#HIVE_HOME
export HIVE_HOME=/opt/hive            #为hive的绝对路径
export PATH=$PATH:$HIVE_HOME/bin
#使环境变量生效,另外两台主机相同配置
source /etc/profile

修改配置文件

cd /opt/hive/conf            #进入配置文件目录
cp hive-env.sh.template hive-env.sh           #拷贝一份配置文件并重命名
vi hive-env.sh               #修改配置文件
#找到以下内容并修改后面的文件的路径               
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/opt/hadoop
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/hive/conf

创建一份配置文件

touch hive-site.xml
vi hive-site.xml            #编辑配置文件
在其中加入

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://master:3306/hive?useSSL=false</value>
</property>
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
</property>
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
</property>
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
</property>
<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/opt/hive/iotmp</value>
</property>
</configuration>

将hive分发到另外两台主机

scp -r /opt/hive root@slave1:/opt      

scp -r /opt/hive root@slave2:/opt      

拷贝MySQL的jar包到hive的lib目录

先在Xftp上传MySQL的jar包到/opt/目录下
cp /opt/mysql-connector-java-5.1.40-bin.jar /opt/hive/lib/

拷贝jline到hadoop中

cp /opt/hive/lib/jline-2.12.jar /opt/hadoop/share/hadoop/yarn/lib/

初始化元数据

schematool -dbType mysql -initSchema
hive                    #验证hive安装成功
显示 hive> 即安装成功
show databases;         #查看数据库注意加;号

创建hive内部表和外部表

#创建内部表
hive> create table student(id int,name string)
    > row format delimited fields terminated by ','
    > stored as textfile ;
OK
Time taken: 0.284 seconds
hive> 

#创建外部表
hive> create external table student_external(id int,name string)
    > row format delimited fields terminated by ','
    > stored as textfile ;
OK
Time taken: 0.346 seconds
hive> 

内外表的转换

#内部表转外部表
hive> alter table student set tblproperties ('external=true');
OK
Time taken: 0.213 seconds
hive> 

#外部表转内部表
hive> alter table student_external set tblproperties ('external=false');
OK
Time taken: 0.105 seconds
hive> 

#创建分区表

hive的基本命令

查看库中的数据表
hive> show tables;
删除表
hive> drop table if exists 表名; 
查询表的结构
hive> desc 表名;
查询数据库
show databases;

待添加。。。

none

作者: 亦辰

2025 © YiChen