学习笔记-Spark环境搭建与使用

2023-11-19

一、 20.04 Ubuntu安装

  1. 清华源ISO源
    https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/
    下载链接
    https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/ubuntu-20.04.5-desktop-amd64.iso
  2. 下载Mobaxterm
    https://mobaxterm.mobatek.net/download-home-edition.html
  3. 在VM下安装 Ubuntu
    1. 点击创建新的虚拟机,一直下一步
    2. 选择系统,然后下一步在这里插入图片描述
    3. 网络选择NAT模式,一直下一步,直到完成
    4. 点击改虚拟机,点击编辑虚拟机设置,导入ISO镜像
      在这里插入图片描述
    5. 开启虚拟机,点击install Ubuntu
      在这里插入图片描述
    6. 选择一个minimal就行,取消掉Download(要不然安装太慢了)
      在这里插入图片描述
    7. 选择自动分配磁盘
      在这里插入图片描述
    8. 选择时区、设置用户名与密码,等待安装完成即可。
    9. 安装anaconda
1. 下载anaconda
2. 根据提示安装
3. 输入 source activate 命令激活环境
4. 创建虚拟环境,conda create -n pyspark python=3.8

二、Hadoop搭建—一主二从

  1. 安装多个节点Ubuntu虚拟机
    将Node1安装成功以后,选择右键管理->克隆,即可。克隆选项选择克隆链接,节省空间。
    在这里插入图片描述
  2. MobaxTerm连接
    1. 查看虚拟机ip地址,ifconfig
    2. 下载ssh,sudo apt-get install openssh-server
    3. 打开mobaxTerm,代开session,选择ssh,输入ip,勾选用户名(默认),输入密码。
  3. JDK 8 下载
    https://www.oracle.com/java/technologies/downloads/
    往下查看,JDK 8 在页面下面
    在这里插入图片描述
  4. Hadoop下载
    https://hadoop.apache.org/releases.html
    在这里插入图片描述
    在这里插入图片描述
  5. 关闭防火墙与打开SSH
# 关闭防火墙
sudo ufw disable
# 检查ssh
sudo ps -e |grep ssh
# 如果有ssh,但是无sshd,则ssh未打开
sudo service ssh start
# 如果没有ssh,则下载
sudo apt-get update
sudo apt-get install openssh-server
  1. 配置hostname、hosts(所有节点都需要操作)
# 配置hostname,自定义主机名,写本机的即可
sudo vim /etc/hostname
# 配置hosts,将127.0.1.1这一行删除,加入所有节点的ip、hostname,查看ip:ifconfig
sudo vim /etc/hosts

# 重启
reboot

# 测试下是否配置成功, 注意:这个节点名不是本机的,是非本机的其他节点名
ping 节点名  
  1. 设置SSH免密通信
    1. 主节点上
# 输出命令,摁下三次enter,会生成秘钥,其中也会告诉你.ssh文件夹保存的位置
ssh-keygen -t rsa
# 进入.ssh文件夹中,里面有两个文件,.pub的是公钥,另外一个是私钥,复制一份公钥,并修改权限
cat id_rsa.pub >> authorized_keys
chmod 777 authorized_keys
# 将公钥传输给其余从节点,首次需要输入yes与密码
scp authorized_keys 用户名@节点名:~/
2. 从节点
# 生成秘钥
ssh-keygen -t rsa
# 将从主节点拷贝过来的公钥移动到.ssh文件下
mv ~/authorized_keys ~/.ssh/
# 修改其权限
chmod 600 authorized_keys
3. 如果还是需要输入密码,则删除.ssh文件下know开头的文件,然后将所有的公钥加入到authoried_keys下,重新试下。
  1. 配置安装JDK8(主从节点都需要)
# 创建目录
mkdir /usr/java
mkdir /usr/java/jdk
# 解压上传的jdk到指定目录下
sudo tar -xvf jdk-8u341-linux-x64.tar.gz -C /usr/java/jdk
# 修改文件名,方便配置
sudo mv jdk1.8.0_341 jdk8
# 添加配置,追加内容,vim /etc/profile
export JAVA_HOME=/usr/java/jdk/jdk8
export JRE_HOME=$JAVA_HOME/jre    
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
# 使其生效,并测试
source /etc/profile
java  -version
  1. 安装Hadoop(主从节点都要做)
# 创建文件夹
mkdir /usr/hadoop
# 将上传的hadoop解压到指定文件夹中
sudo tar -xvf  ~/Softwarejar/hadoop-3.2.4.tar.gz -C /usr/hadoop/
# 重命名
mv hadoop-3.2.4 hadoop
# 设置配置,/etc/profile
export HADOOP_HOME=/usr/hadoop/hadoop
export CLASSPATH=$HADOOP_HOME/bin/hadoop 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 使其生效并测试
source /etc/profile
hadoop version
  1. 配置Hadoop(只需要在主节点配置即可)
    在文件目录下进行 /xxxx/hadoop/etc/hadoop
    1. 配置 hadoop-env.sh文件
export JAVA_HOME=/xxxx/java/jdk/jdk8
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
2. 配置yarn-env.sh文件
export JAVA_HOME=/xxxx/java/jdk/jdk8
3. 配置 core-site.xml。(这个配置的hdfs的本地端口号,而不是hdfs的web界面端口号)
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://Node1:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/hadoop/hadoop/tmp</value>
</property>
4. 配置hdfs-site.xml文件
<property>
    <name>dfs.replication</name>
    <value>1</value>
    <!--对于Hadoop的分布式文件系统HDFS而言,一般都是采用冗余存储,冗余因子通常为3,也就是说,一份数据保存三份副本。但是,本教程只有一个Slave节点作为数据节点,即集群中只有一个数据节点,数据只能保存一份,所以,dfs.replication的值还是设置为 1-->
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/usr/hadoop/hadoop/tmp/dfs/name</value>  <!--不需要我们提前建好文件夹,如果没有,等会儿格式化名称节点时它会帮我们自动创建-->
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/usr/hadoop/hadoop/tmp/dfs/data</value>
</property>
<property>
    <name>dfs.namenode.http-address</name>
    <value>Node1:50070</value>
</property>
5. 配置yarn-site.xml文件
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
</property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>Node1:18040</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>Node1:18030</value>
</property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>Node1:18025</value>
</property>
<property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>Node1:18141</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>Node1:18088</value>
</property>
<property>
	<name>yarn.application.classpath</name>
<value>/usr/hadoop/hadoop/etc/hadoop:/usr/hadoop/hadoop/share/hadoop/common/lib/*:/usr/hadoop/hadoop/share/hadoop/common/*:/usr/hadoop/hadoop/share/hadoop/hdfs:/usr/hadoop/hadoop/share/hadoop/hdfs/lib/*:/usr/hadoop/hadoop/share/hadoop/hdfs/*:/usr/hadoop/hadoop/share/hadoop/mapreduce/lib/*:/usr/hadoop/hadoop/share/hadoop/mapreduce/*:/usr/hadoop/hadoop/share/hadoop/yarn:/usr/hadoop/hadoop/share/hadoop/yarn/lib/*:/usr/hadoop/hadoop/share/hadoop/yarn/*
</value>
</property>
6. 配置mapred-site.xml文件
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>Node1:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>Node1:19888</value>
</property>
<property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/hadoop/hadoop</value>
</property>
<property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/hadoop/hadoop</value>
</property>
<property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=/usr/hadoop/hadoop</value>
</property>
<property>
	<name>mapreduce.application.classpath</name>
<value>/usr/hadoop/hadoop/etc/hadoop:/usr/hadoop/hadoop/share/hadoop/common/lib/*:/usr/hadoop/hadoop/share/hadoop/common/*:/usr/hadoop/hadoop/share/hadoop/hdfs:/usr/hadoop/hadoop/share/hadoop/hdfs/lib/*:/usr/hadoop/hadoop/share/hadoop/hdfs/*:/usr/hadoop/hadoop/share/hadoop/mapreduce/lib/*:/usr/hadoop/hadoop/share/hadoop/mapreduce/*:/usr/hadoop/hadoop/share/hadoop/yarn:/usr/hadoop/hadoop/share/hadoop/yarn/lib/*:/usr/hadoop/hadoop/share/hadoop/yarn/*
</value>
</property>
7. 从主节点传送到从节点
scp -r hadoop 用户名@hostname:/xxxx/hadoop/
8. 首次启动需要格式化
# 在/xxxx/hadoop/bin目录下执行命令
hdfs namenode -format

参考:hadoop搭建

  1. 启动Hadoop
# 1. 启动hadoop与yarn
./start-all.sh
# 2.如果通过jps查看发现少了jobhistoryserver这个,则进入hadoop/sbin目录输入如下命令进行启动
./mr-jobhistory-daemon.sh start historyserver
# 3. 关闭则将start改为stop即可
./stop-all.sh
# 4. 登录hdfs文件系统与yarn的Web UI界面,端口号可以分别查看hdfs-site.xml、yarn-site.xml查看
http://主机名:50070
https://主机名:18088

# 5. 如果遇见hdfs启动报in safe mode,则执行:
hdfs dfsadmin -safemode leave

三、 Spark 搭建

  1. 安装python环境,下载anaconda进行安装
    https://mirrors.tuna.tsinghua.edu.cn/anaconda/.
  2. Spark下载地址,找到对应hadoop的版本的Spark下载,点进去会有对应的hadoop的版本。
    https://archive.apache.org/dist/spark/
  3. 上传下载的spark安装包,解压到指定的位置
  4. Scala 安装
# 下载链接
https://www.scala-lang.org/download/2.12.16.html
# 选择tgz文件进行下载

1. Local单机模式

# 1. 解压scala、spark到指定的位置
tar -xvf scala安装包 -C 指定位置
tar -xvf spark安装包 -C 指定位置 
# 2. 配置scala、spark环境
sudo vim /etc/profile
# 2.1 加入
# Scala 2.12
export SPARK_HOME=/usr/scala
export PATH=$PATH:$SPARK_HOME/bin
# Spark 3.2.x
export SPARK_HOME=/usr/spark
export PATH=$PATH:$SPARK_HOME/bin
# 2.2 生效
source /etc/profile
# 3. 测试
spark-shell

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

2. Standalone模式

  1. 主节点配置(在local模式的基础上)
# 1. 进入spark/conf文件下,有两个文件:spark-env.sh.template、workers.template(有可能也叫slaves.template)
cp spark-env.sh.template spark-env.sh
cp workers.template worker
# 1.1 进入spark-env.sh,追加内容
# Spark
export SCALA_HOME=/usr/scala
export JAVA_HOME=/usr/java/jdk/jdk8
export SPARK_HOME=/usr/spark
export SPARK_EXECUTOR_MEMORY=2G
export SPARK_WORKER_CORES=2
export SPARK_EXECUTOR_CORES=2
# 1.2 进入worker,将localhost修改为一下的主从节点hostname
Node1
Node2
  1. 从节点配置(注意/etc/profile里面的路径也要修改成Local里面的)
# 1. 将主节点配置好的scala、spark传输到从节点
sudo scp -r /xxxx/spark 用户名@从节点hostname:/usr
sudo scp -r /xxxx/spark 用户名@从节点hostname:/usr
# 注意可能提示permission denied,进行主从节点对应下要传入的文件位置的权限修改
chmod 777 文件夹 
  1. 启动Spark各个节点
# 进入spark/sbin目录,执行start-all.sh
# 主节点执行
./start-master.sh
# 从节点执行 # 或者是执行,注意7077是根据你打开的网页上显示的端口来的,slave启动成功会在网页上的worker显示对应的数量,一个从节点就是1,两个从节点就是2
./start-slave.sh spark://主节点的hostname:7077
# 启动历史服务
./start-history-server.sh
# 验证,输入网址
http://主节点名:8080
# 输入jps
jps
# 进入spark/bin目录,在命令行中运行Spark,使用.pyspark来进入,指定master
./pyspark --master spark://Node1:7077
# 运行由spark写的程序,采用./spark-submit来
./spark-submit --master spark://Node1:7077 /usr/spark/examples/src/main/python/pi.py 1000

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

3. Spark YARN

1.主从节点都基于standalone,只要在主节点的spark.env.sh文件下加入以下内容:

HADOOP_CONF_DIR=/xxx/hadoop/etc/hadoop
YARN_CONF_DIR=/xxx/hadoop/etc/hadoop
  1. 启动hadoop和yarn即可(spark就无需启动了),使用./start-all.sh
  2. 执行 spart/bin/pyspark --master yarn
    在这里插入图片描述
  3. 在Hadoop的yarn集群上查看下,http://主机名:18088
    在这里插入图片描述

四. Pycharm本地连接与远程连接服务器配置

1. 本地windows连接

请自行去找教程

2. 远程连接服务器配置

  1. 打开pycharm创建一个项目,虚拟环境随便创建一个或者使用1中的本地虚拟环境。
  2. 点击pycharm右下角的编辑环境,弹出框,选择框中右上角的设置符号,选择add操作。
  3. 选择SSH 配置,输入主机名、用户名点击下一步。
  4. 输入用户的密码。
  5. 输入服务器上环境配置的路径,修改为对应路径,如/home/ywb/anaconda3/envs/pyspark/bin/python,注意python一定不能漏。

图1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 查看远程服务器将本地项目上传存储的位置,tools–>deployment–>configuration
    在这里插入图片描述
    在这里插入图片描述
PySpark 程序运行错误问题可能出现

1. 程序1

# 程序1
# coding:utf-8
# 第一行,防止中文乱码
from pyspark import SparkConf, SparkContext
# 第3行,导入包

if __name__ == '__main__':
    conf = SparkConf().setMaster('local[*]').setAppName('WordCountHelloWorld')
    # 第7行,通过SparkConf对象构建SparkContext对象
    sc = SparkContext(conf=conf)

问题1

# 上述程序可能会报这个错误,原因是由于没有设置JAVA_HOME
JAVA_HOME is not set
RuntimeError: Java gateway process exited before sending its port number

# 解决办法1:一劳永逸
1. Pycharm-->Run-->edit Configurations --> Enviroment variables 的文件图标 --> 点击+ --> 添加JAVA_HOME环境变量,保存。
2. 重新运行下程序,则不会报错。

# 解决办法2: 临时,在程序首行加入一下两行代码,jdk路径是你自己的路径,不要写成我的。
import os
os.environ['JAVA_HOME'] = "/usr/java/jdk/jdk8" 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 程序2

# coding:utf-8
# 第一行,防止中文乱码
from pyspark import SparkConf, SparkContext
# 第3行,导入包

if __name__ == '__main__':
    conf = SparkConf().setMaster('local[*]').setAppName('WordCountHelloWorld')
    # 第7行,通过SparkConf对象构建SparkContext对象
    sc = SparkContext(conf=conf)

    # 需求:wordcount单词计数,读取HDFS上的words.txt文件,对其内部中单词统计出现次数
    # 读取文件

    # 如果没有这个文件,注意,这里的端口号是hadoop中core-site.xml的端口号,则不是hdfs web界面的端口号
    # 注意:如果首次修改运行出错,则多运行几次就好,可能是hadoop没响应过来
    # 因为我这里的core-site.xml设置的是18080,所以填18080,如果是9000,则写9000即可
    # file_rdd = sc.textFile('hdfs://Node1:9000/data/words.txt')
    # 第二种读远程服务器的hdfs下的文件,直接下远程文件下的绝对路径即可
    # file_rdd = sc.textFile('/tmp/pycharm_project_640/data/input/words.txt')

    # 注意,这里尽量写绝对路径,相对路径可能会报错
    file_rdd = sc.textFile('C:/Users/ywb/PycharmProjects/SparkStudy/data/input/words.txt')

    # 将单词进行切割,得到一个存储全部单词的集合对象
    words_rdd = file_rdd.flatMap(lambda line: line.split(' '))

    # 将单词转化为元组对象
    words_with_one_rdd = words_rdd.map(lambda x: (x, 1))

    # 将元组的value 按照key来分组,对所有的value执行聚合操作
    result_rdd = words_with_one_rdd.reduceByKey(lambda a, b: a+b)

    # 通过collect方法手机RDD的数据并打印输出结果
    print(result_rdd.collect())

运行成功
在这里插入图片描述
问题2

# 报错
py4j.protocol.Py4JJavaError: An error occurred while calling o23.partitions.
: org.apache.hadoop.fs.UnsupportedFileSystemException: No FileSystem for scheme "C"

# 解决办法1
多运行几次,可能是hadoop没响应过来
# 解决办法2
重启下pycharm,再运行即可
# 解决办法3
查看core-site.xml中的端口,看与程序中的端口是否一致,不一致则修改,让二者保持一致。

问题3

如果修改了文件内容,或者其他内容,导致输出结果依旧是上一次执行的结果,这样可以通过以下方式解决:
重启下pycharm即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习笔记-Spark环境搭建与使用 的相关文章

  • hadoop 连接在端口 9000 上被拒绝

    我想设置一个伪分布式模式的hadoop集群进行开发 由于端口 9000 上的连接被拒绝 尝试启动 hadoop 集群失败 这些是我的配置 非常标准 站点核心 xml
  • Spark 作业在 YARN 模式下失败

    我有一个用 Scala 编写的 Spark 程序 它从 HDFS 读取 CSV 文件 计算新列并将其保存为 parquet 文件 我正在 YARN 集群中运行该程序 但每次我尝试启动它时 执行程序都会在某个时候失败并出现此错误 您能帮我找出
  • S3和EMR数据局部性[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 MapReduce 和 HDFS 的数据局部性非常重要 Spark HBase 也是如此 我一直在研究 AWS 以及在云中部署集群时的两个选项
  • HIVE JDBC ThriftHive$Client.sendBase

    我在 Hadoop hive 上工作 我已经安装了 hadoop 和 hive 它在命令提示符下运行良好 我还创建了 hive 的 MySQL 元存储 我在 hive site xml 文件中定义了 HIVE DB 数据库名称 MySQL
  • 从 HDFS 到 Amazon S3 的 Hadoop distcp 问题

    我正在尝试使用以下方法将数据从 HDFS 移动到 S3distcp The distcp作业似乎成功了 但在 S3 上 文件未正确创建 有两个问题 文件名和路径不会被复制 所有文件最终都为block
  • Hadoop 性能

    我安装了hadoop 1 0 0并尝试了字数统计示例 单节点集群 完成时间为 2 分 48 秒 然后我尝试了标准的 Linux 字数统计程序 该程序在同一组 180 kB 数据 上运行只需 10 毫秒 是我做错了什么 还是 Hadoop 非
  • 大师必须从纱线、火花开始

    当我想要运行 SparkPi 示例时 我收到此错误 beyhan beyhan spark 1 2 0 bin hadoop2 4 home beyhan spark 1 2 0 bin hadoop2 4 bin spark submit
  • HBase 作为 Web 应用程序后端

    任何人都可以建议将 HBase 作为基于 Web 的应用程序的主要数据源是否是一个好主意 我主要关心的是 HBase 对查询的响应时间 是否有可能实现亚秒级响应 编辑 有关应用程序本身的更多详细信息 数据量 约500GB文本数据 预计很快将
  • java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0

    我无法解决这个异常 我已经阅读了 hadoop 文档以及我能找到的所有相关的 stackoverflow 问题 我的 fileSystem mkdirs 抛出 Exception in thread main java lang Unsat
  • Kafka Streams 在 HDFS 上查找数据

    我正在使用 Kafka Streams v0 10 0 1 编写一个应用程序 并希望通过查找数据来丰富我正在处理的记录 该数据 带时间戳的文件 每天 或每天 2 3 次 写入 HDFS 目录 我怎样才能将其加载到Kafka Streams应
  • Hadoop YARN 作业陷入映射 0% 并减少 0%

    我正在尝试运行一个非常简单的作业来测试我的 hadoop 设置 所以我尝试使用 Word Count Example 它陷入了 0 所以我尝试了一些其他简单的作业 并且每个作业都陷入了困境 52191 0003 14 07 14 23 55
  • 在 Hive 中获取空值 使用 REGEX 创建和加载查询

    我有一个日志文件 我需要在其中使用 REGEX 存储数据 我尝试了下面的查询 但加载了所有 NULL 值 我已经检查了 REGEXhttp www regexr com http www regexr com 它对我的 数据工作正常 CRE
  • 在hbase中创建表

    我是 hbase 和 hadoop 的新手 无论如何 我已经成功建立了一个由3台机器组成的hadoop集群 现在我需要一些帮助来建立数据库 我有一个表 评论 包含字段 user id comments 对评论的评论 可以多个 和状态字段相同
  • 在 Zookeeper 中创建路径的最有效方法,其中路径的根元素可能存在也可能不存在?

    想象一条路径 root child1 child2 child3 想象一下 在动物园管理员中 可能存在其中的一部分 比如 root child1 Zookeeper 中没有等效的 mkdir p 此外 如果任何一个操作失败 ZooKeepe
  • Hive 上的自定义 MapReduce 程序,规则是什么?输入和输出怎么样?

    我被困了几天 因为我想根据我在 hive 上的查询创建一个自定义的地图缩减程序 在谷歌搜索后我发现没有太多例子 而且我仍然对规则感到困惑 创建自定义 MapReduce 程序的规则是什么 映射器和减速器类怎么样 任何人都可以提供任何解决方案
  • java.io.IOException:无法获取 LocationBlock 的块长度

    我正在使用 HDP 2 1 对于集群 我遇到了以下异常 并且 MapReduce 作业因此失败 实际上 我们定期使用 Flume 版本的数据创建表 1 4 我检查了映射器尝试读取的数据文件 但我找不到任何内容 2014 11 28 00 0
  • 在 Hive 中分解一行 XML 数据

    我们将 XML 数据作为名为 XML 的单个字符串列加载到 Hadoop 中 我们正在尝试检索数据级别 并将其标准化或分解为单行进行处理 你知道 就像表格一样 已经尝试过分解功能 但没有得到我们想要的 示例 XML
  • 如果 HBase 不是运行在分布式环境中,它还有意义吗?

    我正在构建数据索引 这将需要以形式存储大量三元组 document term weight 我将存储多达几百万个这样的行 目前我正在 MySQL 中将其作为一个简单的表来执行 我将文档和术语标识符存储为字符串值 而不是其他表的外键 我正在重
  • Sqoop mysql错误-通信链路故障

    尝试运行以下命令 sqoop import connect jdbc mysql 3306 home credit risk table bureau target dir home sqoop username root password
  • 是否值得购买 Mahout in Action 以跟上 Mahout 的速度,或者还有其他更好的来源吗?

    我目前是一个非常随意的用户阿帕奇马胡特 http mahout apache org 我正在考虑购买这本书象夫在行动 http www manning com owen 不幸的是 我很难理解这本书的价值 并且认为它是一本曼宁早期访问计划 h

随机推荐

  • Java特训的第一天——开篇

    我是一名刚入门的Java菜鸟 我选择Java的原因是因为其语法简单 功能强大 从web 到桌面 到嵌入式 无所不能 下面我将谈一谈我对Java语言的认识 Java语言概述 关于Java的介绍网上有很详细的阐述 我在这里就不再细述了 下面只简
  • 非谓语动词

    文章目录 1 to 动词原形或动词原形 ing 1 1 动词不定式 1 2 动名词 2 假主语 真主语和不定式 动名词的否定式 2 1 形式主语 2 2 形式宾语 2 3 动名词或不定式否定 3 to不定式表示目的 4 常见的不定式和动名词
  • 【vue网站优化】秒开网页

    vue网站优化 网页渲染速度快到极致 在将打包后的dist目录上传到服务器时 往往会出现首次加载页面速度较慢的情况 以下给出几点优化意见 在路由配置文件中 采用路由懒加载 当打包构建应用时 JavaScript 包会变得非常大 影响页面加载
  • SQL注入的常见方式

    目录 联合查询 union 函数介绍 order by union select 操作 布尔盲注 and or 函数介绍 mid 从中间截取字符 left 从左开始截取字符 ord ascii 转成ascii码 length 统计长度 an
  • 循环嵌套与简单调用

    循环嵌套与简单调用 一 循环嵌套 1 循环嵌套 for 条件初始化 条件判断 条件变化 重复执行的代码 for 条件初始化 条件判断 条件变化 重复执行的代码 重复执行的代码 特点 外层循环执行一次 内层小循环执行一轮 从开始到结束 外层循
  • C0202 [2010普及组-A]数字统计(C语言写)

    题目描述 请统计某个给定范围 L R 的所有整数中 数字 2 出现的次数 比如给定范围 2 22 数字 2在数 2 中出现了 1 次 在数 12 中出现 1 次 在数 20 中出现 1 次 在 数 21中出现 1 次 在数 22 中出现 2
  • QT5.15编译2

    准备工作 必须 第一步 Qt 源码下载 https download qt io official releases qt Qt Creator 源码下载 https download qt io official releases qtc
  • RabbitMQ重复消费

    文章目录 前言 重复消费问题 方法一 消息幂等性 方法二 消息去重 前言 解决 RabbitMQ 重复消费问题是消息队列应用中非常重要的一部分 在实际应用中 可能会出现消费者因某种原因 例如网络问题 应用崩溃等 在处理消息时失败 然后重新开
  • 4.2.1测试网络基础结构配置

    测试网络基础结构配置 ID WSTG CONF 01 总结 互连和异构 Web 服务器基础结构 可能包括数百个 Web 应用程序 的内在复杂性使得配置管理和审查成为测试和部署每个应用程序的基本步骤 只需要一个漏洞就可以破坏整个基础架构的安全
  • HTTP(GET/POST)请求过程中的编码问题

    一 问题 编码问题是JAVA初学者在web开发过程中经常会遇到问题 网上也有大量相关的文章介绍 但其中很多文章并没有对URL中使用了中文等非ASCII的字 符造成服务器后台程序解析出现乱码的问题作出准确的解释和说明 本文将详细介绍由于在UR
  • MATLAB中的eps的详细解释及用法

    1 首先 eps是一个函数 它表示的是一个数可以分辨的最小精度 默认时它表示1到它下一个浮点数之间的距离的一半 而正好等于最大小于1的浮点数到最小大于1的浮点数之间的距离 eps 2 2204e 16 下面是eps的默认精度 注 以下演示环
  • git高级用法之rebase

    rebase的高级用法 这里介绍两种高级用法 1 合并连续的或者不连续的两个提交记录 删除任意一个提交记录 改变提交记录的先后顺序 2 通过rebase合并分支 合并连续的两个提交 如下图的场景 gl是git log的缩写 不过也没这么简单
  • mybatis 循环集合查询

    数据库语句为 select from user where 张三 李四 王五 那么想用mybatis Mapper y entity 定义一个集合属性作为参数 private List searchName dao层 定义一个映射mappe
  • 使用MobaXterm连接到远程服务器

    仅供参考 文章目录 TOC 文章目录 一 前期准备 二 步骤 1 点击上册工具栏的Session 在弹出的窗口里选择SSH 2 点击Network settings 再点击中间的jump host 3 在弹出界面填入所需信息 并点击OK保存
  • 云原生服务更换二进制调测方法

    当前我们开发的服务基本都是云原生的服务 都跑在容器中 在开发过程中 想更换二进制文件调测就相当麻烦了 今天写了一个脚本 供大家参考 bin bash set ex appName testApp appPath home appName c
  • SpringBoot整合Druid-Mybatis&SpringSecurity使用

    SpringBoot整合JDBC 创建springBoot项目时首先需要导入JDBC的支持 以及MySQL驱动
  • Vim编辑器常用命令

    Vim编辑器常用命令 Vim三种工作模式 命令模式 输入模式和编辑模式 Vim打开文件 Vim快捷方向键和以单词为单位移动 Vim插入文本 Vim查找文本 Vim替换文本 Vim删除文本 vim复制和粘贴文本 Vim保存退出文本 Vim光标
  • timestamp相减的函数 java_DB2中TIMESTAMP字段的计算

    以下内容是对 DB2 基础 日期和时间的使用 的内容进行的摘要与精练 遗憾的是 本文参考的原文已经被IBM DeveloperWorks删掉了 暂时还没找到 1 在SQL中使用DB2中的寄存器获取数据库服务器当前时间戳SELECT curr
  • 如何用ps把蓝底照片换成白色的

    用ps把蓝底照片换成白色的的具体步骤为 1 打开换白底的照片 菜单栏 调整 替换颜色 打开这个工具 2 认真看下图的圆圈所指的地方 点一下这个结果色块 我们选择一个白色色彩 3 有一个关键的一个点 就是一定要保证明度是100的 这样才会出现
  • 学习笔记-Spark环境搭建与使用

    一 20 04 Ubuntu安装 清华源ISO源 https mirrors tuna tsinghua edu cn ubuntu releases 20 04 下载链接 https mirrors tuna tsinghua edu c