基于 Centos 7 伪分布式大数据环境构建
系统环境
软件环境
MySQL
版本:8.0.15
下载链接
MySQL Connector/J
版本:5.1.47
下载链接
JDK
版本:8u151
下载链接
Hadoop
版本:2.7.7
下载链接
HBase
版本:2.1.4
下载链接
HBase 与 JDK 版本对应参考官方文档
HBase 与 Hadoop 版本对应参考官方文档
Hive
版本:2.3.4
下载链接
Hive 与 Java、Hadoop 版本对应参考文档
用户
root
软件包存放目录
/root/big_data
软件包清单
mysql80-community-release-el7-2.noarch.rpm
mysql-connector-java-5.1.47.tar.gz
jdk-8u151-linux-x64.tar.gz
hadoop-2.7.7.tar.gz
hbase-2.1.4-bin.tar.gz
apache-hive-2.3.4-bin.tar.gz
搭建过程
Hadoop
安装 Java
解压 JDK 压缩包
# -C 后的参数为解压目录,此处为 /usr/local
tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/
为 Java 配置环境变量
#编辑配置文件
vi /etc/profile
# shift+G 跳到文件底部,加入如下内容
# JAVA_HOME 后的内容为解压目录,此处为 /usr/local/jdk1.8.0_151
# PATH 后的内容的含义为在原来的 PATH 路径中加入 JDK 下的 bin 目录
export JAVA_HOME=/usr/local/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin
#使配置文件立即生效
source /etc/profile
执行如下命令
java -version
可以看到版本与我们准备的软件环境版本一致,说明 Java 环境变量配置成功
安装 Hadoop
解压 Hadoop 压缩包
# -C 后的参数为解压目录,此处为 /usr/local
tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/
配置 Hadoop
#进入 Hadoop 配置文件目录
cd /usr/local/hadoop-2.7.7/etc/hadoop
#编辑 hadoop-env.sh 文件,加入如下内容
export JAVA_HOME=/usr/local/jdk1.8.0_151
#编辑 core-site.xml 文件,在 <configuration> 标签内加入如下内容
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop-2.7.7/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
#编辑 hdfs-site.xml 文件,在 <configuration> 标签内加入如下内容
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-2.7.7/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-2.7.7/tmp/dfs/data</value>
</property>
#生成 mapred-site.xml 配置文件
cp mapred-site.xml.template mapred-site.xml
#编辑 mapred-site.xml 文件,在 <configuration> 标签内加入如下内容
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
#编辑 yarn-site.xml 文件,在 <configuration> 标签内加入如下内容
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
注:此处配置 Hadoop 的过程与官方文档有出入,加入了 yarn 的配置文件
为 Hadoop 配置环境变量
#编辑配置文件
vi /etc/profile
# shift+G 跳到文件底部,加入如下内容
# HADOOP_HOME 后的内容为解压目录,此处为 /usr/local/hadoop-2.7.7
export HADOOP_HOME=/usr/local/hadoop-2.7.7
#将之前加入的 PATH 修改为如下内容
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#使配置文件立即生效
source /etc/profile
执行如下命令
hadoop
看到如下内容,说明 Hadoop 环境变量配置成功
本地免密登录
#检测是否能通过 ssh 免密登录本机
ssh localhost
#若未成功免密登录,执行如下命令,一直回车到结束
ssh-******
#将生成的公钥加入到授权列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#查看 ~/.ssh/authorized_keys 文件权限,若非 0600 即 -rw------- ,则执行如下命令
chmod 0600 ~/.ssh/authorized_keys
再次执行如下命令
ssh localhost
能够直接接入本机,说明配置成功
启动 Hadoop
格式化 namenode
hdfs namenode -format
看到如下内容,证明 namenode 格式化成功注:输出内容较多,这里只展示底部部分信息,圈出来的部分一致说明格式化成功
启动 HDFS
start-dfs.sh
启动过程中未报错注:图中圈出的部分必须填入 yes ,不能直接回车,回车会导致启动失败
jps
看到四个进程,说明 HDFS 启动正常
启动 YARN
start-yarn.sh
启动过程中未报错
jps
看到六个进程,说明 HDFS 启动正常注:若想同时启动 Hadoop 与 YARN,执行命令 start-all.sh
关闭 HDFS
stop-dfs.sh
关闭过程未报错
再次执行
jps
与 HDFS 相关的进程已关闭
关闭 YARN
stop-yarn.sh
关闭过程未报错
再次执行
jps
可以看到只有一个进程,至此,Hadoop 伪分布式环境搭建结束
Hive
安装 MySQL
安装 Hive
解压 Hive 压缩包
tar -zxvf apache-hive-2.3.4-bin.tar.gz -C /usr/local/
配置 Hive
#进入 Hive 配置文件目录
cd /usr/local/apache-hive-2.3.4-bin/conf
#生成 hive-default.xml 配置文件
cp hive-default.xml.template hive-default.xml
#新建 hive-site.xml 配置文件并编辑
vi hive-site.xml
#写入 MySQL 配置信息
<?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://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>USERNAME</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>PASSWORD</value>
<description>password to use against metastore database</description>
</property>
</configuration>
注:上面配置文件中的 USERNAME 为 MySQL 的用户名, PASSWORD 为 MySQL 的密码
#生成 hive-env.xml 配置文件
cp hive-env.sh.template hive-env.sh
# shift+G 跳到文件底部,加入如下内容
# Hadoop 解压目录的位置,同 /etc/profile 文件中的 HADOOP_HOME
export HADOOP_HOME=/usr/local/hadoop-2.7.7
# Hive 解压目录中 conf 目录位置
export HIVE_CONF_DIR=/usr/local/apache-hive-2.3.4-bin/conf
# Hive 解压目录中 lib 目录位置
export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-2.3.4-bin/lib
为 Hive 配置环境变量
#编辑配置文件
vi /etc/profile
# shift+G 跳到文件底部,加入如下内容
# HIVE_HOME 后的内容为解压目录,此处为 /usr/local/apache-hive-2.3.4-bin
export HIVE_HOME=/usr/local/apache-hive-2.3.4-bin
#将之前加入的 PATH 修改为如下内容
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
#使配置文件立即生效
source /etc/profile
配置驱动
#解压 JDBC 压缩包
tar -zxvf mysql-connector-java-5.1.47.tar.gz
#将解压目录中的 mysql-connector-java-5.1.47-bin.jar 放到 Hive 解压目录的 lib 目录下
cp mysql-connector-java-5.1.47-bin.jar /usr/local/apache-hive-2.3.4-bin/lib/
启动 Hadoop
#启动 HDFS
start-dfs.sh
#启动 YARN
start-yarn.sh
创建仓库并配置权限
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -mkdir -p /user/hive/tmp
hadoop fs -mkdir -p /user/hive/log
hadoop fs -chmod -R 777 /user/hive/warehouse
hadoop fs -chmod -R 777 /user/hive/tmp
hadoop fs -chmod -R 777 /user/hive/log
初始化
schematool -initSchema -dbType mysql
回显信息中出现 schemaTool completed 初始化完成
启动 Hive 并进行测试
#启动 Hive
hive
#测试内容如下
show databases;
create table test(id int, name string);
show tables;
drop table test;
exit;
整个启动及测试过程未出现报错信息,Hive 本地模式部署完成