Hadoop安装操作大全

Unity Spine 3.8 (URP) 踩坑(Shader报错修改) 提供了新思路,打算尝试一下URP。但美术使用的spine版本是3.8,项目用的Unity2021.3.11f1c2,直接导入spine URP包,shader报错:half4 不能转成 SurfaceData2D;Spine-Sprite-StandardPass-URP-2D.hlsl 也报这个错,也是同样的改法即可。今天搜索spine优化,看到一篇文章。 阅读详情

第一节、配置网络IP地址:

打开配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.206.10
NETMASK=255.255.255.0
GATEWAY=192.168.206.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c5660370-0b73-429d-9357-38e440777d7f
DEVICE=ens33
ONBOOT=yes

网络重启:service network restart

测试是否连通:使用ping 192.168.206.2

第二节、配置jdk和hadoop的环境:

说明:apps放置解压文件,software放置压缩文件。

cd /opt/

1、创建两个文件夹

mkdir apps
mkdir software

cd software/

2、解压到指定的/opt/apps下

tar zxvf jre-8u251-linux-x64.tar.gz -C /opt/apps/

tar zxvf hadoop-2.7.4.tar.gz -C /opt/apps/
tar zxvf zookeeper-3.4.5.tar.gz -C /opt/apps/

3、更改文件名

cd /opt/apps/
mv jre1.8.0_251/ jdk
mv hadoop-2.7.4/ hadoop
mv zookeeper-3.4.5/ zookeeper

4、设置环境变量

vi /etc/profile
添加配置
export JAVA_HOME=/opt/apps/jdk
export HADOOP_HOME=/opt/apps/hadoop
ZOOKEEPER_HOME=/opt/apps/zookeeper
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:$ZOOKEEPER_HOME/bin

source /etc/profile

5、查看版本是否生效

java -version
hadoop version

6、将解压数据和环境变量发送给其他主机:

scp -r /opt/apps root@master2:/opt/
scp -r /opt/apps root@slave1:/opt/
scp -r /opt/apps root@slave2:/opt/
scp -r /etc/profile root@master2:/etc/
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
每个节点让环境变量生效:source /etc/profile

7、配置域名解析信息:

vi /etc/hosts

192.168.206.10 master
192.168.206.11 master2
192.168.206.12 slave1
192.168.206.13 slave2

8、使用rsa加密技术,生成公钥和私钥。一路回车即可

​ root@master ~]# cd ~

[root@master ~]# ssh-keygen -t rsa			

​ 进入~/.ssh目录下,将id_rsa.pub复制一份文件,文件名为authorized_keys。保证此文件的权限是600

[root@master ~]# cd ~/.ssh			
[root@master .ssh]# ssh-copy-id -i id_rsa.pub root@master
[root@master .ssh]# ssh-copy-id -i id_rsa.pub root@master2
[root@master .ssh]# ssh-copy-id -i id_rsa.pub root@slave1
[root@master .ssh]# ssh-copy-id -i id_rsa.pub root@slave2

​ 进行验证

ssh master 
ssh slave1
ssh slave2

第三节、配置zookeeper环境

1、基础环境准备

1. 将zookeeper-3.4.5.tar.gz上传到/opt/software中
2. 解压
   [root@master software]# tar -zxvf zookeeper-3.4.5.tar.gz -C /opt/apps/
3. 更名zookeeper
   [root@master software]# cd ../apps/
   [root@master apps]# mv zookeeper-3.4.5 zookeeper
4. 配置环境变量
   [root@master apps]# vi  /etc/profile
   .........省略......
   export ZOOKEEPER_HOME=/opt/apps/zookeeper
   export PATH=$ZOOKEEPER_HOME/bin:$PATH
5. 使当前会话生效
   [root@master apps]# source /etc/profile
6. 查看zookeeper的版本号
   [root@master apps]# echo stat|nc localhost 2181

2、复制出一个zoo.cfg文件

[root@master zookeeper]# cd conf/               #进入zookeeper的conf目录
[root@master conf]# cp zoo_sample.cfg  zoo.cfg   #复制出zoo.cfg文件

3、修改zoo.cfg文件

[root@master conf]# vi zoo.cfg
tickTime=2000			#  定义的时间单元(单位毫秒),下面的两个值都是tickTime的倍数。
initLimit=10			#follower连接并同步leader的初始化连接时间。
syncLimit=5				#心跳机制的时间(正常情况下的请求和应答的时间)
dataDir=/opt/apps/zookeeper/data/   #修改zookeeper的存储路径
dataLogDir=/opt/apps/zookeeper/log/   #修改zookeeper的日志存储路径
server.1=master2:2888:3888            #对应服务器id
server.2=slave1:2888:3888             #对应服务器id
server.3=slave2:2888:3888              #对应服务器id
clientPort=2181							 #客户端连接服务器的port

4、创建两个文件

mkdir	 /opt/apps/zookeeper/data/ 
mkdir 	/opt/apps/zookeeper/log/
开启zookeeper:
zkServer.sh start开启三个节点
验证zookeeper:
zkServer.sh status 验证状态  分别是leader或者follower

第四节、HA的配置总结

1、 环境准备:

1. 三台虚拟机:master,slave1,slave2
2. 保证三台机器的防火墙都是关闭状态
3. 保证三台机器的免密登陆认证
4. 保证三台机器的时间同步
5. 保证三台机器的/etc/hosts文件的域名映射关系配置
6. 保证三台机器安装了jdk和hadoop,并且配置了环境变量且命令好使

说明:如果上述环境都准备好了,那么就修改hadoop的7个文件,参考如下:

2、hadoop/etc/hadoop/core-site.xml

<configuration>
     <!-- 指定hdfs的ha的域名,注意这个是hdfs-site.xml文件里配置的逻辑名称 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://supercluster</value>
    </property>
     <!-- 指定hdfs的数据存储位置,此路径一旦指定,会被其他属性使用和依赖-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/apps/hadoop/tmp</value>
    </property>
    <!-- 指定journalnode的数据存储位置-->
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/opt/apps/hadoop/tmp</value>
    </property>
    <!-- 指定zookeeper集群的服务器节点,如果没有搭建zookeeper,请参考zookeeper知识模块-->
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>master2:2181,slave1:2181,slave2:2181</value>
    </property>
</configuration>

3、hadoop/etc/hadoop/hdfs-site.xml

<configuration>
     <!-- 指定块文件的复本个数-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
     <!-- 指定块文件的大小-->
    <property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
    </property>
    <!-- 节点动态上下线的配置	
     <property>
      <name>dfs.hosts</name>
      <value>/opt/apps/hadoop/etc/hadoop/include</value>
     </property>   
     <property>
      <name>dfs.hosts.exclude</name>
      <value>/opt/apps/hadoop/etc/hadoop/exclude</value>
     </property>
     -->
	 <!-- 指定ha的名称服务:即逻辑名称-->
    <property>
        <name>dfs.nameservices</name>
        <value>supercluster</value>
    </property>
	 <!-- 指定ha的两个namenode的唯一标识符-->
    <property>
        <name>dfs.ha.namenodes.supercluster</name>
        <value>nn1,nn2</value>
    </property>
     <!-- 指定两个唯一标识符,对应的主机和端口号-->
    <property>
        <name>dfs.namenode.rpc-address.supercluster.nn1</name>
        <value>master:8020</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address.supercluster.nn2</name>
        <value>master2:8020</value>
    </property>
	  <!-- 指定两个唯一标识符,对应的web地址的主机和端口号-->
    <property>
        <name>dfs.namenode.http-address.supercluster.nn1</name>
        <value>master:50070</value>
    </property>

    <property>
        <name>dfs.namenode.http-address.supercluster.nn2</name>
        <value>master2:50070</value>
    </property>
	 <!-- 指定journalnode集群的服务器ip、port和存储目录-->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://master2:8485;slave1:8485;slave2:8485/journalData</value>
    </property>
	 <!-- 指定客户端联系Active节点的java类-->
    <property>
        <name>dfs.client.failover.proxy.provider.supercluster</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
	 <!-- 指定防止脑裂的防护机制,注意centos 7很可能会因为少一些内置命令而失效-->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
    </property>
	 <!-- 指定防火机制进行免密登陆的私钥-->
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
     <!-- 指定防火机制进行免密登陆的超时时间,可选配置-->
    <property> 
        <name>dfs.ha.fencing.ssh.connect-timeout</name> 
        <value>30000</value> 
    </property>

    <!--  start  automatic-failover -->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>
</configuration>

4、hadoop/etc/hadoop/mapred-site.mxl

<configuration>
   <!--  配置执行mr的框架名称 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

5、hadoop/etc/hadoop/yarn-site.xml

<configuration>
    <!-- 指定yarn的shuffle技术 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定resourcemanager的主机名 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
</configuration>

6、hadoop/etc/hadoop/hadoop-env.sh

[root@master hadoop]# vi hadoop-env.sh
................
# The java implementation to use.
export JAVA_HOME=/opt/apps/jdk		#指定你的jdk路径
..................

7、hadoop/etc/hadoop/slaves

[root@master hadoop]# vi slaves
# 指定三台datanode节点
master
slave1
slave2

8、hadoop/etc/hadoop/yarn-env.sh

[root@master hadoop]# vi yarn-env.sh
........省略........
# some Java parameters
export JAVA_HOME=/opt/apps/jdk
........省略........

启动三个节点上的journalnode服务

[root@master ~]# hadoop-daemon.sh start journalnode
[root@slave1 ~]# hadoop-daemon.sh start journalnode
[root@slave2 ~]# hadoop-daemon.sh start journalnode

9、格式化namenode,启动集群

1、 先删除所有节点的${hadoop.tmp.dir}/tmp/的数据(可选,这一步表示弃用fsimage.)
2、选择master2节点namenode进行格式化(正常启动后只做一次格式化)
  [root@master2 ~]# hdfs namenode -format
3、并启动namenode进程
  [root@master2 ~]# hadoop-daemon.sh start namenode

在另一台namenode上拉取已格式化的那台机器的镜像文件(数据的一致性)

[root@master ~]# hdfs namenode -bootstrapStandby

然后关闭已经启动的namenode

[root@master2 ~]# hadoop-daemon.sh stop namenode

格式化zkfc

1、前提QuorumPeerMain服务必须处于开启状态,客户端zkfc才能格式化成功
  [root@master2 ~]# zkServer.sh start
  [root@slave1 ~]# zkServer.sh start
  [root@slave2 ~]# zkServer.sh start
2、选择其中一个namenode节点进行格式化zkfc
  [root@master2 ~]# hdfs zkfc -formatZK

你就可以快乐的开启HA集群进行测试了
[root@master2 ~]# start-all.sh

注意:以后开HA集群时,要先开zookeeper服务,再开HDFS。

第五节、Hive安装之mysql安装:

1、环境配置

检测系统是否自带Mysql

rpm -qa|grep mysql

img

如果有进行强行卸载
rpm -e --nodeps .........
检测系统是否自带mariadb
rpm -qa|grep mariadb

img

rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

img

rpm -e --nodeps mariadb-5.5.64-1.el7.x86_64

img

rpm -e --nodeps mariadb-server-5.5.64-1.el7.x86_64

img

根据不同的版本号卸载

用连接工具将下载的mysql-5.7.21-el7-x86_64.tar.gz上传到linux服务器/data/software/的目录下面

2、安装

1、进入/data/software/目录下解压
tar -zxvf mysql-5.7.21-el7-x86_64.tar.gz
2、解压完成后重命名
mv mysql-5.7.21-el7-x86_64  mysql-5.7.21
mv mysql-5.7.21 /usr/local/
3、检查mysql组和用户是否存在,如果没有则创建
cat /etc/group|grep mysql
groupadd mysql
useradd -r -g mysql mysql  #useradd -r参数表示mysql用户是系统用户,不可用于登录系统

3、安装数据库

a、创建data目录
cd   /usr/local/mysql-5.7.21
mkdir data
b、 将/usr/local/mysql-5.7.28的所有者及所属组改为mysql
chown -R mysql.mysql /usr/local/mysql-5.7.21
c、 在/usr/local/mysql-5.7.28/support-files目录下创建my_default.cnf
vim my_default.cnf

[mysqld]

#设置mysql的安装目录
basedir =/usr/local/mysql-5.7.21
#设置mysql数据库的数据存放目录
datadir = /usr/local/mysql-5.7.21/data
#设置端口
port = 3306
socket = /tmp/mysql.sock
#设置字符集
character-set-server=latin1
#日志存放目录
log-error = /usr/local/mysql-5.7.21/data/mysqld.log
pid-file = /usr/local/mysql-5.7.21/data/mysqld.pid
d、拷贝,是否覆盖,是
cp my_default.cnf /etc/my.cnf
e、初始化Mysql
cd mysql-5.7.21
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.21/ --datadir=/usr/local/mysql-5.7.21/data/

如果报错:./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or 就安装libaio,如果没有则跳过

yum install libaio

初始化完成之后查看日志

cat /usr/local/mysql-5.7.21/data/mysqld.log,蓝框里的是临时密码需要记下来,下次登陆mysql需要用到W<xPiraUC0IS

img

把启动脚本放到开机初始化目录

cp support-files/mysql.server /etc/init.d/mysql
img
f、启动mysql
service mysql start

img

进入mysql并更改密码

cd /usr/local/mysql-5.7.21
./bin/mysql -u root -p
mysql> set password=password('123456');
mysql> grant all privileges on *.* to root@'%' identified by '123456';
mysql> flush privileges;
g、添加远程访问权限
mysql> use mysql;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;

如果更改时报错:ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’,就先查询一下是否已更改,最后执行刷新。

查询命令:select host,user from user where user=‘root’;

查看一下host是否已经有了%这个值,有了就可以了.

重启mysql生效

service mysql restart

第六节:hive的安装部署

准备环境:
- jdk1.8 
- hadoop-2.7.6 
- hive-2.3.4 
- mysql-5.7.21

1、搭建步骤

**步骤1)**安装hive,配置环境变量
1. 将hive安装包上传到/opt/software/,进行解压
   [hadoop@master software]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/apps/

2. 创建一个软连接
   [hadoop@master apps]$ ln -s apache-hive-2.3.4-bin/ hive

3. 配置环境变量
   [hadoop@master apps]$ vi /etc/profile
   #hive environment
   export HIVE_HOME=/opt/apps/hive
   export PATH=$HIVE_HOME/bin:$PATH  

4. 使.bash_profile生效
   [hadoop@master apps]]$ source /etc/profile
**步骤2)**安装mysql环境:【上面已经配置完成】
**步骤3)**将mysql的驱动包mysql-connecter-5.1.28.bin.jar,放入hive的lib中
步骤4) 配置hive-env.sh(在hive的conf目录中)
[hadoop@master conf]$ cp hive-env.sh.template hive-env.sh
[hadoop@master conf]$ vi hive-env.sh
........省略........
export HADOOP_HOME=/opt/apps/hadoop/
export JAVA_HOME=/opt/apps/jdk/
export HIVE_CONF_DIR=/opt/apps/apache-hive-2.3.4-bin/conf
export HIVE_AUX_JARS_PATH=/opt/apps/apache-hive-2.3.4-bin
export HIVE_HOME=/opt/apps/apache-hive-2.3.4-bin

........省略........
步骤5) 配置hive-site.xml(在hive的conf目录中)
[hadoop@master conf]$ cp hive-default.xml.template hive-site.xml
[hadoop@master conf]$ vi hive-site.xml #找到相应属性修改值。或者删除所有默认配置,重新添加属性

<configuration>
<!--配置mysql的连接字符串-->
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=latin1</value>
    <description>JDBC connect string for a JDBC metastore</description>
</property>

<!--配置mysql的连接驱动-->
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
</property>

<!--配置登录mysql的用户-->
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>username to use against metastore database</description>
</property>

<!--配置登录mysql的密码-->
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>password to use against metastore database</description>
</property>
</configuration>
步骤6) 连接测试:

配置完上述属性,本地模式即完成,测试能否在mysql中创建hive元数据库。前提:集群和mysql都要先启动

[hadoop@master conf]$ schematool -initSchema -dbType mysql
Metastore Connection Driver :    com.mysql.jdbc.Driver
Metastore connection User:       root
Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Initialization script completed
schemaTool completed
[hadoop@master conf]$ hive
Logging initialized using configuration in file:/opt/apps/hive2.3.4/conf/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive> show tables;
步骤7)HIVE的基本操作:库、表
1、说明和命名规范
hive有一个默认的数据库default,在操作HQL时,如果不明确的指定要使用哪个库,则使用默认数据库。
hive的数据库名、表名都不区分大小写
名字不能使用数字开头
不能使用关键字
尽量不使用特殊符号
库操作语法

2、创建数据库

语法1:create database mydb;
语法2:create database if not exists mydb;
语法3:create database if not exists mydb comment 'this is my database';

3、 查看所有数据库

语法:show databases; 

4、切换数据库

语法:use mydb;

5、查看数据库信息

语法1:desc database databaseName;
语法2:desc database extended databaseName;
语法3:describe database extended databaseName;

6、删除数据库

语法1:drop database databasename;         	#这个只能删除空库
语法2:drop database databasename cascade;    	#如果不是空库,则可以加cascade强制删除

第七节、hbase全分布式安装

HBASE是一个分布式系统
	其中有一个管理角色:  HMaster(一般2台,一台active,一台backup)
	其他的数据节点角色:  HRegionServer(很多台,看数据容量)

	实际上,您需要一个完全分布式的配置来全面测试HBase,并在实际场景中使用它。在分布式配置中,集群包含多个节点,每个节点运行一个或多个HBase守护进程。这些包括主实例和备份主实例、多个ZooKeeper节点和多个RegionServer节点。
1 角色分配&准备工作
  • 角色分配
master2:hmaster 
master:regionserver
slave1:regionserver
slave2:regionserver
  • 准备工作
1. 安装zookeeper
2. hbase-env.sh
# 配置JDK的路径
export JAVA_HOME=/opt/apps/jdk
# 配置关闭HBASE管理zookeeper
export HBASE_MANAGES_ZK=false
2 安装
  • hbase-site.xml
<configuration>
		<!-- 指定hbase在HDFS上存储的路径 -->
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://master:8020/hbase</value>
                <description>配置hbase的数据存放在hdfs的目录</description>
        </property>
		<!-- 指定hbase是分布式的 -->
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
                <description>开启hbase的分布式模式</description>
        </property>
		<!-- 指定zk的地址,多个用“,”分割 -->
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>master:2181,slave1:2181,slave2:2181</value>
                <description>配置hbase使用真实的zookeeper的目录</description>
        </property>
</configuration>
  • 修改regionservers
master
slave1
slave2
  • 在hbase的conf创建backup-masters的文件,并在其中添加主机名centos2
master
  • 分发
[root@master2 local]# scp -r hbase-1.2.1/ master1:/usr/local/
[root@master2 local]# scp -r hbase-1.2.1/ slave1:/usr/local/
[root@master2 local]# scp -r hbase-1.2.1/ slave2:/usr/local/
  • 启动hbase
1. 现启动hadoop和zookeeper
2. start-hbase.sh
  • 配置环境变量(包含了:jdk/hadoop/mysql/hive/hbase/zookeeper)
export JAVA_HOME=/opt/apps/jdk
export HIVE_HOME=/opt/apps/hive2.3.4
export HADOOP_HOME=/opt/apps/hadoop
export MYSQL_HOME=/usr/local/mysql-5.7.21
export ZOOKEEPER_HOME=/opt/apps/zookeeper
export HBASE_HOME=/opt/apps/hbase
export PATH=$HBASE_HOME/bin:$MYSQL_HOME/bin:$HIVE_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:$ZOOKEEPER_HOME/bin

第八节、scala安装

配置环境变量即可:(如下环境变量包含了java/scala/spark/hadoop/zookeeper)

export JAVA_HOME=/opt/apps/jdk
export SCALA_HOME=/opt/apps/scala
export SPARK_HOME=/opt/apps/spark
export HADOOP_HOME=/opt/apps/hadoop
ZOOKEEPER_HOME=/opt/apps/zookeeper
export PATH=JAVAHOME/bin:JAVA_HOME/bin:JAVAH​OME/bin:HADOOP_HOME/bin:HADOOPHOME/sbin:HADOOP_HOME/sbin:HADOOPH​OME/sbin:PATH:ZOOKEEPERHOME/bin:ZOOKEEPER_HOME/bin:ZOOKEEPERH​OME/bin:SCALA_HOME/bin:SPARKHOME/bin:SPARK_HOME/bin:SPARKH​OME/bin:SPARK_HOME/sbin

第九节、spark安装

2.2 Standalone模式

集群搭建

集群组成使用了4台节点,在教学中可以根据自己的节点适当减少worker即可

基本条件:同步时间、免密登录、关闭防火墙、安装JDK1.8
1.上传安装包到hadoop01
2.将文件解压到指定的目录
tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /opt/software/

3.跳转到安装路径进入到conf进行配置
cd /opt/software/spark-2.2.0-bin-hadoop2.7/
cd conf/

3.1修改conf目录下的env文件
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
在文件的末尾添加
export JAVA_HOME=/opt/apps/jdk 
#JDK安装路径
#主节点IP(写节点名地址必须是节点 写IP地址必须是IP)
export SPARK_MASTER_PORT=7077 
#主节点端口号(内部通信)

3.2修改slaves.template文件添加从节点
mv slaves.template slaves
vi slaves
内容(根据自己的节点适当删减):
master
slave1
slave2


配全局环境变量(选配好处:可以在任意位置使用bin下脚本,如spark-shell和sparkSubmit):
vi /etc/profile
export SPARK_HOME=/opt/apps/spark

source /etc/profile

配置Job History Server

在运行Spark应用程序的时候,driver会提供一个webUI给出应用程序的运行信息,但是该webUI随着应用程序的完成而关闭端口,也就是 说,Spark应用程序运行完后,将无法查看应用程序的历史记录。Spark history server就是为了应对这种情况而产生的,通过配置,Spark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而Spark history server可以将这些运行信息装载并以web的方式供用户浏览。

1.确保HDFS系统启动

创建directory目录
hdfs dfs -mkdir /directory

2.进入到spark安装目录conf目录下
cd /opt/apps/spark/conf

3.将spark-default.conf.template复制为spark-default.conf
mv spark-defaults.conf.template spark-defaults.conf
vi  spark-defaults.conf 在文件的末尾添加
spark.eventLog.enabled           true  开启日志
spark.eventLog.dir               hdfs://master:8020/directory 存储路径
spark.eventLog.compress          true 是否压缩

#参数描述:
#spark.eventLog.dir:Application在运行过程中所有的信息均记录在该属性指定的路径下
#spark.eventLog.compress 这个参数设置history-server产生的日志文件是否使用压缩,true为使用,false为不使用。这个参数务可以成压缩哦,不然日志文件岁时间积累会过


ps:最好不要是用IE内核的浏览器不然效果是显示不出来的
   启动的时候是
   start-all.sh       start-history-server.sh 
Spark高可用
那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,配置方式比较简单:
Spark集群规划:master,master2是Master;master2,slave1,slave2是Worker
安装配置zk集群,并启动zk集群
停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master2,slave1,slave2 -Dspark.deploy.zookeeper.dir=/spark"
分发到master2,slave1,slave2节点下
1.在master节点上修改slaves配置文件内容指定worker节点
ps:若是修改了slaves节点那么配置文件也发分发
2.先启动zookeeper集群
3.在master上执行sbin/start-all.sh脚本,然后在master2上执行sbin/start-master.sh启动第二个Master

ps:若使用spark-shell启动集群需要添加配置
spark-shell --master spark://master:port1,master2:7077

2.3 yarn 模式

集群搭建
1,在Hadoop配置下的yarn-site.xml文件中增加以下两项:
这两项判断是否启动一个线程检查每个任务正使用的物理内存量/虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true 
如果不配置这两个选项,在spark-on-yarn的client模式下,可能会报错,导致程序被终止。
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

2,修改Spark-env.sh 添加:
HADOOP_CONF_DIR=/opt/apps/hadoop/etc/hadoop
YARN_CONF_DIR=/opt/apps/hadoop/etc/hadoop

PARK_MASTER_IP并添加如下配置
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master2,slave1,slave2 -Dspark.deploy.zookeeper.dir=/spark"
分发到master2,slave1,slave2节点下
1.在master节点上修改slaves配置文件内容指定worker节点
ps:若是修改了slaves节点那么配置文件也发分发
2.先启动zookeeper集群
3.在master上执行sbin/start-all.sh脚本,然后在master2上执行sbin/start-master.sh启动第二个Master

ps:若使用spark-shell启动集群需要添加配置
spark-shell --master spark://master:port1,master2:7077


### 2.3 yarn 模式

#### 集群搭建

~~~xml
1,在Hadoop配置下的yarn-site.xml文件中增加以下两项:
这两项判断是否启动一个线程检查每个任务正使用的物理内存量/虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true 
如果不配置这两个选项,在spark-on-yarn的client模式下,可能会报错,导致程序被终止。
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

2,修改Spark-env.sh 添加:
HADOOP_CONF_DIR=/opt/apps/hadoop/etc/hadoop
YARN_CONF_DIR=/opt/apps/hadoop/etc/hadoop

~~~



物联网系列③——基于ESP8266与点灯科技平台的温湿度计设计(接入小爱同学) 物联网系列③——基于ESP8266与点灯科技平台的温湿度计设计(接入小爱同学)一、设计目标二、电路展示三、存在的问题四、代码五、需要注意的问题 一、设计目标       前一阵子偶然接触到点灯科技平台,产生了制作一块ESP8266电路板,拥有以下功能: 使用CH340对ESP8266进行程序下载 使用DHT11进行温湿度数据读取 使用点灯科技平台接入物联网,可通过手机APP获得室内温湿度 接入小爱同学,通过语音获取室内温湿度信息 Mico US 阅读详情

相关推荐

【C++】 详解 lower_bound 和 upper_bound 函数(看不懂来捶我!!!)

这两个函数是我在 LeetCode 上做题见到,看到不熟悉的函数 lower_bound 和 upper_bound让我感觉很难受,于是在C++ 官网去学习,例子就一个是最基础的,我看明白了。虽然是两个函数的接口就两个,但是有时候看别人使用的时候,里面参数还可以放不同的仿函数,我懵逼了。就去网上搜,但是大家讲解的都是它的第一个接口。我只能再把文档一遍一遍过,代码一遍遍的尝试,调试。最终通过查阅资料将其总结如下。

weixin_45031801的博客 9万+

Hadoop知识点大全

一、大数据的概述 1、大数据的概念和特征(重点) --1. 概念: 海量数据,数据种类多样化,增长速度块,无法使用常规分析管理工具进行管理的数据集合 --2. 特征(4V) volume: 巨大的数据量 variety: 数据种类多样化 --结构化的数据 --半结构化的数据 --非结构和的数据:网页,视频,音频等,占现在数据量的90% volecity: 增长速度块 value: 价值密度低 2、大数据的应用前景 --1.应用案例 预测犯罪,城市规划,远程医疗,预测选举...

默主归沙的博客 3357

运动目标成像必学:5分钟搞懂keystone变换原理与避坑指南

本文深入浅出地解析了雷达信号处理中的Keystone变换原理,它是解决运动目标距离徙动问题的关键技术。文章通过直观比喻和简化公式,阐述了该变换如何通过变量代换实现距离与慢时间的解耦合,将倾斜轨迹“掰直”,从而提升成像与检测性能。同时,文中重点指出了实际应用中关于大速度场景、插值误差、多目标处理及高阶运动补偿等关键避坑点,为工程实践提供了宝贵指南。

ios99的博客 403

Hadoop 启动和停止相关指令及说明

sbin/start-all.sh 启动所有的Hadoop守护进程。包括NameNode、 Secondary NameNode、DataNode、ResourceManager、NodeManager sbin/stop-all.sh 停止所有的Hadoop守护进程。包括NameNode、 Secondary NameNode、DataNode、ResourceManager、NodeManager sbin/start-dfs.sh 启动Hadoop HDFS守护进程NameNode、Secondary

~ 2251

Win11 24H2家庭版共享打印机失败?别慌,一个批处理脚本搞定所有设置

本文提供了Win11 24H2家庭版共享打印机失败的解决方案,通过一个批处理脚本自动修复所有设置问题。脚本包含安装组策略组件、修改关键注册表项等操作,帮助用户快速恢复打印机共享功能,适用于普通家庭用户。

weixin_30632089的博客 419

蒙特卡洛+概率潮流!基于蒙特卡洛和新能源出力模拟的概率潮流分布程序代码!

最后,导出光照强度、风速、网损和节点电压的概率分布图,并计算了各节点电压和网损的平均值和方差,展示了接入前后的节点电压对比图。在不确定性增加的电力系统中,概率潮流成为含随机因素规划问题的求解前提,可以更加真实地反映电力系统的全面信息。此外,概率潮流还可用于研究风电和光伏发电出力以及电动汽车消耗功率和向电力系统反向供电功率的不确定性对电力系统的影响,发现系统运行中的潜在风险,为系统运行控制提供参考。概率潮流的目的是揭示电网中随机变量对系统的影响,发现电网中的薄弱环节,为规划和调度部门的决策提供有价值的信息。

weixin_48747334的博客 1920

新手安装hadoop教程和个人遇到的错误及解决办法(错误:./hadoop-daemon.sh start journalnode用不了和WARNING: HADOOP_SECURE_DN_USER)

hadoop

m0_53802262的博客 2320

使用 Vosk 实现语音识别

在近两年里,如果说想要在本地部署离线语音识别模型,那么和肯定是首选项。所以为什么要使用呢?

weixin_48967543的博客 9719

hadoop namenode启动不了_从零开始学大数据(二):Hadoop高可用环境搭建(QJM)

一、虚拟机配置虚拟机规划二、Hadoop 高可用(HA)实现(QJM)1、node1主机上修改配置文件修改core-site.xml[root@node1 ~]# vi /opt/hadoop/etc/hadoop/core-site.xml#修改为如下: fs.defaultFS hdfs://mycluster ...

weixin_39583521的博客 247

西电微机系统课程设计——步进电机开环控制系统设计

西电微机系统课程设计——步进电机开环控制系统设计 一、课程设计目的 1.掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。 2.加深对 A/D 和并行接口芯片的工作方式和编程方法的理解。 3.搞懂步进电机的工作原理及控制方式,掌握开环控制系统的设计思路和实现方法。 二、课程设计的内容 手动调节电位器旋钮(0V~5V),通过 ADC0809 模拟输入水库水位 0 米~50 米,CPU收到水位信号后,根据水位高度控制步进电机(水闸)进行调节。 三、系统功能与设计要求 基本功能要求 手

OutlierLi's Blog 7524

把开源 Skills 集成到 LangGraph 项目

1. 定义智能体状态(必须包含 messages,其他字段按需扩展)messages: List[HumanMessage | AIMessage | ToolMessage] # 消息流(核心)skill_output: Optional[str] # 存储 Skill 执行结果next_node: str # 控制流程跳转# 2. 定义智能体决策节点(决定是否调用 Skill)"""智能体决策逻辑:根据用户输入判断是否调用开源 Skill"""# 获取最后一条用户消息。

lpfasd123的博客 900

大数据平台启动hadoop脚本

启动hadoop HA未完待续 #!/bin/bash echo ********zookeeper启动*********** ssh "root@nodez001" "zkServer.sh start" ssh "root@nodez002" "zkServer.sh start" ssh "root@nodez003" "zkServer.sh start" echo ********zookeeper成功*********** echo ********journalnode启动**********

weixin_43813200的博客 262

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Hadoop 中zoo_Hadoop中HA集群搭建步骤(详细)

搭建HA集群(在完全分布式集群的基础上,可以参考博主之前的博客):1、zookeeper集群搭建 a) 将zookeeper.tar.gz上传到node002、node003、node004 b) 解压到/opt tar -zxf zookeeper-3.4.6.tar.gz -C /opt c) 配置环境变量: export ZOOKEEPER_PREFIX=/opt/zookeeper-3...

weixin_39950083的博客 230

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

HADOOP安装操作

进入服务器,输入以下命令在文件后面添加服务器的ip及其对应的映射名注意:若不进行此项配置,进入hdfs的UI界面后会只有一个datanode。

hhhht1234的博客 906

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Hadoop 命令操作大全

Apache Hadoop 2.7.3 Shell 命令操作指南大全 目录 Overview appendToFile cat checksum chgrp chmod chown copyFromLocal copyToLocal count cp createSnapshot deleteSnapshot df du dus ...

星辰大数据的博客 2801

Hadoop集群搭建详细步骤大全

hadoop从配置网络到集群搭建的详细步骤

weixin_52733693的博客 1万+

【hadoop】常见期末考试客观题大全

hadoop期末考试题,来着不易。希望大家关注点赞收藏哦

m0_53612936的博客 1万+

Hadoop HA高可用集群简明安装操作说明

实验环境:本操作说明适合502机房和504机房 一 实验准备: 1)运行Vmware WorkStation或Virtual Box,把“Hadoop伪分布式”虚拟机的名称改成“standby高可用”,“master完全分布式”改成“master高可用”“slave1完全分布式”改成“slave1高可用”,“slave2完全分布式”改成“slave2高可用” 2)启动master完全分布式,slave1完全分布式,slave2完全分布式,standby高可用共4台虚拟机,把standby的IP地址修改

qq_35447918的博客 996

Hadoop YARN 命令大全详解

Hadoop YARN命令大全详解:本文全面整理了YARN的核心命令,分为用户命令、管理员命令和ApplicationMaster命令三大类。用户命令包含应用管理、日志操作、节点查看和队列操作;管理员命令涵盖资源管理、节点管理和高级配置;ApplicationMaster命令则用于应用内控制和调试。文章通过表格和代码示例详细说明了各命令的参数与用法,包括应用提交、状态监控、日志获取、队列管理、资源调度等,同时介绍了安全相关命令和动态配置更新方法,为Hadoop集群管理员和开发者提供了实用的YARN操作参考手

csdn_tom_168的博客 920

Hadoop伪分布式简明安装操作说明

Hadoop伪分布式简明安装操作说明 1)cd /usr/local/ 切换到安装目录 2)mv hadoop-2.6.0-cdh5.7.0/ hadoop-2.6.0-cdh5.7.0.bak 备份掉之前的Hadoop 3)cd 切换到/root目录 4)tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C /usr/local/ 解压缩 5)执行命令 vi /etc/hostname 将主机名修改为hadoop 6)执行命令 vi /etc/...

qq_35447918的博客 937

hadoop命令大全

1、列出所有Hadoop Shell支持的命令   $ bin/hadoop fs -help 2、显示关于某个命令的详细信息   $ bin/hadoop fs -help command-name 3、用户可使用以下命令在指定路径下查看历史日志汇总   $ bin/

shuhuai007的专栏 1894

Hadoop命令大全

Hadoop命令大全 分类:云计算2011-03-01 15:046852人阅读评论(0)收藏举报 hadoop作业任务集群class脚本 1、列出所有Hadoop Shell支持的命令$ bin/hadoop fs -help2、显示关于某个命令的详细信息$ bin/hadoop fs -help command-name3、用户可使用以下命令在指定路径下查看...

weixin_30664615的博客 110

Hadoop完全分布式集群的简单安装操作说明

实验环境:本操作说明适合502机房和504机房 首先要运行Vmware WorkStation或Virtual Box,启动master完全分布式,slave1完全分布式,slave2完全分布式 第1步:先在第一个台虚拟机master执行以下操作,再依次在slave1和slave2重复相同的操作: 1)执行cd /usr/local/ 切换到安装目录 2)执行mv hadoop-2.6.0-cdh5.7.0/ hadoop-2.6.0-cdh5.7.0.bak 备份掉之前的Hadoop 或 执行 ...

qq_35447918的博客 2835

【Hadoop】HDFS API 操作大全

为了提供对不同数据访问的一致接口,Hadoop借鉴了Linux虚拟文件系统的概念,为此Hadopo提供了一个抽象的文件系统模型FileSystem,HDFS 是其中的一个实现。 FileSystem是Hadoop中所有文件系统的抽象父类,它定义了文件系统所具有的基本特征和基本操作。

康师傅没有眼泪 4169

hadoop配置大全

core hdfs yarn mapred core-default.xml hadoop.common.configuration.version 配置文件的版本。 hadoop.tmp.dir=/tmp/hadoop-${user.name} Hadoop的临时目录,其它目录会基于此路径。本地目录。 只可以设置一个值;建议设置到一个足够空...

Adolph的专栏 1234
上一篇: Hadoop大数据原理与应用实验大纲
下一篇: IDEA新建Maven Java Web项目
Ordinary_Data
博客等级 码龄7年 6粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值