Hadoop+Hive三节点集群环境搭建

更改主机名

更改hosts文件

vi /etc/hosts

在后面添加ip地址和主机名的映射

在这里插入图片描述

配置多台服务器间的免密登录

可以参考:https://blog.csdn.net/u010698107/article/details/119079821

Hadoop配置

1.下载安装

Hadoop官网:[http://hadoop.apache.org]
(http://hadoop.apache.org)

新建目录
/opt/hadoop

将下载的压缩包解压到 /opt/hadoop

重命名文件名

cd /opt/hadoop
mv hadoop-3.3.1 hadoop

更改配置文件

进入安装目录

cd /opt/hadoop/hadoop/etc/hadoop

修改 core-site.xml 文件


    
        fs.defaultFS
        
        hdfs://centosAI1:9000
    
    
        hadoop.tmp.dir
        /opt/hadoop/hadoopdata
    

修改 hdfs-site.xml 文件


    
        dfs.replication
        1
    

修改 yarn-site.xml 文件



    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
        yarn.resourcemanager.address
        centosAI1:18040
    
    
        yarn.resourcemanager.scheduler.address
        centosAI1:18030
    
    
        yarn.resourcemanager.resource-tracker.address
        centosAI1:18025
    
    
        yarn.resourcemanager.admin.address
        centosAI1:18141
    
    
        yarn.resourcemanager.webapp.address
        centosAI1:18088
    

修改 mapred-site.xml 文件


    
        mapreduce.framework.name
        yarn
    

配置workers文件
vi /opt/hadoop/hadoop/etc/hadoop/workers
加入主机名称,如果文件中有localhost这行信息,直接删除掉

centosAI1
centosAI2
centosAI3

配置系统环境变量,三台机器都需配置

vim ~/.bash_profile

添加内容,路径为自己安装的目录

# hadoop
export HADOOP_HOME=/opt/hadoop/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

修改环境变量以后使之生效

source ~/.bash_profile

输入

vim /etc/profile

添加以下内容:

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

使生效:

source /etc/profile

创建数据存放目录

mkdir /opt/hadoop/hadoopdata

格式化文件系统

hadoop namenode -format

将配置文件复制到workers节点上

scp -r /opt/hadoop root@centosAI2:/opt
scp -r /opt/hadoop root@centosAI3:/opt

将hadoop-env.sh中java路径更改为自己的

输入:echo $JAVA_HOME
查看JAVA_HOME
在这里插入图片描述
在hadoop的配置目录etc/hadoop中(我的是/opt/hadoop/hadoop/etc/hadoop/)修改hadoop-env.sh,
把JAVA_HOME换成正确的目录,三台服务器都需修改

export JAVA_HOME=/usr/local/java/jdk1.8.0_333

命令行输入start-all.sh启动集群

start-all.sh

三台服务器上查看是否启动成功
输入 jps
主节点上应包含
DataNode
NameNode
SecondaryNameNode
NodeManager

从节点上应包含
DataNode
NodeManager

Hive 安装配置

首先需安装mysql

下载并解压hive压缩包
可以从官网下载:
https://mirrors.cnnic.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
也可以用wget命令下载:

wget https://mirrors.cnnic.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz

解压并更改文件名:

sudo tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local
cd /usr/local
sudo mv apache-hive-3.1.2-bin hive

把hive命令加入到环境变量中去

vim ~/.bashrc

加入:

export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export HADOOP_HOME=/opt/hadoop/hadoop

其中HADOOP_HOME需要被配置成你机器上Hadoop的安装路径

运行如下命令使配置立即生效:

source ~/.bashrc

修改配置文件

cd /usr/local/hive/conf
mv hive-default.xml.template hive-default.xml

使用vim编辑器新建一个配置文件hive-site.xml:

cd /usr/local/hive/conf
vim hive-site.xml

在hive-site.xml中添加如下配置信息:


  
    javax.jdo.option.ConnectionURL
    jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
    JDBC connect string for a JDBC metastore
  
  
    javax.jdo.option.ConnectionDriverName
    com.mysql.cj.jdbc.Driver
    Driver class name for a JDBC metastore
  
  
    javax.jdo.option.ConnectionUserName
    hive
    username to use against metastore database
  
  
    javax.jdo.option.ConnectionPassword
    123456
    password to use against metastore database
  

其中 hive 和 123456 应与接下来在mysql中创建的用户名和密码相同

将mysql-connector-java的jar包拷贝到/usr/local/hive/lib目录下,我用的是
mysql-connector-java-8.0.29.jar

登录mysql:
新建hive数据库,与以上配置文件hive-site.xml中数据库名称对应。

create database hive;

创建hive用户,用户名密码与以上配置文件hive-site.xml中对应

create user 'hive'@'localhost' identified by '123456';

对hive用户赋予权限:

grant all on *.* to 'hive'@'localhost'

刷新权限:

flush privileges;

退出mysql
初始化mysql数据库:

schematool -dbType mysql -initSchema

此时可以此时hive
命令行输入hive

hive

查看数据库:

show databases;

在这里插入图片描述
也可测试创建数据库及其他操作。
若出错可关闭hadoop安全模式后再进行测试。

至此已全部安装完成。

其他问题:
在hive中插入数据时卡死,插入不成功。
解决:可能是主机名的问题
在这里插入图片描述
此处显示应为自己配置的主机名,如不是,可使用

Hostname 你的主机名

修改。此问题只有部分服务器会出现。

你可能感兴趣的:(hadoop,hive,大数据)