-
Ubuntu 18.04
-
Oracle JDK 1.8
-
Hadoop 3.2.4
-
Hive 3.1.3
1、 点击开始实验
按钮,打开当前实验所有镜像环境 2、 进入实验环境后, 点击左上角收缩实验指南
3、 点击环境左上角的“三个横线”的标志,如下图。 最后点击“终端”。
4、 会在右下方看到打开的终端,可直接在终端中进行操作。
配置节点hosts解析
使用命令查看自己所有节点环境的IP信息:
ip addr show
把所有节点的IP记录下来,将三个节点分别命名为master、slave1、slave2,取1个IP作为master节点,其余做slave节点。 修改容器中
/etc/hosts
文件,根据自己的节点的IP信息,在文件末添加类似下面的内容:
下面IP仅供参考,以自己环境的实际IP为准
10.42.240.106 master
10.42.240.46 slave1
10.42.74.171 slave2
配置及节点ssh免密登录
在master节点使用命令生成key,需要填入的内容直接留空即可
ssh-keygen -b 4096
使用下面的命令把master节点的公钥拷贝到包括master节点的所有的节点,默认密码为root
ssh-copy-id -i ~/.ssh/id_rsa.pub root@master
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2
使用ssh登录成功后后,可使用 exit
命令退出ssh会话回到原先节点终端继续操作
exit
最后,在master节点的终端使用下面的命令初始化Hadoop环境namenode
hdfs namenode -format
确保Hadoop启动并正常运行。
# hadoop的集群启动命令为:
start-all.sh
# 启动后检查是否安装成功:
hdfs dfsadmin -report
在Master节点使用apt命令安装MySQL 5.7:
apt update
apt install mysql-server
安装成功后,更改mysql用户的默认目录到数据文件夹:
usermod -d /var/lib/mysql mysql
启动mysql服务端
/etc/init.d/mysql start
在终端执行下面命令进入mysql的cli
mysql -u root
在cli中输入下面的sql语句,设置mysql的root账号的密码为123456
,并开放局域网访问
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
使用vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改mysql服务端配置,开放3306端口给局域网访问 将bind-address
修改为0.0.0.0
,然后保存退出
bind-address = 0.0.0.0
使用vim /etc/mysql/my.cnf
修改mysql服务端配置,添加中文字符集支持
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
lower_case_table_names = 1
[client]
default-character-set = utf8mb4
重启mysql 5.7服务端,应用修改后的配置
/etc/init.d/mysql restart
在节点创建需要的文件夹,作为安装包储存路径和软件安装位置
mkdir -p /opt/software /opt/module
从宿主机目录下将文件apache-hive-3.1.3-bin.tar.gz
复制到容器Master中的/opt/software
路径中。
scp root@10.42.2.28:/opt/hive/apache-hive-3.1.3-bin.tar.gz /opt/software
将Master节点ZooKeeper安装包解压到/opt/module路径中:
tar -xzf /opt/software/apache-hive-3.1.3-bin.tar.gz -C /opt/module
修改节点环境中的/etc/profile
文件,在文件末添加下面的内容:
# 添加Hive的环境变量
export HIVE_HOME=/opt/module/apache-hive-3.1.3-bin
export PATH=$PATH:$HIVE_HOME/bin
执行下面的命令使添加的Hive环境变量生效:
source /etc/profile
配置hive-env.sh 进入到 HIVE 配置文件目录,先根据模板生成一个配置文件 hive-env.sh
:
cd /opt/module/apache-hive-3.1.3-bin/conf
cp -f ./hive-env.sh.template ./hive-env.sh
然后再配置 HADOOP_HOME
和 HIVE_CONF_DIR
到对应的目录:
vim ./hive-env.sh
添加以下配置:
export HADOOP_HOME=/opt/module/hadoop-3.2.4
export HIVE_CONF_DIR=/opt/module/apache-hive-3.1.3-bin/conf
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_321
配置连接元数据库的驱动
cd
scp root@10.42.2.28:/opt/hive/mysql-connector-java-5.1.45.jar ./
cp -f ./mysql-connector-java-5.1.45.jar /opt/module/apache-hive-3.1.3-bin/lib
配置元数据库 Metastore(连接到 MySQL) 首先在 $HIVE_HOME/conf
目录下新建 hive-site.xml
文件
cd $HIVE_HOME/conf
touch ./hive-site.xml
vim ./hive-site.xml
然后在配置文件中添加如下内容:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true&useSSL=false</value>
<description>metadata is stored in a MySQL server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>MySQL JDBC driver class</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>user name for connecting to mysql server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>hivepassword for connecting to mysql server</description>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<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>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/bigdata/hive/warehouse</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>master</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
</configuration>
初始化 Hive 元数据库
schematool -initSchema -dbType mysql -verbose
如果遇到错误 Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)
,是因为hadoop和hive的两个guava.jar版本不一致,解决办法是删除低版本的那个,将高版本的复制到低版本目录下:
rm -i /opt/module/apache-hive-3.1.3-bin/lib/guava-19.0.jar
cp -f /opt/module/hadoop-3.2.4/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/apache-hive-3.1.3-bin/lib/
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
暂无评论内容