VMware三台虚拟机实现Hadoop部署学习日志(持续更新中)

版本说明:

1.VMware:VMware Workstation 17pro

2.虚拟机操作系统:CentOS-6.7-x86_64

3.JDK:jdk-8u202-linux-x64

4.Hadoop:hadoop-2.7.4

资源已附上,请按需下载。

一、虚拟机及文件准备

(一)创建虚拟机

1.选择新建虚拟机

2.选择镜像文件:

3.编辑用户名和密码:

4.编辑虚拟机名称机虚拟机存储路径:

5.选择虚拟机配置:

6.开启虚拟机,等待自动安装:

7.登录

选择other输入用户名root,密码123456进入CentOS

(二)文件准备

1.在根目录下创建文件夹:export,在该文件夹下创建两个文件夹:software和servers

  

2.将准备好的文件拷贝到software文件夹下

(三)参照(一)、(二)步骤再创建两台同样配置的虚拟机(Hadoop02,Hadoop03)

二、连接虚拟机及虚拟机间免密登录

(一)连接虚拟机(ping通)

1.分别查询三个虚拟机的ip地址
输入指令查询:ifconfig
2.配置IP地址
分别在三个虚拟机中打开/etc/hosts,在最后添加以下代码并保存:
192.168.xxx.xxx hadoop01
192.168.xxx.xxx hadoop02
192.168.xxx.xxx hadoop03

2.改主机名
打开并编辑文件: /etc/sysconfig/network ,将其中的HOSTNAME=后的代码改为hadoop01(2号虚拟机和3号虚拟机分别对应hadoop02,hadoop03)

3.重启3台虚拟机,查看主机名

4.连接虚拟机
通过代码:ping hadoop01 , ping hadoop02 , ping hadoop03 分别测试各虚拟机之间的连接。

(二)实现各主机间免密登录(该步骤三台Hadoop主机上均需要执行)

1.在终端输入 cd /root/.ssh ,然后输入 ls -a 查看文件

2.终端输入: ssh-keygen -t rsa ,然后连续回车

3.终端输入: ssh-copy-id root@hadoop01 , ssh-copy-id root@hadoop02 , ssh-copy-id root@hadoop03 这三条指令,每条指令输完都要输入yes和相应主机的密码,该指令是将密钥分发到其他主机

三、安装配置JDK(该工作三台虚拟机均需要执行)

1.解压jdk
tar -zxvf /export/software/jdk-8u202-linux-x64.tar.gz -C /export/servers/


2.修改解压后的文件名
mv /export/servers/jdk1.8.0_202/ /export/servers/jdk

3.编辑配置文件
打开编辑 /etc 下的profile文件,在最后插入如下代码并保存:
export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

4.重启配置文件
source /etc/profile


5.测试jdk
java -version

四、配置并启动Hadoop

(一)配置Hadoop

1.tar -zxvf /export/software/hadoop-2.7.4.tar.gz -C /export/servers/
2.打开 /export/servers/hadoop-2.7.4/etc/hadoop/ ,将以下7个文件替换进去:

1)core-site.xml(更改属性,允许运行)

2)hadoop-env.sh

3)hdfs-site.xml(更改属性,允许运行)

4)mapred-site.xml(更改属性,允许运行)

5)slaves

6)yarn-env.sh

7)yarn-site.xml(更改属性,允许运行)

  

3.打开 /etc/profile ,在最后插入以下代码并保存:

export HADOOP_HOME=/export/servers/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

2.在终端输入:source /etc/profile

3.在终端输入:hadoop version,查看Hadoop服务启动情况

(二)启动Hadoop服务

1.hadoop01中,在终端输入:hdfs namenode -format,格式化

2.hadoop01、02、03中,在终端输入:start-dfs.sh

3.hadoop01、02、03中,在终端输入:start-yarn.sh

4.关闭三台虚拟机的防火墙

5.在三台虚拟机的中的分别输入:jps,三台虚拟机因分别显示5个,4个和3个服务。

6.三台虚拟机在火狐(或google)浏览器中,访问两个网址:
hadoop01:50070
hadoop01:8088  注:在hadoop01:8088中检查节点是应为3个

2023.10.23更新:

五、安装mysql(只需在Hadoop01中执行)

1.在hadoop01中打开: /etc/yum.repos.d 将里面的文件删除,将准备好的镜像文件复制进去

2.编辑一下 /etc/yum.conf 这个文件,我们在最下面加上以下代码并保存:
sslverify=false

3.在虚拟机Hadoop01中,依次执行如下命令:
yum repolist all
yum clean all
yum makecache

4.在虚拟机的命令行下,执行这条命令,安装MySQL
yum install mysql mysql-server mysql-devel -y

5.输入以下指令启动MySQL服务:

/etc/init.d/mysqld start

6. MySQL安装成功后,我们需要对MySQL进行相关配置。

(1)进入MySQL:

mysql

(2)选择数据库服务器中的mysql数据库,为当前数据库:

USE mysql;

(3)设置root用户的密码为:123456:

UPDATE user SET Password=PASSWORD('123456') WHERE user='root'; 

(4)允许root用户,从远程进行登录:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

(5)刷新权限,使刚刚设置的权限,生效:

FLUSH PRIVILEGES;

(6)退出重新登录,验证配置,完毕后退出

Exit

mysql -u root -p (输入密码:123456)

Exit

六、hive(只需要在hadoop01上执行)

1.解压hive:tar -zxvf /export/software/apache-hive-1.2.1-bin.tar.gz -C /export/servers/

2./etc/profile文件最下方添加以下代码并保存后重载(source /etc/profile):

export HIVE_HOME=/export/servers/apache-hive-1.2.1-bin

export PATH=$PATH:$HIVE_HOME/bin

3.复制以下两个文件到hive的conf文件夹下(目录:/export/servers/ apache-hive-1.2.1-bin/conf ,属性改为可执行)

4.将mysql-connector-java-5.1.32.jar文件放到hive的lib文件夹下(目录:/export/servers/ apache-hive-1.2.1-bin/lib)

5.终端进入hive的bin文件夹下执行./hive(或者在终端直接执行hive)

看见hive> 即表示成功了

6如果hive执行时弹出一堆代码,则要检查数据库有服务没有打开,若没打开需要重新打开MySQL,并多启动几次hive:

service mysqld status

七、sqoop的安装与应用

1.解压sqoop :

tar -zxvf /export/software/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /export/servers/

2.改名:(先进入servers文件夹下:cd /export/servers)

mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop-1.4.6

3.复制sqoop-env.sh文件到conf(目录:/export/servers/ sqoop-1.4.6 /conf ,改为可执行),

4. /etc/profile文件最下方添加以下代码并保存后重载(source /etc/profile):

export SQOOP_HOME=/export/servers/sqoop-1.4.6

export PATH=$PATH:$SQOOP_HOME/bin

5.复制接口工具,把:mysql-connector-java-5.1.32.jar,这个文件,拷贝到这里:/export/servers/sqoop-1.4.6/lib/

6.启动验证sqoop服务开启

在虚拟机命令行下,执行:
sqoop list-databases -connect jdbc:mysql://localhost:3306/ --username root --password 123456

如上图所示即为成功。

2023.11.1

八、部署服务(编写简单的程序在Hadoop上运行并产生结果)

(一)单词计数程序

1.使用IDEA编写简单的jar

(1)使用IDEA新建项目

(2)对pom.xml文件进行修改

在这里插入代码

点击这里,开始解析依赖,这里需要等待一段时间

(3)新建class文件,编写程序

输入代码(源文件可在资源中获取)

(4)在项目结构中添加工件

依次点击

添加主类

(5)构建工件,输出jar包

在文件夹中找到jar包

2.将程序部署到Hadoop上

(1)将jar包(pj_01.jar)拷贝到虚拟机Hadoop01中(创建目录:/export/my_jar)

(2)在同级目录下创建input.txt文件。

在其中任意编写内容并保存,要有一些重复的单词用来测试:

(3)在部署的Hadoop上创建名为dir1的文件夹

终端输入:hadoop fs -mkdir /dir1

进入50070端口查看文件

(4)将input.txt上传至dir1文件夹中

终端输入:hdfs dfs -put input.txt /dir1(注:在本地my_jar文件夹下打开终端)

(5)用pj_01.jar对input.txt进行处理,并将结果输出至output文件中

终端输入:hadoop jar pj_01.jar /dir1/input.txt output01(注:在本地my_jar文件夹下打开终端)

下载输出的文件检验结果

我们可以看到程序成功对文件进行了单词计数

(二)索引

1.使用IDEA编写简单的jar

(1)使用IDEA新建项目

(2)对pom.xml文件进行修改,解析依赖

(3)新建class文件,编写程序

输入代码(源文件可在资源中获取)

(4)在项目结构中添加工件

添加主类

(5)构建工件,输出jar包

在文件夹中找到jar包

2.将程序部署到Hadoop上

(1)将jar包(pj_02.jar)拷贝到虚拟机Hadoop01中(目录:/export/my_jar)

(2)在同级目录下创建三个txt文件(file1.txt, file2.txt, file3.txt)。

(3)在部署的Hadoop上创建名为index_in的文件夹(地址:/user/root/index_in)

终端输入:hadoop fs -mkdir /user/root/index_in

进入50070端口查看文件:

(4)将三个txt文件上传至index_in文件夹中

终端输入:

hdfs dfs -put file1.txt /user/root/index_in
hdfs dfs -put file2.txt /user/root/index_in
hdfs dfs -put file3.txt /user/root/index_in

(注:在本地my_jar文件夹下打开终端)

(5)用pj_02.jar对三个txt文件进行处理,并将结果输出

终端输入:hadoop jar pj_02.jar(注:在本地my_jar文件夹下打开终端)

(三)矩阵运算

1.使用IDEA编写简单的jar

(1)使用IDEA新建项目

(2)对pom.xml文件进行修改,解析依赖

(3)新建class文件,编写程序

输入代码(源文件可在资源中获取)

(4)在项目结构中添加工件

添加主类

(5)构建工件,输出jar包

在文件夹中找到jar包

2.将程序部署到Hadoop上

(1)将jar包(pj_02.jar)拷贝到虚拟机Hadoop01中(目录:/export/my_jar/pj_03)

(2)在同级目录下拷贝shell文件(bat01.sh)

(3)在同级目录执行sh文件(属性改为可执行)

在该目录下(/export/my_jar/pj_03)运行终端输入:./bat02.sh 6 7 6

(4)将生成的两个文件上传至Hadoop中的/user/root/matrix_in02文件夹中

终端输入:(注:在本地/export/my_jar/pj_03文件夹下打开终端)

hadoop fs -mkdir /user/root/matrix_in02

hdfs dfs -put M_6_7 /user/root/matrix_in02
hdfs dfs -put N_7_6 /user/root/matrix_in02

(5)用pj_03.jar对两个文件进行处理,并将结果输出

终端输入: hadoop jar pj_03.jar MatrixMultiplication

(注:在本地 /export/my_jar/pj_03 文件夹下打开终端)

(6)若不成功,可删除文件重试

hadoop fs -rmr /user/root/matrix_in02

hadoop fs -rmr /user/root/matrix_out22

九、hive实验

(一)在创建目录:/export/alfred_jar ,并在该目录下运行终端,终端输入:echo ‘suying’ > hive_data.txt ,创建一个名为 hive_data.txt的文本文件

(二)运行hive,创建一个名为my­_db2的数据库,查看数据库

hive

hive>show databases;

hive>create database my_db2;

hive>show databases;

(三)选定使用my_db2数据库,创建一个名为my_test的表

hive>use my_db2;

hive>create table my_test(value string);

hive>show tables;

(四)将之前创建的文本文件导入到表中

hive> load data local inpath 'hive_data.txt' overwrite into table my_test;

(五)查询表中内容

hive> select * from my_test;

  • 30
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值