hadoop 2.2 mysql_从0开始搭建Hadoop 3.0.1 和 Hive 2.3.3 环境

前言

要帮某人搭建一个Hive的环境。首先,做一个虚拟机,或者用云主机也可以;然后先安装Hadoop;再安装Hive.

环境说明:

Ubuntu 16.04

Hadoop 3.0.1

Hive 2.3.3

1. 先安装Hadoop

1.1 安装JRE或JDK

选择有多种,官方的是Oracle的JRE,另外还有OpenJDK等. 如果都装了,后面只要选一个来配置环境变量JAVA_HOME即可。

apt install

当你没有装JRE的时候,运行java命令,Ubuntu 16.04会提示你可选择的JRE有哪些。填到上面的处即可。

安装完成后,比如OpenJDK,它的安装路径是:/usr/lib/jvm/java-8-openjdk-amd64/jre

1.2 下载Hadoop安装包和Hive安装包

去官网下载。速度太慢的话,弄个迅雷会员用迅雷下。不知道还有没有其他更好的办法。

apache-hive-2.3.3-bin.tar.gz hadoop-3.0.1.tar.gz

1.3 解压Hadoop安装文件到指定目录

cd /root

tar zxvf ./hadoop-3.0.1.tar.gz -C /usr/local

1.4 配置Hadoop

cd /usr/local/hadoop-3.0.1/etc/hadoop

vim hadoop-env.sh

# 配置这一句

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre

# 然后可实验hadoop是否可用

cd /usr/local/hadoop-3.0.1

bin/hadoop version

1.5 有3种方式启动Hadoop

1.5.1 Local (Standalone) Mode (本地模式,或称Standalone模式)

默认情况下,Hadoop被配置为以非分布模式运行,作为单个Java进程。 这对调试很有用。

以下是Hadoop自带的一个Map-Reduce程序的运行示例:

(以下示例将解压后的conf目录复制为输入,然后查找并显示给定正则表达式的每个匹配项。 输出被写入到给定的输出目录。)

cd /usr/local/hadoop-3.0.1

mkdir input

cp etc/hadoop/*.xml input

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.1.jar grep input output 'dfs[a-z.]+'

cat output/*

1.5.2 Pseudo Distributed Mode (伪分布式模式)

我们要配的就是这个!

1.5.3 Fully Distributed Mode (全分布式模式)

这个是用于生产环境的,要多台机器。

2. 启动Hadoop

2.1 配置 /etc/profile

export HADOOP_HOME=/usr/local/hadoop-3.0.1

export PATH=${HADOOP_HOME}/bin:$PATH

export PDSH_RCMD_TYPE=ssh # 这一句是为了使pdsh使用ssh而不是rsh

然后使/etc/profile里配置的环境变量生效(export使得将来在子shell中也生效):

source /etc/profile

2.2 配置Hadoop

2.2.1 编辑 etc/core-site.html

fs.defaultFS

hdfs://dolphin01:9000

hadoop.tmp.dir

file:/root/vdb/hadoop/tmp

2.2.2 编辑 etc/hdfs-site.xml

dfs.namenode.secondary.http-address

dolphin01:50090

dfs.replication

2

dfs.namenode.name.dir

file:/root/vdb/hadoop/tmp/dfs/name

dfs.datanode.data.dir

file:/root/vdb/hadoop/tmp/dfs/data

2.2.3 编辑 mapred-site.xml

vi etc/hadoop/mapred-site.xml

mapreduce.framework.name

yarn

mapreduce.jobhistory.address

dolphin01:10020

mapreduce.jobhistory.webapp.address

dolphin01:19888

2.2.4 编辑 yarn-site.xml

yarn.resourcemanager.hostname

dolphin01

yarn.nodemanager.aux-services

mapreduce_shuffle

2.2.5 在$HADOOP_HOME/sbin/start-all.sh, stop-all.sh, start-dfs.sh, start-yarn.sh 的顶部添加:

HDFS_DATANODE_USER=root

HADOOP_SECURE_DN_USER=root

HDFS_NAMENODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

在 start-yarn.sh 和 stop-yarn.sh 的顶部添加:

YARN_RESOURCEMANAGER_USER=root

YARN_NODEMANAGER_USER=root

2.2.6 生成免密 (这是访问自己免密,因为都多个node都配在了同一台机器上)

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 0600 ~/.ssh/authorized_keys

2.3 启动Hadoop服务

2.3.1 格式化namenode和datanode

cd $HADOOP_HOME/bin

./hadoop namenode -format

./hadoop datanode -format

2.3.2 启动Hadoop服务

cd $HADOOP_HOME/sbin

./start-all.sh

./mr-jobhistory-daemon.sh start historyserver

2.3.3 查看是否启动成功

可以用jps命令来查看:

root@dolphin01:/usr/local/hadoop-3.0.1/sbin# jps

18209 SecondaryNameNode

17843 NameNode

19413 NodeManager

17975 DataNode

19117 ResourceManager

19598 Jps

也可以用以下命令来验证:

hadoop dfsadmin -report

3. 安装与配置Hive

3.1 安装MySQL

这是为了使用MySQL替换原来默认的Derby数据库作为Hive的元数据库

apt install mysql-server mysql-client

# 安装过程中设置root密码为 hadoop

3.2 修改MySQL的权限

进入MySQL

use mysql;

grant all PRIVILEGES on *.* to root@'%' identified by 'root';

flush privileges;

3.3 创建Linux用户

usradd hive

passwd hive

3.4 在Mysql中运行

CREATE DATABASE hive;

CREATE USER 'hive' IDENTIFIED BY 'hive';

grant all privileges on *.* to 'hive' identified by 'hive';

flush privileges;

3.5 解压hive安装包

cd /root

tar zxvf apache-hive-2.3.3-bin.tar.gz -C /usr/local/

cd /usr/local

mv apache-hive-2.3.3-bin hive-2.3.3

3.6 配置 /etc/profile

部分项目在上一节安装Hadoop时已经配置过了,这里给出最终配置:

export HADOOP_HOME=/usr/local/hadoop-3.0.1

export HADOOP_CONF_HOME=$HADOOP_HOME/etc/hadoop

export PDSH_RCMD_TYPE=ssh

export HIVE_HOME=/usr/local/hive-2.3.3

export HIVE_CONF_DIR=/usr/local/hive/conf

export PATH=${HADOOP_HOME}/bin:${HIVE_HOME}/bin:$PATH

最后,令以上配置生效:

source /etc/profile

3.7 创建Hive将来使用的目录

cd /root/vdb

mkdir -p ./hive/tmp/resources

3.8 创建hdfs目录给Hive使用

hadoop fs -mkdir -p /tmp/hive

hadoop fs -mkdir -p /user/hive/warehouse

3.9 新建用户组,并在HDFS上进行赋权

groupadd hadoop

usermod -G hadoop hive

hadoop fs -chown -R hive:hadoop /user/hive/warehouse

hadoop fs -chown -R hive:hadoop /tmp/hive/

hadoop fs -chmod 755 /user/hive/warehouse

hadoop fs -chmod 777 /tmp/hive/

hadoop fs -mkdir -p /user/hive/log

hadoop fs -chmod 777 /user/hive/log

3.10 配置Hive

3.10.1 准备工作

cd $HIVE_HOME/conf

cp hive-env.sh.template hive-env.sh

cp hive-default.xml.template hive-site.xml

3.10.2 配置 hive-site.xml

这一步的配置是整个安装配置过程中最为繁杂的地方。以下列出各处配置:

3.10.2.1 搜索hive.exec.scratchdir, 将该name对应的value修改为/user/hive/tmp

hive.exec.scratchdir

/user/hive/tmp

3.10.2.2 搜索hive.querylog.location,将该name对应的value修改为/user/hive/log/hadoop

hive.querylog.location

/user/hive/log/hadoop

Location of Hive run time structured log file

3.10.2.3 搜索javax.jdo.option.connectionURL,将该name对应的value修改为MySQL的地址

javax.jdo.option.ConnectionURL

jdbc:mysql://192.168.252.124:3306/hive?createDatabaseIfNotExist=true

JDBC connect string for a JDBC metastore.

To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.

For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.

3.10.2.4 搜索javax.jdo.option.ConnectionDriverName,将该name对应的value修改为MySQL驱动类路径

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

Driver class name for a JDBC metastore

3.10.2.5 搜索javax.jdo.option.ConnectionUserName,将对应的value修改为MySQL数据库登录名

javax.jdo.option.ConnectionUserName

root

Username to use against metastore database

3.10.2.6 搜索javax.jdo.option.ConnectionPassword,将对应的value修改为MySQL数据库的登录密码

javax.jdo.option.ConnectionPassword

hadoop

password to use against metastore database

3.10.3 创建tmp文件

mkdir $HIVE_HOME/tmp

并在 hive-site.xml 中修改:

把{system:java.io.tmpdir} 改成 /usr/local/hive-2.3.3/tmp

把 {system:user.name} 改成 {user.name}

3.10.4 编辑 hive-env.sh

vi hive-env.sh

HADOOP_HOME=/usr/local/hadoop-3.0.1

export HIVE_CONF_DIR=/usr/local/hive-2.3.3/conf

export HIVE_AUX_JARS_PATH=/usr/local/hive-2.3.3/lib

3.11 下载Mysql connector

cd $HIVE_HOME/lib

wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar

3.12 初始化MySQL中的Hive数据库

cd $HIVE_OHME/bin

./schematool -initSchema -dbType mysql

3.13 运行hive

hive

4. 参考文献

Hadoop: Setting up a Single Node Cluster

Hadoop 2.7.4 集群快速搭建

Apache Hive-2.3.0 快速搭建与使用

(完)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值