ubuntu部署Hadoop、hive、spark
本文所用到的安装包网盘链接
链接:https://pan.baidu.com/s/14G5-4qDbQQgc_-vs4pLI7Q?pwd=prh4
提取码:prh4
创建hadoop用户并设置密码
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop
sudo adduser hadoop sudo #增加管理员权限
安装SSH和配置SSH无密码登录
sudo apt-get install openssh-server
ssh localhost
配置无密码登录
cd ~/.ssh/
ssh-keygen -t rsa #一直回车
cat ./id_rsa.pub >> ./authorized_keys
安装jdk1.8
mkdir /usr/lib/jvm
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/lib/jvm
vim ~/.bashrc #添加环境变量
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source ~/.bashrc #使环境变量生效
java -version #查看版本,出现版本则没有问题
安装mysql8
apt install mysql-server #通过命令安装会安装到最新的mysql
如果第一次安装mysql8.0则必须按照如下顺序执行,不然会有好多坑
sudo mysql #用这个命令进入mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'lechongpai@123'; #修改密码
exit回到终端命令行,输入:
sudo mysql_secure_installation
#####################################################################
初始化配置信息
VALIDATE PASSWORD COMPONENT.....(使用密码强度校验组件) 输入: n
New Password:(设置新密码,并重复一遍)
Remove anonymous users (删除匿名用户) n
Disallow root login remotely(拒绝远程root账号登录) n
Remove test database and access to it(移除test数据库) n
Reload privilege tables now (现在就重新载入权限表) y
######################################################################
mysql -u root -plechongpai@123 #进行登录验证
安装hadoop
tar -zxf ~/Downloads/hadoop-3.2.3.tar.gz -C /usr/local #解压安装包
cd /usr/local
mv ./hadoop-3.2.3/ ./hadoop #修改目录名称
chown -R hadoop ./hadoop #赋予可执行权限
cd ./hadoop
./bin/hadoop version #查看hadoop版本信息,出现则说明安装成功
运行实例
cd /usr/local/hadoop
mkdir input
复制 “/usr/local/hadoop/etc/hadoop” 中的配置文件到 input 目录下:
cp /usr/local/hadoop/etc/hadoop/*.xml ./input
执行以下代码运行 Grep 示例:
./bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.3.jar grep ./input ./output 'dfs[a-z.]+'\n
cat ./output/* #查看输出结果,有则成功
切换hadoop用户启动hadoop
su hadoop
cd /usr/local/hadoop/ #hadoop安装目录
./sbin/start-all.sh #启动
./sbin/stop-all.sh #停止
访问hadoop Web UI
http://localhost:8088 #端口随机
安装hive
首先登录mysql,建立数据库hive
mysql -u root -plechongpai@123
create database hive;
创建hive用户:
create user 'hive'@'%' IDENTIFIED WITH mysql_native_password BY 'lechongpai@123';
授权:
GRANT ALL PRIVILEGES ON *.* TO hive@'%' WITH GRANT OPTION;
刷新权限
flush privileges;
修改/etc/mysql/mysql.conf.d/mysqld.cnf
###############################################################################
bind-address = 0.0.0.0 #原127.0.0.1 修改为0.0.0.0
mysqlx-bind-address = 127.0.0.1
###############################################################################
重启mysql服务
systemctl restart mysql
安装hive解压并重命名
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /etc
mv apache-hive-3.1.2-bin hive
配置环境变量
vim ~/.bashrc
########################################################################
export HIVE_HOME=/etc/hive#自己的安装路径
export PATH=$PATH:${HIVE_HOME}/bin:${HIVE_HOME}/lib:
########################################################################
source ~/.bashrc #策略生效
进入/etc/hive/conf中创建hive-site.xml并添加如下内容:
##################################################################################################################
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<!-- jdbc 连接的 URL -->
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true&useSSL=false&allowPublicKeyRetrieval=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<!-- jdbc 连接的 Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<!-- jdbc 连接的 username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastore database</description>
</property>
<!-- jdbc 连接的 password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>lechongpai@123</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>datanucleus.autoCreateTables</name>
<value>True</value>
</property>
<!-- Hive 元数据存储版本的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--元数据存储授权-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- Hive 默认在 HDFS 的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
</configuration>
##################################################################################################################
继续在/etc/hive/conf中创建hive-env.sh,并添加如下内容:
#########################################################
export HADOOP_HOME=/usr/local/hadoop #你自己的hadoop路径
export HIVE_CONF_DIR=/etc/hive/conf #你自己的hive路径
#########################################################
下载mysql的驱动包解压,并将mysql-connector-j-8.1.0.jar移动到/etc/hive/lib/下
tar -zxvf mysql-connector-j-8.1.0.tar.gz -C /etc/hive
cd /etc/hive/mysql-connector-j-8.1.0
cp mysql-connector-j-8.1.0.jar /etc/hive/lib
在/etc/hive/bin下执行以下命令(提前运行起hdfs)
schematool -dbType mysql -initSchema #运行元数据
schematool -dbType mysql -info
hive #启动hive,如果出现Logging字样,就代表启动成功
执行sql验证hive是否正常
show databases; #如有结果则代表一切正常
注意:
schematool -dbType mysql -initSchema
schematool -dbType mysql -info
以上这两个部分很容易出错,注意看执行信息
#安装spark
解压安装包到/etc
tar -zxvf spark-3.1.2-bin-hadoop3.2.tgz -C /etc/
mv spark-3.1.2-bin-hadoop3.2 spark #改名
进入安装目录,拷贝配置文件
cd /etc/spark/conf/
cp spark-env.sh.template spark-env.sh
编辑spark-env.sh文件
vim spark-env.sh
######################################################
export SPARK_HOME=/etc/spark #spark的安装路径
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_221 #jdk的安装路径
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop #hadoop的配置路径
######################################################
启动spark
cd /etc/spark
./sbin/start-all.sh
./sbin/stop-all.sh
访问Spark Web UI
http://localhost:8080/