Centos 7下分布式Hadoop2.7.7+Hive2.3.7安装教程

一、基本配置

集群包括

角色 名称 简称
master inspur5212m4.it.163.org 以下简称m4
slave inspur5212m5.it.163.org 以下简称m4
slave lenovosr630.it.163.org 以下简称sr

二、JDK和SSH的配置

修改三台机器的/etc/hosts

sudo vim /etc/hosts

添加内容:

10.220.16.161   inspur5212m5.it.163.org 
10.220.16.162   inspur5212m4.it.163.org
10.220.16.163   lenovosr630.it.163.org

安装JDK1.8

在这里我选择安装Oracle JDK8_251

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

配置JDK环境变量

sudo vim /etc/profile

添加:

# jdk1.8 config begin
export JAVA_HOME=/admin/jdk1.8.0_251
export JRE_HOME=/admin/jdk1.8.0_251/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
#jdk1.8 config end

更新环境变量

source /etc/profile

在centos7下我们会遇到配置完环境变量,输入java --version仍显示java1.7的情况,这种情况的原因是centos7预先安装了openjdk1.7,我们要将预先安装的openjdk1.7进行卸载:
首先进入root

sudo su root
rpm -qa|grep java

我们得到预安装的java编号,根据这些编号我们执行

rpm -e --nodeps java-1.6.0-openjdk-devel-1.6.0.41-1.13.13.1.el7_3.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el7_3.x86_64
rpm -e --nodeps java-1.7.0-openjdk-devel-1.7.0.261-2.6.22.2.el7_8.x86_64

在三台服务器上创建组和用户

sudo groupadd hadoop
useradd -d /home/hadoop -g hadoop hadoop
passwd hadoop #修改密码

因为我们使用的测试服务器,我们将三台服务器上的hadoop用户加入sudoer。

设置ssh无密码登录

在m4上

ssh-keygen -t rsa

然后一直回车即可,我们会获得一个目录.ssh,目录下的rsa_id.pub为m4的公钥,该公钥中的内容添加在某台服务器的某个用户的.ssh/authorized_keys中,m4就可以ssh免密登录这台服务器的这个用户。

cd .ssh
cp id_rsa.pub authorized_keys

在此我们应注意.ssh目录,及其中各个文件的权限

名称 权限
.ssh 755或700
rsa_id.pub 644
authorized_keys 644
rsa_id 600

在此,如果我们在ssh时报出Permission denied (publickey)的错误要检查是否将公钥添加到目的服务器目的用户的authorized_keys上,报出其他问题请及时查看.ssh目录及其目录下文件权限。
在此提醒,在不确定文件权限的情况下要将目录或者文件chmod 777,最好通过

getfacl -R /目标目录 >systemp.bak
setfacl --restore=systemp.bak

备份和恢复权限信息。

三、hadoop的配置

在m4下hadoop的配置

将hadoop-2.7.7.tar.gz解压

tar -zxvf hadoop-2.7.7.tar.gz
mv hadoop-2.7.7 hadoop2.7

添加hadoop环境变量

HADOOP_HOME=/home/hadoop/hadoop2.7
#修改PATH为:
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin

使环境变量生效

source /etc/profile

进入目录/home/hadoop/hadoop.2.7/etc/hadoop

cd /home/hadoop/hadoop.2.7/etc/hadoop

修改hadoop-env.sh,修改JAVA_HOME(25 line)

export JAVA_HOME=/admin/jdk1.8.0_251

修改core-site.xml



        
                fs.defaultFS
                hdfs://inspur5212m4.it.163.org:9000
                
        

        
                dfs.namenode.checkpoint.period
                1800
                
        

        
                fs.checkpoint.size
                67108864
        

        
                fs.trash.interval
                1440
                
        

        
                hadoop.tmp.dir
                /data/hadoop/tmp
                
        
        
                io.file.buffer.size
                131702
                
        

修改hdfs-site.xml



        
                dfs.namenode.name.dir
                /data/hadoop/hdfs/name
                
                 
        

        
                dfs.datanode.data.dir
                /data/hadoop/hdfs/data
                
                 
        
        
        
        
                dfs.namenode.http-address
                inspur5212m4.it.163.org:50070
                
        


        
                dfs.webhdfs.enabled
                true
        
        
                dfs.replication
                2
                
        

        
                dfs.datanode.du.reserved
                1073741824
                
        

        
                dfs.block.size
                134217728
                
        

        
                dfs.permissions.enabled
                false
                
        


配置mapred-site.xml


        
                mapreduce.framework.name
                yarn
        
        
                mapreduce.jobtracker.http.address
                inspur5212m4.it.163.org:50030
        
        
                mapred.job.tracker
                http://inspur5212m4.it.163.org:9001
        
        
                mapreduce.jobhistory.address
                inspur5212m4.it.163.org:10020
        
        
                mapreduce.jobhistory.webapp.address
                inspur5212m4.it.163.org:19888
        

配置yarn-site.xml


        
                mapreduce.framework.name
                yarn
        
        
                yarn.resourcemanager.address
                inspur5212m4.it.163.org:8032
        
        
                yarn.resourcemanager.scheduler.address
                inspur5212m4.it.163.org:8030
        
        
                yarn.resourcemanager.resource-tracker.address
                inspur5212m4.it.163.org:8031
        
        
                yarn.resourcemanager.admin.address
                inspur5212m4.it.163.org:8033
        
        
                yarn.resourcemanager.webapp.address
                inspur5212m4.it.163.org:8088
        


修改slaves

inspur5212m5.it.163.org
lenovosr630.it.163.org

修改masters

inspur5212m4.it.163.org

在m5、sr下hadoop的配置

将m4下的/home/hadoop/hadoop2.7目录scp至m5和sr的/home/hadoop/hadoop2.7下
添加hadoop环境变量

HADOOP_HOME=/home/hadoop/hadoop2.7
#修改PATH为:
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin

使环境变量生效

source /etc/profile

进入目录/home/hadoop/hadoop.2.7/etc/hadoop

cd /home/hadoop/hadoop.2.7/etc/hadoop

修改hdfs-site.xml创建目录,在本文中创建的目录为/mnt/dfs/name
修改hdfs-site.xml,将数据的存放位置修改为三块HDD盘的挂载位置。



        
        
                dfs.namenode.name.dir
                /mnt/dfs/name
                
                 
        
        
                dfs.datanode.data.dir
                /mnt/dfs/1,/mnt/dfs/2,/mnt/dfs/3
                
                 
        
        
        
        

启动hadoop集群

在m4的/home/hadoop/hadoop2.7目录下

./bin/hadoop namenode -format
./sbin/start-all.sh

在m4、m5、sr上可通过jps命令查看namenode、datanode进程。

四、mysql的配置

安装mysql5.7.30

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum localinstall mysql57-community-release-el7-11.noarch.rpm
yum repolist enabled | grep "mysql.*-community.*"
yum install mysql-community-server

mysql的初始化

记录临时root密码

service mysqld start
sudo grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation

此时只能设置一个复杂的新密码,我们利用复杂的新密码密码,进入mysql,再设置一个简洁的密码。

mysql -u root -p

输入

set global validate_password_policy=LOW;
set global validate_password_length=6;
ALTER USER 'root'@'localhost' IDENTIFIED BY '创建的新密码';

这样我们就能使用新密码在root用户下登录mysql了

五、Hive的安装

在m4上安装hive

从清华源wget下载好apache-hive-2.3.7-bin.tar.gz

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.7/apache-hive-2.3.7-bin.tar.gz
tar -zxvf apache-hive-2.3.7-bin.tar.gz
mv apache-hive-2.3.7-bin hive2.3

配置环境变量,修改/etc/profile

# 添加
export HIVE_HOME=/home/hadoop/hive2.3
# 修改
export PATH=$HIVE_HOME/bin:$PATH

使环境变量生效

source /etc/profile

mysql上配置hive

进入mysql

mysql -u root -p

创立用户、赋予权限,建立数据库

create database metastore;
grant all on metastore.* to hive@'%'  identified by '创建的密码';
grant all on metastore.* to hive@'localhost'  identified by '创建的密码';
flush privileges;

使用hive用户登录

mysql -u hive -p

创建数据库hive

create database hive;

配置jdbc

mv mysql-connector-java-5.1.40.jar /home/hadoop/hive2.3/lib

配置hive文件

cd /home/hadoop/hive2.3/conf
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

修改hive-env.sh

export JAVA_HOME=/admin/jdk1.8.0_251
export HADOOP_HOME=/home/hadoop/hadoop2.7

修改hive-site.xml
首先将hive-site.xml备份

mv hive-site.xml hive-site.xml.back
vim hive-site.xml

添加内容




        
        
        
            hive.exec.scratchdir
            /tmp
        
        
        
            hive.metastore.warehouse.dir
            /user/hive/warehouse
        
        
        
            hive.querylog.location
            /user/hive/log
        
        
            javax.jdo.option.ConnectionURL
            jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
        
        
            javax.jdo.option.ConnectionDriverName
            com.mysql.jdbc.Driver
        
        
            javax.jdo.option.ConnectionUserName
            hive
        
        
            javax.jdo.option.ConnectionPassword
            创建的密码
            
        

hdfs新建目录

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

初始化hive

schematool -dbType mysql -initSchema hive 你的密码

如果报错

org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get hema version.权限问题

进入mysql,进行权限增加

grant all on *.* to 'hive'@'localhost' identified by '你的密码';

初始化成功后,输入hive,进行测试

show databases;       
create database hive_test_db;   
show databases;   
use hive_test_db;  
show tables;       
create table test(ip int, name string) row format delimited fields terminated by '\t'; 
show tables;       
exit;        

你可能感兴趣的:(Centos 7下分布式Hadoop2.7.7+Hive2.3.7安装教程)