三台CentOS7.6虚拟机搭建Hadoop完全分布式集群(三)

news2024/11/25 20:06:27

这个是笔者大学时期的大数据课程使用三台CentOS7.6虚拟机搭建完全分布式集群的案例,已成功搭建完全分布式集群,并测试跑实例。

9 安装hbase

温馨提示:安装hbase先在master主节点上配置,然后远程复制到slave01或slave02 ,在配置环境即可。

9.1 解压并配置环境变量

9.1.1 解压安装包
1)使用WinSCP将hbase-2.2.2-bin.tar.gz的压缩包从windows系统传至master主节点机器上,并放置在/opt/software目录中,同时创建 /usr/hbase目录,后续将hbase-2.2.2-bin.tar.gz的压缩包解压到/usr/hbase即可。
在这里插入图片描述

2)在usr下创建hbase文件夹
mkdir -p /usr/hbase
在这里插入图片描述

3)将放置在/opt/software目录中hbase-2.2.2-bin.tar.gz解压到/usr/hbase目录下

tar –zxvf /opt/software/hbase-2.2.2-bin.tar.gz -C /usr/hbase
在这里插入图片描述

9.1.2 修改配置文件hbase-env.sh

1)先进入hbase配置目录conf
cd /usr/hbase/hbase-2.2.2/conf
2)修改配置文件hbase-env.sh
vim hbase-env.sh
在这里插入图片描述

3)并修改文件内容:

export HBASE_MANAGES_ZK=false
export JAVA_HOME=/usr/java/jdk1.8.0_162
export HBASE_CLASSPATH=/usr/hadoop/hadoop-2.7.3/etc/hadoop
在这里插入图片描述

注:
一个分布式运行的Hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。默认的情况下Hbase会管理一个zookeep集群,即Hbase默认自带一个zookeep集群。这个集群会随着Hbase的启动而启动。而在实际的商业项目中通常自己管理一个zookeeper集群更便于优化配置提高集群工作效率,但需要配置Hbase。需要修改conf/hbase-env.sh里面的HBASE_MANAGES_ZK 来切换。这个值默认是true的,作用是让Hbase启动的时候同时也启动zookeeper.在本实验中,我们采用独立运行zookeeper集群的方式,故将其属性值改为false。

9.1.3 修改配置文件vim hbase-site.xml
在这里插入图片描述

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://LBJ:9000/hbase</value>
</property>
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
<property>
  <name>hbase.master</name>
  <value>hdfs://LBJ:6000</value>
</property>
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>LBJ,slave01,slave02</value>
</property>
<property>
  <name>hbase.zookeeper.property.dataDir</name>
  <value>/usr/zookeeper/zookeeper-3.4.10</value>
</property>

在这里插入图片描述

注:
要想运行完全分布式模式,加一个属性 hbase.cluster.distributed 设置为 true 然后把 hbase.rootdir 设置为HDFS的NameNode的位置;
hbase.rootdir:这个目录是region server的共享目录,用来持久化Hbase。URL需要是’完全正确’的,还要包含文件系统的scheme;hbase.cluster.distributed :Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。在hbase-site.xml配置zookeeper,当Hbase管理zookeeper的时候,你可以通过修改zoo.cfg来配置zookeeper,对于zookeepr的配置,你至少要在 hbase-site.xml中列出zookeepr的ensemble servers,具体的字段是 hbase.zookeeper.quorum.在这里列出Zookeeper集群的地址列表,用逗号分割。
hbase.zookeeper.property.clientPort:ZooKeeper的zoo.conf中的配置,客户端连接的端口。hbase.zookeeper.property.dataDir:ZooKeeper的zoo.conf中的配置。对于独立的Zookeeper,要指明Zookeeper的host和端口。需要在 hbase-site.xml中设置。

9.1.4 修改配置文件conf/regionservers

vim regionservers
在这里插入图片描述

将里面修改为:两个从节点名称
slave01
Slave02
在这里插入图片描述

9.1.5 hadoop配置文件拷入hbase的目录下

hadoop配置文件拷入hbase的目录下(当前目录为/usr/hbase/hbase-2.2.2/conf)
cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml /usr/hbase/hbase-2.2.2/conf
cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml /usr/hbase/hbase-2.2.2/conf
在这里插入图片描述

9.2 分发hbase到子节点并配置环境

9.2.1 分发hbase到子节点

scp -r /usr/hbase root@slave01:/usr/
scp -r /usr/hbase root@slave02:/usr/
在这里插入图片描述
在这里插入图片描述

9.2.2 子节点配置hbase环境(三台机器都需配置)

vim /etc/profile

需要配置Hbase环境变量 :
#hbase
export HBASE_HOME=/usr/hbase/hbase-2.2.2
export PATH=$PATH:$HBASE_HOME/bin

是配置生效:source /etc/profile

在master上:
在这里插入图片描述
在这里插入图片描述

在slave01上:
在这里插入图片描述

在slave02上:
在这里插入图片描述

9.3 运行和测试(在master上执行并保证hadoop和zookeeper已开启)

在/usr/hbaes/hbase-2.2.2目录下,cd /usr/hbaes/hbase-2.2.2/
bin/start-hbase.sh #开启hbase
jps
在master上
在这里插入图片描述

在slave01上
在这里插入图片描述

在slave02上
在这里插入图片描述

9.4 shell操作

9.4.1 进入shell界面
在/usr/hbaes/hbase-2.2.2目录下:cd /usr/hbaes/hbase-2.2.2/

bin/hbase shell

1)在HBase中用create命令创建表:
create 'student','Sname','Ssex','Sage','Sdept','course'
在这里插入图片描述

2)此时,即创建了一个“student”表,属性有:Sname,Ssex,Sage,Sdept,course。因为HBase的表中会有一个系统默认的属性作为行键,无需自行创建,默认为put命令操作中表名后第一个数据。创建完“student”表后,可通过describe命令查看“student”表的基本信息。
describe 'student'
在这里插入图片描述

9.4.2 hbase数据库基本操作
温馨提示:
在添加数据时,HBase会自动为添加的数据添加一个时间戳,故在需要修改数据时,只需直接添加数据,HBase即会生成一个新的版本,从而完成“改”操作,旧的版本依旧保留,系统会定时回收垃圾数据,只留下最新的几个版本,保存的版本数可以在创建表的时候指定。

1)添加数据
注:HBase中用put命令添加数据,注意:一次只能为一个表的一行数据的一个列,也就是一个单元格添加一个数据。
当运行命令:put ‘student’,’95001’,’Sname’,’LiYing’时,即为student表添加了学号为95001,名字为LiYing的一行数据,其行键为95001。
put 'student','95001','Sname','LiYing'
在这里插入图片描述

put 'student','95001','course:math','90'
即为95001行下的course列族的math列添加了一个数据。
在这里插入图片描述

2)删除数据
delete:用于删除一个数据,是put的反向操作。
deleteall:操作用于删除一行数据

①delete:
delete ‘student’,‘95001’,‘Ssex’
即删除了student表中95001行下的Ssex列的所有数据
在这里插入图片描述

②deleteall:
先put ‘student’,’110’,’Sname’,’LBJ’
再deleteall ‘student’,‘110’
在这里插入图片描述

3)查看数据
get:用于查看表的某一行数据。
scan:用于查看某个表的全部数据。

①get:
get ‘student’,'110’
在这里插入图片描述

②scan:
scan ‘student’
在这里插入图片描述

4)删除表格
删除表有两步,第一步先让该表不可用,第二步删除表。
disable ‘student’
drop ‘student’
在这里插入图片描述

9.4.3 hbase数据库查询表历史数据
1)在创建表格时,指定保存的版本数(这里假设指定为5)
create 'teacher',{NAME=>'username',VERSIONS=>5}
在这里插入图片描述

2)插入数据然后更新数据,使其产生历史版本数据,用put命令插入数据和更新数据
put ‘teacher’,‘91001’,‘username’,‘LBJ’
put ‘teacher’,‘91001’,‘username’,‘AD’
put ‘teacher’,‘91001’,‘username’,‘GUI’
put ‘teacher’,‘91001’,‘username’,‘Melo’
put ‘teacher’,‘91001’,‘username’,‘KD’
put ‘teacher’,‘91001’,‘username’,‘Harden’
在这里插入图片描述

3)查询时,指定查询的历史版本数。默认会查询出最新的数据。(有效取值为1到5)

get ‘teacher’,‘91001’,{COLUMN=>‘username’,VERSIONS=>5}
在这里插入图片描述

注:由于value为LBJ的数据最先插入,查询的数据有效取值为1~5,所以没有value为LBJ的数据。

9.4.4 退出hbase数据库
注:先退出shell命令界面,用exit退出。退出shell命令界面后,才能关闭hbase。

exit
关闭hbase:bin/stop-hbase.sh

10 安装hive

注:选用hive的远程模式,slave02安装mysql server用于存放元数据,slave01作为hive server作为thrift 服务器,master作为client客户端进行操作。

10.1 在slave02上安装MySQL server

1)查找yum源中是否有MySQL:
yum list | grep mysql
在这里插入图片描述

2)下载mysql的repo源:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
在这里插入图片描述

3)安装mysql-community-release-el7-5.noarch.rpm包:
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
在这里插入图片描述

注:安装这个包后,就会获得两个mysql的yum repo源,如下:
在这里插入图片描述

4)安装mysql
sudo yum install mysql-server
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5)查看mysqld服务是否开启
①查看mysqld服务
sudo service mysqld status
在这里插入图片描述

systemctl daemon-reload #重新加载某服务配置文件(包括Mysql)
service mysql start #开启mysql
systemctl enable mysqld #开启”mysqld”后再设置其开机自启,可不做
sudo netstat -tap | grep mysql #查看mysql的开放的端口
在这里插入图片描述

结果:发现还没有全部开启

⑤开放所有端口,以便远程连接。
在/etc/目录下找到my.cnf文件
vim my.cnf
在文件中添加:
bind-address = 0.0.0.0
在这里插入图片描述

所有端口开启成功:
在这里插入图片描述

安装成功
systemctl status mysql #验证”mysql.service”服务器正在运行
在这里插入图片描述

6)重新设置mysql密码

①将本地密码设置成:123456
mysqladmin -u root password '123456'
在这里插入图片描述

第一次设置都可以成功,如果不能成功设置,可以参考一下的步骤:
my.cnf文件中加入:skip-grant-tables #即可实现免密码登录
在这里插入图片描述
在这里插入图片描述

然后在mysql中修改密码即可:
在这里插入图片描述

修改成功:
在这里插入图片描述

不要忘记把skip-grant-tables删除:
在这里插入图片描述

②首先删除之前的root账户,然后建立可本机且远程访问的root
show databases;
use mysql;
select user,host, authentication_string from user;
在这里插入图片描述
在这里插入图片描述

注:
每个人的root用户不同,有的没有,有的可能 ‘root’@‘localhost’ 按自己情况删除
drop user 'root'@'localhost';
select user,host,authentication_string from user;
显示root已被删除
在这里插入图片描述

create user 'root'@'localhost' identified by '123456';
允许远程连接:
grant all privileges on . to ‘root’@‘localhost’ identified by ‘root’ with grant option;
flush privileges;
在这里插入图片描述

由于远程连接可能会失败,所以建议把localhost改为:%:
在这里插入图片描述

允许远程连接:
grant all privileges on . to ‘root’@‘%’ identified by ‘root’ with grant option;
并将登录密码改为:root
在终端中使用”root”用户和新设置的密码登入MySql即可,命令如下:
mysql -u root –p

更多修改登录密码的操作,可以参考:Mysql初始化root密码和允许远程访问 - 敏捷的水 - 博客园 (cnblogs.com)
本机mysql使用账号和密码:
在这里插入图片描述

③成功安装MySql数据库后,需要确保部署数据库的服务器上的3306端口已经开启,且可以使用数据库连接软件远程访问MySql数据库。

使用以下命令查看3306端口情况:
netstat -ntpl |grep 3306
在这里插入图片描述

3306端口成功侦听了全部地址

7)远程连接登录mysql测试:
最好使用navcat等远程连接mysql工具
ip:为机器的ip名。
在这里插入图片描述
在这里插入图片描述

8)用root登入mysql创建元数据库hive

create database hive;
show databases;
exit #退出mysql,仅退出,未关服务
在这里插入图片描述

10.2 在master和slave01上安装hive

1)使用WinSCP将apache-hive-2.1.1-bin.tar.gz的压缩包从windows系统传至master主节点机器上,并放置在/opt/software目录中,同时创建 /usr/hive目录,后续将apache-hive-2.1.1-bin.tar.gz的压缩包解压到/usr/hive即可。
在这里插入图片描述

cp /home/hadoop/tmp/apache-hive-2.1.1-bin.tar.gz /opt/software
在这里插入图片描述

2)在master上创建hive目录,并解压hive安装包
mkdir -p /usr/hive
cd /usr/hive

解压到:/usr/hive/下
tar -zxvf /opt/software/apache-hive-2.1.1-bin.tar.gz -C /usr/hive/
在这里插入图片描述

3)同时需要一些联机操作,在slave01上建立文件夹/usr/hive,然后在master中将安装包远程复制到slave1。
mkdir -p /usr/hive
scp -r /usr/hive/apache-hive-2.1.1-bin root@slave01:/usr/hive/
在这里插入图片描述
在这里插入图片描述

10.3 在master和slave01上配置hive的环境

修改/etc/profile文件设置hive环境变量。(master和slave1都执行)
vim /etc/profile
#hive
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin

并生效: source /etc/profile
在master上:
在这里插入图片描述
在这里插入图片描述

在slave01上:
在这里插入图片描述

10.4 解决版本冲突和jar包依赖问题

由于客户端需要和hadoop通信,所以需要更改Hadoop中jline的版本。即保留一个高版本的jline jar包,从hive的lib包中拷贝到Hadoop中lib位置为/usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib。(master中执行)

cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar
/usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/
在这里插入图片描述

因为服务端需要和Mysql通信,所以服务端需要将Mysql的依赖包放在Hive的lib目录下。(slave01中进行)
先进入/usr/hive/apache-hive-2.1.1-bin/lib下:

cd /usr/hive/apache-hive-2.1.1-bin/lib

cp /home/hadoop/tmp/mysql-connector-java-5.1.47-bin.jar /usr/hive/apache-hive-2.1.1-bin/lib
在这里插入图片描述

10.5 将slave01作为服务器端并配置hive

10.5.1配置hive-env.sh文件
注:回到slave1,修改hive-env.sh文件中HADOOP_HOME环境变量。进入hive配置目录,因为hive中已经给出配置文件的范本hive-env.sh.template,直接将其复制一个进行修改即可:
cd $HIVE_HOME/conf
在这里插入图片描述

cp hive-env.sh.template hive-env.sh
vim hive-env.sh
在这里插入图片描述

hive-env.sh文件中修改HADOOP_HOME环境变量。
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf
export HIVE_AUX_JARS_PATH=/usr/hive/apache-hive-2.1.1-bin/lib
在这里插入图片描述

10.5.2配置hive-site.xml文件
①配置hive-site.xml文件
注:conf里是没有这个文件的,我们自己创建配置,直接vim hive-site.xml,即可直接创建该新文件。保存退出即可(:wq)

<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/usr/hive_remote/warehouse</value>
</property>
<!-- 数据库连接JDBC的URL地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name> 
<value>jdbc:mysql://slave02:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<!-- 数据库连接driver,即MySQL驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- MySQL数据库用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- MySQL数据库密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
</configuration>

在这里插入图片描述

②在/usr下用mkdir -p新建hive_remote/warehouse目录,在配置文件中用到,hive产生元数据的存储文件夹。
在这里插入图片描述

10.6 将master作为客户端配置hive

先进入hive修改配置文件目录
cd $HIVE_HOME/conf

10.6.1 配置 hive-site.xml
①配置hive-site.xml文件
vim hive-site.xml
在这里插入图片描述

<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/usr/hive_remote/warehouse</value>
</property>
<!--- 使用本地服务连接Hive,默认为true-->
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<!-- 连接服务器-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://slave01:9083</value>
</property>
</configuration>

②在/usr下用mkdir -p新建hive_remote/warehouse目录,在配置文件中用到,hive产生元数据的存储文件夹。
在这里插入图片描述

10.6.2 配置 hive-env.sh文件
在master上
先拷贝hive-env.sh.template文件,命名为hive-env.sh

cp hive-env.sh.template hive-env.sh
在这里插入图片描述

vim hive-env.sh
hive-env.sh文件中修改HADOOP_HOME环境变量。
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf
export HIVE_AUX_JARS_PATH=/usr/hive/apache-hive-2.1.1-bin/lib
在这里插入图片描述

10.7 启动hive

注:启动前,按顺序将之前所有的hadoop,zookeeper,hbase服务启动,否则在master上输入bin/hive命令时会报错。
1)启动hive server服务(slave01上)
先进入 /usr/hive/apache-hive-2.1.1-bin/
接着:bin/hive --service metastore(hive后面后空格)
在这里插入图片描述

启动成功(注:slave01启动hive后有些关于ssl的warn如下,应该是slave02和其余节点未免密,以后安装集群在一开始集群免密还是要三台机器都互相免密)

2)在master上启动hive client

①进入/usr/hive/apache-hive-2.1.1-bin/目录:
cd /usr/hive/apache-hive-2.1.1-bin/
bin/hive #启动hive
在这里插入图片描述

②测试hive是否启动成功:
show databases;
创建数据库hive_db:create database hive_db;(之前已经创建)

③查看runjar(启动成功的标志)
先不要关闭当前终端会话,去外面打开一个新的终端会话,打开另一个terminal:
jps在这里插入图片描述

11 安装Spark

11.1 安装scala环境

1)使用WinSCP将scala-2.11.12.tgz的压缩包从windows系统传至master主节点机器上,并放置在/opt/software目录中,同时创建 /usr/scala目录,后续将scala-2.11.12.tgz的压缩包解压到/usr/scala即可。(先在master配置好,在分发到slave01、slave02节点上)
在这里插入图片描述

cp /home/hadoop/tmp/scala-2.11.12.tgz /opt/software/
在这里插入图片描述

2)创建 /usr/scala目录,并解压scala
mkdir -p /usr/scala
cd /usr/scala
在这里插入图片描述

tar -zxvf /opt/software/scala-2.11.12.tgz -C /usr/scala/
在这里插入图片描述

rm -rf /opt/software/scala-2.11.12.tgz

3)配置scala的环境变量并生效:
vim /etc/profile

#scala
export SCALA_HOME=/usr/scala/scala-2.11.12
export PATH=$SCALA_HOME/bin:$PATH

在这里插入图片描述

source /etc/profile
在这里插入图片描述

4)查看scala是否安装成功:
scala -version
在这里插入图片描述

5)将scala分发复制到其他节点:

scp -r /usr/scala root@slave01:/usr/
scp -r /usr/scala root@slave02:/usr/
在这里插入图片描述
在这里插入图片描述

并在其他节点配置环境变量,并使之生效。

在slave01查看scala是否安装成功:
在这里插入图片描述

在slave02查看scala是否安装成功:
在这里插入图片描述

做完这一步,scala安装完成了!!!

11.2 安装Spark(具体)

1)使用WinSCP将spark-2.4.0-bin-hadoop2.7.tgz的压缩包从windows系统传至master主节点机器上,并放置在/opt/software目录中,同时创建 /usr/spark目录,后续将spark-2.4.0-bin-hadoop2.7.tgz的压缩包解压到/usr/spark即可。(先在master配置好,在分发到slave01、slave02节点上)

cp /home/hadoop/tmp/spark-2.4.0-bin-hadoop2.7.tgz /opt/software/
在这里插入图片描述

2)创建 /usr/spark目录,并解压spark
mkdir -p /usr/spark
cd /usr/spark
tar -zxvf /opt/software/spark-2.4.0-bin-hadoop2.7.tgz -C /usr/spark
在这里插入图片描述

rm -rf /opt/software/spark-3.0.3-bin-hadoop2.7.tgz

3)配置spark-env.sh文件:
由于没有spark-env.sh文件,需要复制一份spark-env.sh.template
cd spark-3.0.3-bin-hadoop2.7/conf/
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
在这里插入图片描述

添加以下内容:

export SPARK_MASTER_IP=LBJ
export SCALA_HOME=/usr/scala/scala-2.11.12
export SPARK_WORKER_MEMORY=8g
export JAVA_HOME=/usr/java/jdk1.8.0_162
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.7.3/etc/hadoop

在这里插入图片描述

4)配置spark从节点,修改slaves文件
注:注意slaves节点中只包含节点信息,其他注释不需要
由于没有slaves文件,需要复制一份slaves.template

cp slaves.template slaves
vim slaves
在这里插入图片描述
在这里插入图片描述

5)将spark分发复制到其他节点:

scp -r /usr/spark root@slave01:/usr/
scp -r /usr/spark root@slave02:/usr/
在这里插入图片描述
在这里插入图片描述

6)配置spark环境变量(三台机器都做,一样操作)

vim /etc/profile
添加内容:

#spark
export SPARK_HOME=/usr/spark/spark-2.4.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH

在这里插入图片描述

使之生效:source /etc/profile
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7)开启spark(在master节点上)
/usr/spark/spark-2.4.0-bin-hadoop2.7/sbin/start-all.sh
jps
在master上:
在这里插入图片描述

在slave01上:
在这里插入图片描述

在slave02上:
在这里插入图片描述

做完这一步,spark安装完成了!!!

11.3 运行例程

注:运行spark自带例程和shell命令板块。
1)运行自带例程进行验证

cd /usr/spark/spark-2.4.0-bin-hadoop2.7/
bin/run-example SparkPi
在这里插入图片描述

bin/run-example SparkPi 2>&1 | grep "Pi is"
在这里插入图片描述

2)shell命令验证
进入shell命令界面:bin/spark-shell
在这里插入图片描述

加载text文件
spark创建sc,可以加载本地文件和HDFS文件创建RDD。这里用Spark自带的本地文件README.md文件测试。

val textFile = sc.textFile("file:///usr/spark/spark-2.4.0-bin-hadoop2.7/README.md")
在这里插入图片描述

简单RDD操作
//获取RDD文件textFile的第一行内容
textFile.first()

//获取RDD文件textFile所有项的计数
textFile.count(
)
//抽取含有“Spark”的行,返回一个新的RDD
val lineWithSpark = textFile.filter(line => line.contains(“Spark”))

//统计新的RDD的行数
lineWithSpark.count()
在这里插入图片描述

可以通过组合RDD操作进行组合,可以实现简易MapReduce操作

//找出文本中每行的最多单词数
textFile.map(line => line.split(" ").size).reduce((a, b) => if (a > b) a else b)
在这里插入图片描述

退出Spark Shell
输入exit,即可退出spark shell
:quit
做完这一步,运行例程验证完成了!!!

12 安装eclipse

1)使用WinSCP将eclipse-committers-2020-03-R-linux-gtk-x86_64.tar.gz的压缩包从windows系统传至master主节点机器上,在master上解压安装在/usr/即可。
在这里插入图片描述

tar -zxvf /home/hadoop/tmp/eclipse-committers-2020-03-R-linux-gtk-x86_64.tar.gz -C /usr/
在这里插入图片描述

启动eclipse
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

做完这一步,安装eclipse完成了!!!
后续使用eclipse编程会在后续实现。
做完以上操作,hadoop的完全分布式集群搭建成功!!!

三台CentOS7.6虚拟机搭建Hadoop完全分布式集群(三)笔记到此完结,笔者归纳、创作不易,大佬们给个3连再起飞吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1343910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

远程网络唤醒家庭主机(openwrt设置)

远程网络唤醒家庭主机&#xff08;openwrt设置&#xff09; 前提&#xff1a; 1.配置好主板bios的网络唤醒功能(网络教程自己百度一下找) 2.电脑开启网络唤醒功能(网络教程自己百度一下找) 3.路由器通过ddns实现域名和动态IP绑定内网穿透方法汇总_不修改光猫进行内网穿透-C…

【办公软件】Excel双坐标轴图表

在工作中整理测试数据&#xff0c;往往需要一个图表展示两个差异较大的指标。比如共有三个数据&#xff0c;其中两个是要进行对比的温度值&#xff0c;另一个指标是两个温度的差值&#xff0c;这个差值可能很小。 举个实际的例子&#xff1a;数据如下所示&#xff0c;NTC检测温…

JavaScript中实现页面跳转的几种常用方法

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍在JavaScript中实现页面跳转的几种常用方法以及部分理论知识 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主收将持续更新学习记录获&#xff0c;友友们有任何问题…

2024收入最高的编程语言

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 1.Python Python 是最流行、用途最广泛的语言之一。它通常用于网络开发、数据科学、机器学习等。 以下是 Python 编程语言的一些主要用途&#xff1a; Web 开发&…

【AIGC科技展望】预测AIGC2025年的机会与挑战

2025年&#xff0c;AIGC的机会与挑战 在未来的五年里&#xff0c;AIGC&#xff08;AI Generated Content&#xff09;将会成为一个越来越重要的领域。但是&#xff0c;伴随着机会而来的是挑战。在这篇文章中&#xff0c;我们将一起探讨AIGC的机会与挑战&#xff0c;并预测2025…

WinForm开发 - C# RadioButton(单选框) 设置默认选中或取消默认选中

WinForm开发中RadioButton组件使用过程中的小技巧。 1、属性界面操作 如果有多个组件&#xff0c;希望不显示默认选中单选框只需要将其Checked属性全部设置为False即可&#xff0c; 如果希望默认多个组件中显示默认选中&#xff0c;将其Checked属性设置为True。 2、代码实…

GEE错误——‘xxx‘ did not match any bands.

这里我们在进行影像展示的时候会出现下面的错误,主要的原因是我们虽然进行了波段运算,但是依旧无法加载,主要原因是我们没有将计算过后的波段信息进行添加到我们的一个多波段影像,这里我们首先来看看代码出现的错误提示。当然这里只是给出了主要的问题,其实在进行波段运算…

Java——猫猫图鉴微信小程序(前后端分离版)

目录 一、开源项目 二、项目来源 三、使用框架 四、小程序功能 1、用户功能 2、管理员功能 五、使用docker快速部署 六、更新信息 审核说明 一、开源项目 猫咪信息点-ruoyi-cat: 1、一直想做点项目进行学习与练手&#xff0c;所以做了一个对自己来说可以完成的…

ES6的默认参数和rest参数

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

PowerShell Instal 一键部署TeamCity

前言 TeamCity 是一个通用的 CI/CD 软件平台,可实现灵活的工作流程、协作和开发实践。允许在您的 DevOps 流程中成功实现持续集成、持续交付和持续部署。 系统支持 Centos7,8,9/Redhat7,8,9及复刻系列系统支持 Windows 10,11,2012,2016,2019,2022高版本建议使用9系列系统…

权重函数设计

1e4/(0.5*s^21*s1) 1.4125 抑制驱动器饱和 1e-4*(s1)/(0.001*s1) 10*(s10)/(s1000) 1e-6*(s1)/(0.001*s1) [0.01,0.1],[0.001,1] 0.5*(0.05*s1)/(0.0001*s0.01)

Android笔记(二十三):Paging3分页加载库结合Compose的实现分层数据源访问

在Android笔记&#xff08;二十二&#xff09;&#xff1a;Paging3分页加载库结合Compose的实现网络单一数据源访问一文中&#xff0c;实现了单一数据源的访问。在实际运行中&#xff0c;往往希望不是单纯地访问网络数据&#xff0c;更希望将访问的网络数据保存到移动终端的SQL…

windows高效的文件夹管理工具QTTabBar

1、介绍&#xff1a; 功能介绍视频https://www.bilibili.com/video/BV13y4y1V782/?spm_id_from333.880.my_history.page.click&vd_sourceef5003729aa0776908befb4d20108803 这个视频很坑&#xff0c;介绍了功能&#xff0c;但没介绍安装方法 2、下载&#xff1a; 下载链…

自检服务器,无需服务器、不用编程。

自检服务器&#xff0c;无需服务器、不用编程。 大家好&#xff0c;我是JavaPub. 这几年自媒体原来热&#xff0c;很多人都知道了个人 IP 的重要性。连一个搞中医的朋友都要要做一个自己的网站&#xff0c;而且不想学编程、还不想花 RMB 租云服务。 老读者都知道&#xff0c…

Spring Boot 基于Redisson实现注解式分布式锁

依赖版本 JDK 17 Spring Boot 3.2.0 Redisson 3.25.0 源码地址&#xff1a;Gitee 导入依赖 <properties><redisson.version>3.25.0</redisson.version> </properties><dependencies><dependency><groupId>org.projectlombok</…

OpenHarmony南向之Camera简述

Camera驱动框架 该驱动框架模型内部分为三层&#xff0c;依次为HDI实现层、框架层和设备适配层&#xff1a; HDI实现层&#xff1a;实现OHOS&#xff08;OpenHarmony Operation System&#xff09;相机标准南向接口。框架层&#xff1a;对接HDI实现层的控制、流的转发&#x…

ECMAScript 6 - 通过Promise输出题理解Promise

1 题目(1) 题目背景&#xff1a;分享洛千陨 珍藏题 const p1 () > (new Promise((resolve, reject) > {console.log(1);let p2 new Promise((resolve, reject) > {console.log(2);const timeOut1 setTimeout(() > {console.log(3);resolve(4);}, 0)resolve(5)…

js for和forEach 跳出循环 替代方案

1 for循环跳出 for(let i0;i<10;i){if(i5){break;}console.log(i) }在函数中也可以return跳出循环 function fn(){for(let i0;i<10;i){if(i5){return;}console.log(i)} } fn()for ... of效果同上 2 forEach循环跳出 break会报错 [1,2,3,4,5,6,7,8,9,10].forEach(i>…

Evidential Deep Learning to Quantify Classification Uncertainty

本片文章发表于NeurIPS 2018。 文章链接&#xff1a;https://arxiv.org/abs/1806.01768 一、概述 近年来&#xff0c;神经网络在不同领域取得了革命性的进步&#xff0c;尤其是在dropout、normalization以及skip connection等方法被提出之后&#xff0c;撼动了整个机器学习领…

新火种AI|AI正在让汽车成为“消费电子产品”

作者&#xff1a;一号 编辑&#xff1a;小迪 AI正在让汽车产品消费电子化 12月28日&#xff0c;铺垫许久的小米汽车首款产品——小米SU7正式在北京亮相。命里注定要造“电车”的雷军&#xff0c;在台上重磅发布了小米的五大自研核心技术。在车型设计、新能源技术以及智能科技…