语言多矫饰,则人品心术,尽属可疑。——《围炉夜话·第四十则》
环境安装准备
名称 | 涉及到的包名 | 版本号 |
---|---|---|
JDK | jdk-8u212-linux-x64.tar.gz | 1.8.0_212 |
Hadoop | hadoop-2.8.3.tar.gz | 2.8.3 |
MySQL | mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz | 5.7.34 |
Hive | apache-hive-1.2.1-bin.tar.gz | 1.2.1 |
首先修改默认配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
~~~~~
ONBOOT=yes
IPADDR=192.168.1.10(IP地址)
GATEWAY=192.168.1.2(网关)
NETMASK=255.255.255.0
DNS1=8.8.8.8
重启服务
service network restart
分别修改3台主机名分别为master,slave1,slave2
hostnamectl set-hostname master
hostnamectl set-hostname slave1
hostnamectl set-hostname slave2
使主机名生效
bash
hostname #查看当前主机名
在三台主机上编辑 vi /etc/hostname分别修改为
vi /etc/hostname
master、slave1、slave2
在三台主机上编辑vi /etc/hosts在末尾添加IP地址以及主机名称
vi /etc/hosts
192.168.1.10 master
192.168.1.11 slave1
192.168.1.12 slave2
临时关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld #关闭防火墙开机自启动
systemctl status firewalld #查看防火墙状态
安装ssh服务 查看进程
rpm -qa|grep -i ssh
在3台上配置ssh密钥实现免密登录,按三次回车
ssh-keygen -t rsa
将三台主机的公钥全部发送到master主机
ssh-copy-id master
再从主机将存放的公钥文件分发到另外的主机
scp -r /root/.ssh/authorized_keys root@slave1:/root/.ssh/
scp -r /root/.ssh/authorized_keys root@slave2:/root/.ssh/
|
配置安装jdk
在Xftp里传完jdk文件解压jdk压缩包到/opt目录下
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/
重命名文件夹为jdk
mv jdk1.8.0_221/ jdk
将jdk分发到另外两台主机的/opt/目录下
scp -r jdk root@slave1:/opt/
scp -r jdk root@slave2:/opt/
配置环境变量
vi /etc/profile
#在末尾追加
#JAVA_HOME
export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME/bin
使环境变量立即生效 ,另外两台主机相同配置
source /etc/profile
java -version #验证jdk安装
hadoop安装
将hadoop文件压缩包解压到/opt/目录下
tar -zxvf hadoop-2.8.3.tar.gz -C /opt/
重命名文件夹
mv hadoop-2.8.3/ hadoop
进入hadoop的核心配置文件下
cd /opt/hadoop/etc/hadoop/
配置核心文件
vi core-site.xml 在其中编辑
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/data/tmp</value>
</property>
</configuration>
配置hdfs-site.xml文件
vi hdfs-site.xml 在其中编辑
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave2:50090</value>
</property>
</configuration>
配置yarn-site.xml文件
vi yarn-site.xml 在其中编辑
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave1</value>
</property>
</configuration>
配置mapred-site.xml文件
cp mapred-site.xml.template mapred-site.xml 拷贝一份配置文件
vi mapred-site.xml 在其中编辑
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
配置jdk路径文件
vi hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/opt/jdk
vi yarn-env.sh
#some Java parameters
export JAVA_HOME=/opt/jdk
vi mapred-env.sh
export JAVA_HOME=/opt/jdk
配置slaves
vi slaves #将其内容替换为
master
slave1
slave2
将hadoop文件分发到另外两台slave1和slave2主机中
scp -r /opt/hadoop/ root@slave1:/opt/
scp -r /opt/hadoop/ root@slave2:/opt/
修改环境变量,slave1与slave2一样操作
vi /etc/profile 在底部添加
#HDOOP_HOME
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使环境立即生效,slave1与slave2一样操作
source /etc/profile
初始化namenode
hadoop namenode -format
在master里启动hdfs服务
start-dfs.sh
在slave1里启动yarn服务
start-yarn.sh
验证集群启动进程
jps #在3台主机输入并回车
主节点 | 子节点1 | 子节点2 |
---|---|---|
master | slave1 | slave2 |
Jps | NodeManager | Jps |
DataNode | Jps | DataNode |
NameNode | ResourceManager | SecondaryNameNode |
NodeManager | DataNode | NodeManager |
|
安装MySQL服务,先查看其他关系数据库
rpm -qa|grep mariadb
如有则复制全名卸载
rpm -e --nodeps XXX 卸载 XXX为查看到的包名
在Xftp上传MySQL的Linux压缩包
tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
#解压到/usr/local目录下
cd /usr/local/ #进入local目录下
mv mysql-5.7.34-linux-glibc2.12-x86_64/ mysql #重命名
创建用户
groupadd mysql
useradd -r -g mysql mysql #添加用户进组
修改mysql文件权限
chown mysql:mysql -R /usr/local/mysql
进入mysql目录里
cd mysql
ll #查看文件权限
修改mysql.server文件
cd support-files #进入mysql里的support-files目录
vi mysql.server #修改mysql.server文件
#往下翻找到basedir=和datadir=,在后面添加上mysql的文件的绝对路径
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
复制修改后的mysql.server文件到/etc/init.d/mysqld目录下
cp mysql.server /etc/init.d/mysqld #复制并重命名
在/usr/local/mysql/bin中初始化
cd /usr/local/mysql/bin #进入到bin目录下
./mysqld --initialize-insecure --user=mysql
开启MySQL服务:
service mysqld start
chkconfig --add mysqld #开启MySQL服务自启
无密登录
./mysql -uroot -p
Enter password: #提示输入密码直接按回车
设置密码
mysql> set password=password('123456'); #设置密码为123456
Query OK, 0 rows affected, 1 warning (0.00 sec)
#创建hive表
mysql> create database hive default charset utf8;
Query OK, 1 row affected (0.00 sec)
#赋予权限
mysql> grant all privileges on *.* to 'root'@'master' identified by '123456'; #master为自己的主机名
#刷新权限
flush privileges;
验证登录
mysql> exit; #退出MySQL
./mysql -uroot -p123456 #验证登录
|
在Xftp上传hive的Linux压缩包
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/
#解压到/opt/目录下
mv /opt/apache-hive-1.2.1-bin hive #重命名为hive
配置环境变量
vi /etc/profile
#在尾部添加
#HIVE_HOME
export HIVE_HOME=/opt/hive #为hive的绝对路径
export PATH=$PATH:$HIVE_HOME/bin
#使环境变量生效,另外两台主机相同配置
source /etc/profile
修改配置文件
cd /opt/hive/conf #进入配置文件目录
cp hive-env.sh.template hive-env.sh #拷贝一份配置文件并重命名
vi hive-env.sh #修改配置文件
#找到以下内容并修改后面的文件的路径
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/opt/hadoop
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/hive/conf
创建一份配置文件
touch hive-site.xml
vi hive-site.xml #编辑配置文件
在其中加入
<?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://master:3306/hive?useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/opt/hive/iotmp</value>
</property>
</configuration>
将hive分发到另外两台主机
scp -r /opt/hive root@slave1:/opt
scp -r /opt/hive root@slave2:/opt
拷贝MySQL的jar包到hive的lib目录
先在Xftp上传MySQL的jar包到/opt/目录下
cp /opt/mysql-connector-java-5.1.40-bin.jar /opt/hive/lib/
拷贝jline到hadoop中
cp /opt/hive/lib/jline-2.12.jar /opt/hadoop/share/hadoop/yarn/lib/
初始化元数据
schematool -dbType mysql -initSchema
hive #验证hive安装成功
显示 hive> 即安装成功
show databases; #查看数据库注意加;号
创建hive内部表和外部表
#创建内部表
hive> create table student(id int,name string)
> row format delimited fields terminated by ','
> stored as textfile ;
OK
Time taken: 0.284 seconds
hive>
#创建外部表
hive> create external table student_external(id int,name string)
> row format delimited fields terminated by ','
> stored as textfile ;
OK
Time taken: 0.346 seconds
hive>
内外表的转换
#内部表转外部表
hive> alter table student set tblproperties ('external=true');
OK
Time taken: 0.213 seconds
hive>
#外部表转内部表
hive> alter table student_external set tblproperties ('external=false');
OK
Time taken: 0.105 seconds
hive>
#创建分区表
hive的基本命令
查看库中的数据表
hive> show tables;
删除表
hive> drop table if exists 表名;
查询表的结构
hive> desc 表名;
查询数据库
show databases;
待添加。。。