Hadoop环境搭建及常见问题解决(保姆级教程)

2023-11-16

Hadoop环境搭建及常见问题解决


学习大数据的路上,肯定少不了Hadoop的陪伴。

在学习Hadoop之初,一件"痛苦"的事情莫过于装环境,没有环境,练不了HDFS命令,写不了MapReduce程序,后续的HBase、Hive无从下手。

为了学好Hadoop,于是下决心,一定把环境装好,于是,跟着老师做,跟着网上学,别人都顺理成章、一气呵成;而轮到自己时,总在怀疑自己的眼睛、自己的手、自己的电脑、自己的…

  1. 软件或者系统版本与老师不一致
  2. 没有完全跟着老师做,比如老师用的用户名是user1, 而你总想取自己的名字zhangsan,结果在后面配置相应的目录时出错了
  3. 在安装的过程中漏掉了某些细节,比如老师随手切换了目录,而你还在原目录中,纠结为什么ls出来的内容与老师的不同…
  4. 失误导致的错,比如在格式化HDFS时,hdfs namenode -format ,而你写的是hdfs namenode-format ,一个空格,敲出了两种境界

对初学者的建议:掌握整体过程及每一步的作用,按部就班的操作,仔仔细细的核对。

本教程按如下顺序进行:

【资源准备】 => 【环境准备】 => 【JDK的安装】 => 【Hadoop的安装】 => 【伪分布式的配置】 => 【启动与测试】 => 【常见错误及解决办法】

零、资源准备

  • 虚拟机相关:
    • vmware:vmware_177981.zip
    • ubuntu18-desktop:ubuntu-18.04.5-desktop-amd64.iso
  • Hadoop相关
    • jdk1.8:jdk-8u261-linux-x64.tar.gz
    • hadoop2.7.7:hadoop-2.7.7.tar.gz
  • 辅助工具
    • putty:putty.exe
    • winscp:WinSCP-5.19.5-Portable.zip
链接:https://pan.baidu.com/s/1kjcuNNCY2FxYA5o7Z2tgkQ 
提取码:nuli 

除了vmware(你懂的…),以上资源均来源于官网,putty和winscp都是便捷式软件,无需安装

一、环境准备

1. 安装虚拟机

本教程使用vmware安装ubuntu18.05系统

系统设置

CPU选择2核心;内存使用2-4G; 硬盘选择50G以上,动态分配

具体步骤可参考:

https://blog.csdn.net/tangyi2008/article/details/120311293

当然你可以选用其他的虚拟机,比如使用VBox作为虚拟机软件,同样,操作系统可以选CentOS等其他Linux系统。

如果是小白,建议严格按这里的步骤

2. 环境准备

1) 创建新用户xiaobai

为了避免不必要的麻烦,这里统一用户名,创建一个新用户xiaobai

创建用户

sudo useradd -m xiaobai -s /bin/bash

使用sudo命令,需要需要输入当前用户的登录密码才能创建;密码输入后如果没任何提示,说明创建成功

如果提示useradd: user 'xiaobai' already exists, 表明这个用户名已经存在

设置密码

sudo passwd xiaobai

设置密码

密码尽量使用简单易记的,比如123456,毕竟我们只是在学习,没有多少机密文件值得你设置自己都记不清的密码。

设置密码的时候,光标不会跳(千万不要以为键盘坏了☺

当你看到password updated successfully,表示密码设置成功

为xiaobai增加管理员权限

为了方便部署,避免一些对新手来说比较棘手的权限问题,这里为xiaobai增加管理员权限

sudo adduser xiaobai sudo

添加sudo权限

当然也可以修改文件/etc/sudoers(对于新手无需理会)

切换到用户xiaobai

su - xiaobai

su命令加参数-的目的是切换用户的同时,会切换到相应用户的Home目录

这里输入的密码是刚刚为xiaobai用户设置的密码

2) 安装ssh-server

sudo apt install openssh-client openssh-server

这里使用了sudo命令,输入的密码是xiaobai用户的密码

3) 上传相关资源

在Home目录下创建soft目录,使用winscp上传jdk和hadoop到soft目录

cd
mkdir soft

查看虚拟机ip

ip a

查看ip地址

具体的ip地址以你命令输出为准。

创建连接

解压WinSCP-5.19.5-Portable.zip,打开WinSCP.exe,设置相应的连接参数,然后点Login进行连接。

WinSCP连接设置

上传文件

将本地目录(左边)需要上传的文件拖入虚机机相应目录。

WinSCP文件上传

[4)] 使用putty连接服务器

这一步不是必须的操作,使用putty主要是通过ssh连接虚拟机,进行远程操作而不需要进入虚拟机,相应的替代品有Xshell、secureCRT等

打开putty.exe,设置相应的连接。

putty连接设置

5)设置主机名

修改主机名为node1

sudo hostname node1

如果提示[sudo] password for xiaobai: ,表示要执行sudo命令,需要输入xiaobai的登录密码,后面出现类似情况不再介绍

上面命令修改的主机名是临时生效,当虚拟机重启会恢复成原来的主机名,这里修改配置文件使用其永久修改。打开hostname文件, 配置hostname为node1。

sudo vi /etc/hostname

注意,对于小白,如果不想用vi命令,可以使用sudo gedit /etc/hostname打开类似windows上的记事本进行文件的编辑,后面类似情况自行处理。

简单使用方式:进入文件后,输入字母i进入插入模式 => 修改文件内容为node1 => 按Esc键进入命令行模式 => 输入:进入底行模式 => 输入x或者wq保存推出。

如果文件修改后不想保存,进行底行模式后输入q!进行不保存退出。

打开hosts文件配置hosts

sudo vi /etc/hosts

修改hosts文件

6)检查和关闭防火墙

打开终端,安装防火墙管理工具。命令:

sudo apt install ufw

查看防火墙状态。命令:

sudo ufw status

可以看出默认为关闭

查看防火墙状态

若未关闭,使用下面的命令进行防火墙关闭

sudo ufw disable

7)设置免密登录

生成密钥对

ssh-keygen -t rsa

生成密钥对

拷贝公钥到主机

ssh-copy-id -i ~/.ssh/id_rsa.pub  node1

拷贝公钥

测试免密登录是否成功,

如果没有提示输入密码,则免密登录成功

ssh node1

ssh登录节点

二、安装JDK

注意:在Home目录(可以使用~表示Home目录)下面,创建opt目录,所有要安装的软件都放在这个目录

将jdk上传到~/soft目录,确保文件已经上传,输入命令ls ~/soft进入验证

查看目录

接下来解压文件

mkdir ~/opt
tar -xvf ~/soft/jdk-8u261-linux-x64.tar.gz  -C ~/opt

设置软连接

cd ~/opt
ln -s jdk1.8.0_261/ jdk

配置环境变量,打开bash配置文件

cd 
vi .bashrc

i进入插入模式,在末尾添加如下代码,然后按esc退出编辑,输入:x保存

export JAVA_HOME=/home/xiaobai/opt/jdk
export PATH=$PATH:$JAVA_HOME/bin

输入以下命令使修改生效,可用java命令验证配置是否成功

source .bashrc
java

java命令

三、安装Hadoop

请确保前面已经将hadoop的压缩包上传到了~/soft目录,使用命令ls ~/soft

查看目录

解压文件

tar -xvf ~/soft/hadoop-2.7.7.tar.gz -C ~/opt

设置软连接

cd ~/opt
ln -s hadoop-2.7.7/ hadoop

配置环境变量

使用命令vi ~/.bashrc打开配置文件,添加以下代码到文件末尾,步骤与配置JDK环境变量相同

export HADOOP_HOME=/home/xiaobai/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

Hadoop目录介绍

ls ~/opt/hadoop

查看目录

Hadoop目录简介:

  • bin: 存放对Hadoop相关服务进行操作的脚本,包括 hadoop, hdfs, …
  • sbin: 存放启动和停止Hadoop相关服务的脚本,比如start-dfs.sh, start-yarn.sh, hadoop-daemon.sh, …
  • etc: 配置文件的目录
  • share: 存放Hadoop的依赖jar包、文档、和官方案例
  • lib: 存放Hadoop的本地库(对数据进行压缩解压缩功能)

修改配置文件hadoop-env.sh

将JAVA_HOME的值改为jdk的绝对路径/home/xiaobai/opt/jdk

vi ~/opt/hadoop/etc/hadoop/hadoop-env.sh

修改JAVA_HOME

保存修改

验证Hadoop是否安装成功

hadoop

hadoop命令

四、配置Hadoop伪分布式

Hadoop主要有三种模式,一般在学习过程中使用伪分布模式基本就可以了

模式 概念 特点 用途
单机模式 Hadoop默认模式 1.没有分布式文件系统HDFS 2.MapReduce处理的是本地Linux的文件数据 一般仅用于本地MapReduce程序的调试
伪分布模式 是在单机上,模拟一个分布式的环境 具备Hadoop的主要功能 常用于调试程序
完全分布式模式 也叫集群模式,是将Hadoop运行在机器上,各个机器按照相关配置运行相应的hadoop守护进程 在多台机器上运行,是真正的分布式环境 常用于生产

主要的配置文件

配置文件 配置内容
hadoop-env.sh 配置与环境相关的参数,比如JAVA_HOME目录
core-site.xml 配置Hadoop集群相关参数
hdfs-site.xml 配置HDFS相关参数
mapred-site.xml 配置MapReduce相关参数
yarn-site.xml 配置YARN相关参数
slaves 配置从节点

在安装的过程中,已经配置了 hadoop-env.sh中的JAVA_HOME参数,接下来分别配置其他5个配置文件

切换到配置文件目录

cd ~/opt/hadoop/etc/hadoop

1. core-site.xml

配置项 说明
fs.defaultFS hdfs://<hostname>:9000 配置默认的文件系统,这里配置NameNode地址,9000是RPC通信端口
hadoop.tmp.dir /home/<用户名>/opt/hadoop/tmp 其他临时目录的父目录

打开core-site.xml文件

vi core-site.xml

在configuration标签中加入以下代码,保存

    <property>
            <name>fs.defaultFS</name>
            <value>hdfs://node1:9000</value>
    </property>
    <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/xiaobai/opt/hadoop/tmp</value>
    </property>

注意:

  • 上面的配置项要配置到<configuration>标签中,后面的配置项类似

  • hadoop.tmp.dir配置的目录一定要是当前用户有控制权限的目录

更多参数请参考官网:https://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-common/core-default.xml

2. hdfs-site.xml

配置项 默认值 说明
dfs.replication 3 数据副本个数,伪分布时设为1
dfs.namenode.name.dir file://${hadoop.tmp.dir}/dfs/name namenode存着数据存放的本地目录
dfs.datanode.data.dir file://${hadoop.tmp.dir}/dfs/data datanode相关数据存放的本地目录

打开hdfs-site.xml文件

vi hdfs-site.xml

往configuration加入设置,保存

    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/xiaobai/opt/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/xiaobai/opt/hadoop/tmp/dfs/data</value>
    </property>

更多参数请参考官网:https://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

3. mapred-site.xml

配置项 默认值 说明
mapreduce.framework.name local MapReduce的执行模式,默认是本地模式,另外可以设置成classic(采用MapReduce1.0模式运行) 或 yarn(基于YARN框架运行).
mapreduce.job.ubertask.enable false 是否允许开启uber模式,当开启后,小作业会在一个JVM上顺序运行,而不需要额外申请资源

默认情况下没有这个配置文件,可以根据样本文件mapred-site.xml.template复制一份。

cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

往configuration加入设置,保存

    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.job.ubertask.enable</name>
        <value>true</value>
    </property>

更多参数请参考官网:https://hadoop.apache.org/docs/r2.7.7/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

4. yarn-site.xml

配置项 默认值 说明
yarn.resourcemanager.hostname 0.0.0.0 ResourceManager的主机名
yarn.nodemanager.aux-services NodeManager上运行的附属服务
yarn.nodemanager.pmem-check-enabled true 是否将对容器强制执行物理内存限制
yarn.nodemanager.vmem-check-enabled true 是否将对容器强制执行虚拟内存限制

打开yarn-site.xml文件

vi yarn-site.xml

往configuration加入设置,保存

    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>

更多参数请参考官网:https://hadoop.apache.org/docs/r2.7.7/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

5. slaves

该文件配置从服务器的地址,一个服务器地址占一行。

打开slaves

vi slaves

将默认的localhost修改成node1

node1

五、启动与测试

1. 格式化

在第一次启动Hadoop时,一定要记得对HDFS进行格式化

hdfs namenode -format

hdfs格式化

2. 启动

start-all.sh

启动hadoop

3. 查看进程

jps

jps查看进程

jps(Java Virtual Machine Process Status Tool)是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。jps命令类似于unix系统里的ps命令(主要是用来显示当前系统的进程情况,有哪些进程以及进程id),它的作用是显示当前系统的java进程情况及进程id。

4. 通过web访问实验总结

在虚拟机中,使用浏览器打开如下两个网址,可以查看HDFS的NameNode和YARN的ResourceManager相关信息

node1:50070
node1:8088

NameNode网页

YARN网页

5. 测试

使用hdfs命令上传一个文件到HDFS文件系统

#切换到Home目录
cd

#编辑一个本地文件,比如输入:a b c a a a b
vi test.txt

#上传到HDFS根目录
hdfs dfs -put test.txt /

运行mapreduce示例代码,进行词频统计

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /test.txt  /output

运行MapReduce示例程序

查看运行结果

#查看输出目录
hdfs dfs -ls /output

#查看输出内容
hdfs dfs -cat /output/part*

查看MapReduce输出结果

至此,表明你的Hadoop伪分布式搭建完成!!!

如果有错误,可以查看第六部分内容:常见问题及解决方案

6. Hadoop启动服务总结

在第2步中,我们启动Hadoop时使用的start-all.sh, 在下面的提示信息中显示 This script is Deprecated,也就是说这个启动脚本是被弃用的状态,并且建议我们Instead use start-dfs.sh and start-yarn.sh

下面就Hadoop的服务启动进行简单的总结:

1)整体启动和关闭

start-all.sh
stop-all.sh

2)各个服务组件逐一启动/停止

(1)分别启动/停止HDFS组件

hadoop-daemon.sh start / stop namenode / datanode / secondarynamenode

(2)启动/停止YARN

yarn-daemon.sh start / stop resourcemanager / nodemanager

3) 各个模块分开启动/停止

(1)整体启动/停止HDFS

start-dfs.sh
stop-dfs.sh

(2)整体启动/停止YARN

 start-yarn.sh 
 stop-yarn.sh

六、常见错误及解决办法

1. 出现command not found错误

start-all命令找不到

1)检查~/.bashrc文件中是否配置了正确的PATH

2)如果~/.bashrc设置正确,是否没有执行source ~/.bashrc 使环境变量生效

2. 所有命令都运行不了

如果你发现不止安装的程序命令,就连原系统的内置命令都使用不了(比如lsvicat等),很明显,你在修改.bashrc时,将PATH路径设置错了。最常见的是错误就是在设置PATH时,PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin,把$PATH:漏掉了,这就相当于现在的PATH路径只有两个值$HADOOP_HOME/bin$HADOOP_HOME/sbin

解决办法:

1)恢复默认的PATH路径:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

2)修改~/.bashrc文件,检查设置PATH的地方是否漏掉了$PATH:

3. 不小心多次格式化

多次格式化导致DataNode 与 NameNode namespaceID不一致,导致启动HDFS失败,这里告诉最直接暴力的解决办法, 清空$hadoop.tmp.dir这个目录,以本文为例:

stop-all.sh
#本教程配置的hadoop.tmp.dir目录为/home/xiaobai/opt/hadoop/tmp
rm -fr /home/xiaobai/opt/hadoop/tmp

4. NameNode启动不成功

1) NameNode没有格式化

2) 环境变量配置错误

3) Ip和hostname绑定失败,需要通过ip a查看ip地址,重新配置/etc/hosts文件,设置正确的ip和hostname

4)hostname含有特殊符号如.(符号点),会被误解析

5. 万能大法

一切的错误,最好的解决办法是查看日志

Hadoop的默认日志文件目录在$HADOOP_HOME/logs, 比如在本教程中,在~/opt/hadoop/logs

Hadoop日志目录

这里列举两个示例:

1)提示Content is not allowed in prolog错误

Content is not allowed in prolog

这个错误比较明显,显示在core-site.xml文件的第18行第1列有一个字符不认识,使用命令vi查看相应配置,修改即可。注意,这里不建议使用gedit打开文件查看,因为如果有不可见字符,gedit也看不见,难以查错。

2)jps时查看进程少启动了部分服务,比如下面示例中发现没有启动NodeManager

NodeManager没有启动

这种错误最好最直接的方式是查看日志文件,而不是去Baidu,去Google,因为各自的问题都不尽一致,必须找准备病因,才能药到病除。

进入日志目录

cd ~/opt/hadoop/logs
ls

NodeManager属于YARN组件的服务,在ls的结果中可以迅速找到相应的日志文件yarn-xiaobai-nodemanager-node1.log

使用tail命令查看最后50行日志内容:

tail -n 50 yarn-xiaobai-nodemanager-node1.log 

错误日志分析

错误原因为:The ServiceName: mapreduce-shuffle set in yarn.nodemanager.aux-services is invalid.The valid service name should only contain a-zA-Z0-9_ and can not start with numbers。

意思是说服务名无效,只能由 a-zA-Z0-9_ 组成并且不能以数字开始,错误很明显了,错误原因是yarn-site.xml这个配置文件中配置了无效的服务名,打开该配置文件,检查并修改相应配置项即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop环境搭建及常见问题解决(保姆级教程) 的相关文章

  • Hadoop 安全模式恢复 - 花费太长时间!

    我有一个包含 18 个数据节点的 Hadoop 集群 我在两个多小时前重新启动了名称节点 并且名称节点仍处于安全模式 我一直在寻找为什么这可能花费太长时间 但找不到好的答案 发帖在这里 Hadoop 安全模式恢复 花费大量时间 https
  • HDP 3.1.0.0-78 升级后无法使用 ResourceManager UI 终止 YARN 应用程序

    我最近将 HDP 从 2 6 5 升级到 3 1 0 它运行 YARN 3 1 0 并且我无法再使用旧的 8088 cluster apps 或新的 8088 从 YARN ResourceManager UI 终止应用程序 ui2 ind
  • Hive查询快速查找表大小(行数)

    是否有 Hive 查询可以快速查找表大小 即行数 而无需启动耗时的 MapReduce 作业 这就是为什么我想避免COUNT I tried DESCRIBE EXTENDED 但这产生了numRows 0这显然是不正确的 对新手问题表示歉
  • 在 Hadoop 中按文件中的值排序

    我有一个文件 其中每行包含一个字符串 然后是一个空格 然后是一个数字 例子 Line1 Word 2 Line2 Word1 8 Line3 Word2 1 我需要按降序对数字进行排序 然后将结果放入文件中 为数字分配排名 所以我的输出应该
  • Couchbase/hadoop 连接器:sqoop 作业失败“找到接口 org.apache.hadoop.mapreduce.TaskAttemptContext,但需要类”

    我的配置 CouchBase服务器2 0 Sqoop 1 4 2 针对hadoop版本2 0 0编译 堆栈Hadoop CDH4 1 2 我想使用 CouchBase Hadoop 连接器 http www couchbase com de
  • R+Hadoop:如何从HDFS读取CSV文件并执行mapreduce?

    在以下示例中 small ints to dfs 1 1000 mapreduce input small ints map function k v cbind v v 2 MapReduce函数的数据输入是一个名为small ints的
  • 将日期字符串转换为“MM/DD/YY”格式

    我刚刚看到这个例子 我该如何解决这个问题 Hive 元存储包含一个名为 Problem1 的数据库 其中包含一个名为 customer 的表 customer 表包含 9000 万条客户记录 90 000 000 每条记录都有一个生日字段
  • 遍历 ArrayWritable - NoSuchMethodException

    我刚刚开始使用 MapReduce 并且遇到了一个奇怪的错误 我无法通过 Google 回答该错误 我正在使用 ArrayWritable 制作一个基本程序 但是当我运行它时 在Reduce过程中出现以下错误 java lang Runti
  • hadoop中reducer的数量

    我正在学习hadoop 我发现减速器的数量非常令人困惑 1 reducer的数量与partition的数量相同 2 reducer 的数量是 0 95 或 1 75 乘以 节点数 每个节点的最大容器数 3 减速机数量设定为mapred re
  • 如何通过Python访问Hive?

    https cwiki apache org confluence display Hive HiveClient HiveClient Python https cwiki apache org confluence display Hi
  • jq Streaming - 过滤嵌套列表并保留全局结构

    在一个大型 json 文件中 我想从嵌套列表中删除一些元素 但保留文档的整体结构 我的示例将其输入为 但真实的输入足够大以要求流式传输 keep untouched keep this this list filter this keep
  • 带有安全 Kafka 抛出的 Spark 结构化流:无权访问组异常

    为了在我的项目中使用结构化流 我正在 hortonworks 2 6 3 环境上测试 Spark 2 2 0 和 Kafka 0 10 1 与 Kerberos 的集成 我正在运行下面的示例代码来检查集成 我能够在 Spark 本地模式下的
  • 从多个大型 NetCDF 文件中提取数据的快速/高效方法

    我只需要从全局网格中提取特定节点集的数据 由纬度 经度坐标 按 5000 10000 的顺序 给出 这些数据是水力参数的时间序列 例如波高 全局数据集很大 因此分为许多 NetCDF 文件 每个 NetCDF 文件大小约为 5GB 包含整个
  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • 如何创建 HIVE 表来读取分号分隔值

    我想创建一个 HIVE 表 该表将以分号分隔的值读取 但我的代码不断给出错误 有没有人有什么建议 CREATE TABLE test details Time STRING Vital STRING sID STRING PARTITION
  • 我可以在没有 Hadoop 的情况下使用 Spark 作为开发环境吗?

    我对大数据和相关领域的概念非常陌生 如果我犯了一些错误或拼写错误 我很抱歉 我想了解阿帕奇火花 http spark apache org 并使用它仅在我的电脑中 在开发 测试环境中 由于Hadoop包含HDFS Hadoop分布式文件系统
  • hive - 在值范围之间将一行拆分为多行

    我在下面有一张表 想按从开始列到结束列的范围拆分行 即 id 和 value 应该对开始和结束之间的每个值重复 包括两者 id value start end 1 5 1 4 2 8 5 9 所需输出 id value current
  • 处理 oozie 工作流程中的循环

    我有一个 oozie 用例 用于检查输入数据可用性并根据数据可用性触发 MapReduce 作业 所以我编写了一个 shell 脚本来检查输入数据 并在 oozie 中为其创建了一个 ssh 操作 输入数据检查的重试次数和重试间隔应该是可配
  • Hadoop NoSuchMethodError apache.commons.cli

    我在用着hadoop 2 7 2我用 IntelliJ 做了一个 MapReduce 工作 在我的工作中 我正在使用apache commons cli 1 3 1我把库放在罐子里 当我在 Hadoop 集群上使用 MapReduceJob
  • Apache hadoop 版本 2.0 与 0.23

    Hadoop 的版本和发行版太多 让我很困惑 我有几个问题 Apache Hadoop 1 x 是从 0 20 205 开始的 Apache Hadoop 2 0 是从 0 22 还是 0 23 开始 根据这个blogpost http b

随机推荐

  • 【数据结构详细学习笔记2】单链表的定义和表示

    目录 1 单链表基础知识 1 1线性表链式存储结构的特点 1 2 与链式存储有关的术语 1 3链表的类型 1 4表示空表 1 5设置头结点的好处 2 单链表代码实现 附源码 3 实现单链表遇到问题 1 单链表基础知识 1 1线性表链式存储结
  • matlab 算法集锦

    算法集锦 决策树 划分点 function n h huafendian1 x n返回增益 h返回划分点 假设0代表第一类 假设1代表第二类 输入x第一列为属性 第二列为用于学习的分类结果 m sort x 1 按小到大排序 x x m t
  • Guava 之 Multimap

    Multimap 是 guava 包下的一个接口 是一个 key collection 类型的集合 Multimap 接口方法 GwtCompatible public interface Multimap
  • Git rebase变基操作

    先讲个例子理解一下什么是变基 A B C dev D E F G master 两个分支master dev 其中dev分支是在master分支上的提交点E拉出的分支 在两个分支合并之前 master分支有了新的提交F G 此时想在gitl
  • C的泛型编程

    C的泛型编程 C语言支持泛型编程吗 Generic关键字 泛型算法 C99的tgmath h void 指针 总结 泛型编程 generic programming 是程序设计语言的一种风格或范式 泛型允许程序员在强类型程序设计语言中编写代
  • RocketMQ经典高频面试题大全(附答案)

    编程界的小学生 0 彩蛋 1 说说你们公司线上生产环境用的是什么消息中间件 2 多个mq如何选型 3 为什么要使用MQ 4 RocketMQ由哪些角色组成 每个角色作用和特点是什么 5 RocketMQ中的Topic和JMS的queue有什
  • AQS(AbstractQueuedSynchronizer)阻塞队列

    AQS 队列同步器是用来构建锁或其他同步组件的基础框架 它使用一个 volatile int state 变量作为共享资源 如果线程获取资源失败 则进入同步队列等待 如果获取成功就执行临界区代码 释放资源时会通知同步队列中的等待线程 同步器
  • PyTorch YOLOv8入门解读与Python实现

    PyTorch YOLOv8入门解读与Python实现 YOLOv8是一种基于PyTorch框架实现的目标检测算法 它能够快速准确地检测图像中的多个目标 本文将详细解读YOLOv8的原理 并提供相应的Python代码实现 YOLOv8简介
  • Oracle--初学小白基础篇(第一版)

    文章目录 一 Oracle11g介绍 1 Oracle11g安装和卸载 Oracle11g安装 Oracle11g卸载 1 使用Oracle Universal Installer管理工具卸载 2 使用 deinstall bat 批处理文
  • Redis事务、持久化、发布订阅

    文章目录 Redis事务 Redis持久化 RDB Redis DataBase 快照方式 AOF Append Only File 日志形式 Redis发布订阅 发布订阅模型 实例 Redis发布订阅命令 原理 Redis事务 Redis
  • flutter 字符串的常用属性及方法

    1 字符串长度 var str 字符串的长度 print 打印 str length 打印 6 var str1 hello dart print 打印 str1 length 打印 10 2 是否为空 str isEmpty为空true
  • 关于ElasticSearch的Update By Query的那些著名的坑

    提起es的Update By Query很多人一定也不陌生 它对应的就是关系型数据库的update set where 语句 这对应一般的存储引擎而言算是最基本的功能 但它的坑确不少 多到让你使用起来很奔溃 比如批量更新时非事务模式执行 允
  • selenium自动化测试的问题解决及优化

    目录 一 安装出现的问题 1 webdriver has no attribute find element by id 2 gecodriver needs to be in PATH 3 安装了selenium报错has no attr
  • io第一天

    ubuntu ubuntu day1 c cat 8 c include
  • PL/SQL 导入SQL文件时报“Error reading file”

    从另一台机器上导出了一个表的数据 有2万多条 导出的sql文件大小将近40M 之后使用PL SQL的Command Window窗口执行sql文件 执行命令是 SQL文件全路径 提示错误 Error reading file不知道是不是因为
  • 在Ubuntu中安装中文输入法

    文章目录 前言 基础准备 ibus Intelligent Input Bus fcitx Flexible Input Method Framework 前言 Ubuntu中安装中文输入法相比Windows上要复杂不少 其实也不算复杂 就
  • js实现一个表单输入验证,重复字符验证

    logon password check 加班到现在 还是得发个 csdn 本文主要通过一个案例介绍两个东西 正则表达式中 必须含有某类字符的时候对应的 正则写法 在我之前的正则文章中已经写过了 重复字符以及连续字符的判断方式 正则来表示验
  • JavaScript window.location对象

    http www cnblogs com ljan archive 2012 02 27 2369960 html location 地址对象 它描述的是某一个窗口对象所打开的地址 要表示当前窗口的地址 只需要使用 location 就行了
  • nodejs html引用js_nodejs做出最简单的网页服务端。【501】

    一 先去官网下载nodejs 按自己的系统一步一步操作 基本很简单 这里就不多介绍了 二 安装完成后 通过cmd验证是否安装成功 输入node v可以查看版本号 三 用开发工具创建一个js文件 命名为server js 四 开始写js文件
  • Hadoop环境搭建及常见问题解决(保姆级教程)

    Hadoop环境搭建及常见问题解决 零 资源准备 一 环境准备 1 安装虚拟机 2 环境准备 1 创建新用户xiaobai 2 安装ssh server 3 上传相关资源 4 使用putty连接服务器 5 设置主机名 6 检查和关闭防火墙