hadoop集群及hive搭建

hadoop集群及hive搭建

一、hadoop集群规划:

  安装VMvare,使用三台centos 7虚拟机进行集群搭建,每台虚拟机的规划

主机名 ip 用户 hdfs yarn
node1 待定 node1 NameNode、DataNode NodeManager、ResourceManager

node2

待定 node2 DataNode、SecondaryNameNode NodeManager
node3 待定 node3 DataNode NodeManager

 

jdk:https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html

hadoop:http://archive.apache.org/dist/hadoop/core/

mysql:https://dev.mysql.com/downloads/file/?id=509630

hive:https://dlcdn.apache.org/hive/hive-3.1.2/

jar包:

链接:https://pan.baidu.com/s/16-IFEQrEPWSUzx16_f43Ag
提取码:tf3j

 

 

二、网络配置

2.1 、ip映射

默认没有vim编辑器,可以执行命令进行安装(出现提示,输入y即可)

vim install vim

 

打开hosts文件,新增三条与主机的映射关系(三台主机都要修改)

vim /etc/hosts
192.168.52.128 node1.itcast.cn node1
192.168.52.129 node2.itcast.cn node2
192.168.52.130 node3.itcast.cn node3

 

打开hostname文件,修改源ip

node1服务

vim /etc/hostname

 

修改为 node1

nide2服务

vim /etc/hostname

 

修改为 node2

nide3服务

vim /etc/hostname

 

修改为 node3

2.2、关闭禁用防火墙

关闭防火墙

systemctl stop firewalld.service

 

禁用防火墙

systemctl disable firewalld.service

 

查看当前状态(出现dead表示成功)

systemctl status firewalld.service

 

2.3、设置ssh免密登录

ssh node1(进行ssh登录测试)

ssh-keygen

 

4个回车 生成公钥、私钥

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

 

2.4、集群时间同步

如果未发现命令进行安装

yum install ntpdate
ntpdate ntp5.aliyun.com

 

2.5、jdk安装配置

创建统一工作目录

mkdir -p /export/server/

 

软件安装目录

mkdir -p /export/data/

 

数据存储路径

jdk安装配置环境配置
将jdk安装包上传到 /export/server/
将压缩包解压到当前目录

tar -zxvf jdk-8u291-linux-x64.tar.gz

 

将无用的安装包删除

rm -rf jdk-8u291-linux-x64.tar.gz

 

配置环境变量

vim /etc/profile

在文件最后面加上

export JAVA_HOME=/export/server/jdk1.8.0_291
export PATH=$PATH:$JAVA_HOME/bin

 

重新加载profile文件

source /etc/profile

  

测试jdk是否配置成功

java -version

  

scp -r /export/server/jdk1.8.0_291/ root@node2:/export/server/

scp -r /export/server/jdk1.8.0_291/ root@node3:/export/server/

scp /etc/profile root@node2:/etc/profile

scp /etc/profile root@node3:/etc/profile

 

2.6、Hadoop安装配置

将jdk安装包上传到 /export/server/
将压缩包解压到当前目录

tar -zxvf hadoop-3.3.0.tar.gz

将无用的安装包删除

rm -rf hadoop-3.3.0.tar.gz 

<1>、配置hadoop-env.sh

进入到/export/server/hadoop-3.3.0/etc/hadoop目录下

export JAVA_HOME=/export/server/jdk1.8.0_291

export HDFS_NAMENODE_USER=root
export HDFS_DATENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

 

<2>、配置core-site.xml文件

    <!-- 设置默认使用的文件系统 hadoop支持file、HDFS、GPS、ali|Amozor云等文件系统 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:8020</value>
    </property>

    <!-- 设置Hadoop本地保存数据路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/export/server/hadoop-3.3.0</value>
    </property>

    <!-- 设置HDFS web UI用户身份 -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>

    <!-- 整合hive用户代理设置 -->
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>

    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>

    <!-- 文件系统垃圾桶保存时间 -->
    <property>
        <name>fs.trash.interval</name>
        <value>1440</value>
    </property>

 

 

<3>、配置hdfs-site.xml文件

<!-- 设置SNN进程运行机器位置信息 -->
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>node2:9868</value>
</property>

 

<4>、配置mapred-site.xml文件

    <!-- 设置MR程序默认运行模式:yarn 集群模式local本地模式 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

    <!-- MR程序历史服务地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value>
    </property>

    <!-- MR程序历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node1:19888</value>
    </property>

    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>

    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>

    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>

 


<5>、配置yarn-site.xml文件

<!-- 设置YARN集群主角色运行机器位置 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1</value>
</property>


<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

        <!-- 是否将对容器实施物理内存限制 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>

        <!-- 是否将对容器实施虚拟内存限制 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

        <!-- 开启日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>

        <!-- 设置yarn历史服务端地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>

        <!-- 历史日志保存的时间7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

 

<6>、配置works文件

node1.itcast.cn
node2.itcast.cn
node3.itcast.cn

 

将hadoop配置远程copy到其他机器

cd /export/server
scp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD

 

<7>、添加hadoop环境变量

export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

 

<8>、hadoop文件初始化 (首次启动,在node1服务上)

 

hdfs namenode -format

 

出现以下信息说明初始化成功
Storage directory /export/server/hadoop-3.3.0/dfs/name has been successfully formatted.

 

注意:无法启动在hadoop/sbin目录下,将start-dfs.sh,stop-dfs.sh文件头添加以下内容

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

 

还有,start-yarn.sh,stop-yarn.sh文件头添加以下内容

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

 

查看hadoop web,是否配置成功

Linux服务ip:9870

 

Linux服务ip:8088

 

三、mysql安装配置

卸载 mariadb

rpm -qa | grep -i mariadb
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
rpm -qa | grep mysql

 

mysql安装
将mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar上传到软件安装目录
解压

tar -xvf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar

 

安装

yum install mysql-community-{libs,client,common,server}-*.rpm

 

出现选项,输入y
启动mysql服务

systemctl start mysqld

 

更改MySQL服务的数据编码

vim /etc/my.cnf

 

最下面一行加入

character-set-server=utf8

 

重新启动服务

systemctl restart mysqld

 

显示mysql日志

cat /var/log/mysqld.log

 

查看mysql临时密码

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

 

登录mysql,用临时密码登录

mysql -uroot -p

 

然后输入密码
进入数据库后,更改密码,不然无法进行操作
更改密码前,先更改mysql密码安全级别,默认长度

set global validate_password_policy=0;
set global validate_password_length=4;

 

然后更改mysql密码

alter user root@localhost identified by '123456';

 

然后测试MySQL语句能否使用

show databases;

 

成功后输入:exit;退出mysql
然后重新登录,输入新密码,登录成功

重新登录mysql,设置客户端访问

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;

 

四、安装配置hive

将apache-hive-3.1.2-bin.tar.gz安装包上传服务器

将文件解压到/export/server/目录

cd /export/server
tar -zxvf apache-hive-3.1.2-bin.tar.gz

 

解决hive与hadoop之间guava版本差异

cd /export/server/apache-hive-3.1.2-bin/
rm -rf lib/guava-19.0.jar
cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/

 

进入到/export/server/apache-hive-3.1.2-bin/conf/目录

cd /export/server/apache-hive-3.1.2-bin/conf/

 

修改hive-env.sh配置文件

mv hive-env.sh.template hive-env.sh
vim hive-env.sh

 

添加以下内容

export HADOOP_HOME=/export/server/hadoop-3.3.0
export HIVE_CONF_DIR=/export/server/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/export/server/apache-hive-3.1.2-bin/lib

 

配置元数据库信息

vim hive-site.xml

 

添加以下内容

<configuration>
    <!-- 配置连接串 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <!-- 数据库名称:hive -->
        <!-- createDatabaseIfNotExist=true:当数据库不存在的时候,自动帮你创建 -->
        <value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8&amp;useSSL=false</value>
    </property>
    <!-- mysql的driver类 -->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <!-- 用户名 -->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <!-- 密码 -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>
    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>node1</value>
    </property>
    <!-- 远程模式部署metastore metastore地址 -->
    <property>
      <name>hive.metastore.uris</name>
      <value>thrift://master:9083</value>
    </property>
    <!-- 关闭元数据存储授权 -->
    <property>
      <name>hive.metastore.event.db.notification.api.auth</name>
      <value>false</value>
    </property>

    <!-- 解决mysql无法执行DML语句的问题 -->
    <!-- 事务服务端配置 -->
    <property>
        <name>hive.compactor.initiator.on</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.compactor.worker.threads</name>
        <value>1</value>
    </property>


    <!-- 事务客户端配置 -->

    <property>
        <name>hive.support.concurrency</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.enforce.bucketing</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.exec.dynamic.partition.mode</name>
        <value>nonstrict</value>
    </property>
    <property>
        <name>hive.txn.manager</name>
        <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
    </property>

</configuration>

 

 

 

数据库和hive安装完成后,将mysql连接jar包上传到/export/server/apache-hive-3.1.2-bin/lib目录下

初始化元数据

bin/schematool -initSchema -dbType mysql -verbos

 

配置hive环境变量

export HIVE_HOME=/export/server/apache-hive-3.1.2-bin
export PATH=$PATH:$HIVE_HOME/bin

 

创建hive存储目录

hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -mkdir -p /tmp
hadoop fs -chmod g+w /user/hive/warehouse
hadoop fs -chmod g+w /tmp

 

服务启动:

nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &

nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 &

 

posted @ 2022-04-29 11:42  左叔  阅读(777)  评论(0编辑  收藏  举报