前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hadoop的安装和使用

Hadoop的安装和使用

作者头像
foochane
发布于 2019-05-23 07:40:07
发布于 2019-05-23 07:40:07
1.3K00
代码可运行
举报
文章被收录于专栏:foochanefoochane
运行总次数:0
代码可运行

1 创建Hadoop用户

1.1 创建新用户

用户名为hadoop,使用/bin/bash作为shell

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo useradd -m hadoop -s /bin/bash
1.2 修改密码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo passwd hadoop
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
1.2 为hadoop用户添加管理员权限
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo adduser hadoop sudo
Adding user `hadoop' to group `sudo' ...
Adding user hadoop to group sudo
Done.

2 安装java环境

2.1 安装
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo apt-get install default-jre default-jdk
2.2 配置环境变量
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ vim ~/.bashrc

后面加入export JAVA_HOME=/usr/lib/jvm/default-java 然后使环境变量生效:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ source ~/.bashrc
2.3 测试java是否安装成功
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ echo $JAVA_HOME
/usr/lib/jvm/default-java
$ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.16.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

3 设置SSH

SSH是Secure Shell的缩写,SSH由客户端和服务端构成,服务端是一个守护进程,在后台运行并相应来自客户端的请求,客户端包含远程复制scp、安全文件传输sftp,远程登录slogin等运用程序。

Ubuntu已经默认安装了SSH客户端,还需要安装SSH服务端。

【注意】:Hadoop并没有提供SSH密码登录的形式,所以需要将所有机器配置为无密码登录。

3.1 安装SSH服务端
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo apt-get install openssh-server
3.2 登录localhost
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:MCT7ubGt3sPlkvS9v//KhAoa7vBO+EVPJN/JXenC8XM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
hadoop@localhost's password: 
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-42-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

243 packages can be updated.
11 updates are security updates.

之后会在~/文件夹下发现一个.ssh文件

3.3 设置为无密码登录
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cd ~/.ssh/
$ ssh-keygen -t rsa  #出现提示直接按enter
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:FaavA0T6j8XH0clbVu0pq5hkad7kADUBibL/76I2U00 hadoop@ubuntu
The key's randomart image is:
+---[RSA 2048]----+
|      o.o.+     o|
|   . + . = + . ..|
|    + . o + + o..|
|   . o o E . = ..|
|    . o S = . o  |
|     . * X . .   |
|      + O B .    |
|     + o = +     |
|    ..+ +o       |
+----[SHA256]-----+
$ cat ./id_rsa.pub >> ./authorized_keys  #加入授权

此时就直接使用$ ssh localhost,无密码登录了。

4 安装Hadoop

Hadoop的安装包括3中模式: (1)单机模式:只在一台机器上运行,存储采用本地文件系统,没有采用分布式文件系统HDFS。 (2)伪分布式模式:存储采用分布式文件系统HDFS,但是HDFS的节点和数据节点都在同一节点。 (2)分布式模式:存储采用分布式文件系统HDFS,而且HDFS的节点和数据节点位于不同机器上。

Hadoop的下载:http://mirrors.cnnic.cn/apache/hadoop/common

4.1 单机模式配置

下载安装包后解压即可使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local
$ cd /usr/local/
$ sudo mv ./hadoop-2.7.1/ ./hadoop      # 将文件夹名改为hadoop
$ sudo chown -R hadoop ./hadoop       # 修改文件权限

查看Hadoop版本信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cd /usr/local/hadoop/bin
$ ./hadoop version
Hadoop 2.7.1
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 15ecc87ccf4a0228f35af08fc56de536e6ce657a
Compiled by jenkins on 2015-06-29T06:04Z
Compiled with protoc 2.5.0
From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.1.jar

Hadoop附带了很多例子,运行如下命令可以查看:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ./hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar
An example program must be given as the first argument.
Valid program names are:
  aggregatewordcount: An Aggregate based map/reduce program that counts the words in the input files.
  aggregatewordhist: An Aggregate based map/reduce program that computes the histogram of the words in the input files.
  bbp: A map/reduce program that uses Bailey-Borwein-Plouffe to compute exact digits of Pi.
  dbcount: An example job that count the pageview counts from a database.
  distbbp: A map/reduce program that uses a BBP-type formula to compute exact bits of Pi.
  grep: A map/reduce program that counts the matches of a regex in the input.
  join: A job that effects a join over sorted, equally partitioned datasets
  multifilewc: A job that counts words from several files.
  pentomino: A map/reduce tile laying program to find solutions to pentomino problems.
  pi: A map/reduce program that estimates Pi using a quasi-Monte Carlo method.
  randomtextwriter: A map/reduce program that writes 10GB of random textual data per node.
  randomwriter: A map/reduce program that writes 10GB of random data per node.
  secondarysort: An example defining a secondary sort to the reduce.
  sort: A map/reduce program that sorts the data written by the random writer.
  sudoku: A sudoku solver.
  teragen: Generate data for the terasort
  terasort: Run the terasort
  teravalidate: Checking results of terasort
  wordcount: A map/reduce program that counts the words in the input files.
  wordmean: A map/reduce program that counts the average length of the words in the input files.
  wordmedian: A map/reduce program that counts the median length of the words in the input files.
  wordstandarddeviation: A map/reduce program that counts the standard deviation of the length of the words in the input files.

下面运行grep程序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cd /usr/local/hadoop
$ mkdir input
$ cp ./etc/hadoop/*.xml ./input   # 将配置文件复制到input目录下
$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
$ cat ./output/*          # 查看运行结果
1       dfsadmin

运行成功后,可以看到grep程序将input文件夹作为输入,从文件夹中筛选出所有符合正则表达式dfs[a-z]+的单词,并把单词出现的次数的统计结果输出到/usr/local/hadoop/output文件夹下。

【注意】:如果再次运行上述命令,会报错,因为Hadoop默认不会覆盖output输出结果的文件夹,所有需要先删除output文件夹才能再次运行。

4.2 伪分布式模式配置

在单个节点(一台机器上)以伪分布式的方式运行。

4.2.1 修改配置文件

需要修改/usr/local/hadoop/etc/hadoop/文件夹下的core-site.xmlhdfs-site.xml 文件。

core-site.xml文件: 将

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
</configuration>

修改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
  • hadoop.tmp.dir用于保存临时文件,如果没有配置这个参数,则默认使用的临时目录为/tmp/hadoo-hadoop,这个目录在Hadoop重启后会被系统清理掉。
  • fs.defaultFS用于指定HDFS的访问地址。

hdfs-site.xml文件修改如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>
  • dfs.replicaion:指定副本数量,在分布式文件系统中,数据通常会被冗余的存储多份,以保证可靠性和安全性,但是这里用的是伪分布式模式,节点只有一个,也有就只有一个副本。
  • dfs.namenode.name.di:设定名称节点元数据的保存目录
  • dfs.datanode.data.dir:设定数据节点的数据保存目录

这里,名称节点和数据节点必须设定。

【注意】:Hadoop的运行方式是由配置文件决定的,如果想从伪分布式模式切换回单机模式,只需删除core-site.xml文件中的配置项即可

4.2.2 执行名称节点格式化

执行如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cd /usr/local/hadoop
$ ./bin/hdfs namenode -format

【错误】:出现Exiting with status 1表示出现错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
19/01/11 18:38:02 ERROR namenode.NameNode: Failed to start namenode.
java.lang.IllegalArgumentException: URI has an authority component
    at java.io.File.<init>(File.java:423)
    at org.apache.hadoop.hdfs.server.namenode.NNStorage.getStorageDirectory(NNStorage.java:329)
    at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournals(FSEditLog.java:276)
    at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournalsForWrite(FSEditLog.java:247)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:985)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1429)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1554)
19/01/11 18:38:02 INFO util.ExitUtil: Exiting with status 1
19/01/11 18:38:02 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1
************************************************************/

【解决】:检查hdfs-site.xml的配置

如果出现/usr/local/hadoop/tmp/dfs/name has been successfully formatted.Exiting with status 0,表示格式化成功。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
19/01/11 18:46:35 INFO common.Storage: Storage directory /usr/local/hadoop/tmp/dfs/name has been successfully formatted.
19/01/11 18:46:36 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
19/01/11 18:46:36 INFO util.ExitUtil: Exiting with status 0
4.2.3 启动Hadoop
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cd /usr/local/hadoop
$ ./sbin/start-dfs.sh

【错误】:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Starting namenodes on [localhost]
localhost: Error: JAVA_HOME is not set and could not be found.
localhost: Error: JAVA_HOME is not set and could not be found.
Starting secondary namenodes [0.0.0.0]

【解决】:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ echo $JAVA_HOME
/usr/lib/jvm/default-java

查看后发现JAVA_HOME路径已经设置,那就只能将/hadoop/etc/hadoop/hadoop-env.sh文件的JAVA_HOME改为绝对路径了。将export JAVA_HOME=$JAVA_HOME改为 export JAVA_HOME=/usr/lib/jvm/default-java

jps命令查看Hadoop是否启动成功,如果出现DataNodeNameNodeSecondaryNameNode的进程说明启动成功。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ jps
4821 Jps
4459 DataNode
4348 NameNode
4622 SecondaryNameNode

如果还要问题,重复如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ./sbin/stop-dfs.sh   # 关闭
$ rm -r ./tmp     # 删除 tmp 文件,注意这会删除 HDFS中原有的所有数据
$ ./bin/hdfs namenode -format   # 重新格式化名称节点
$ ./sbin/start-dfs.sh  # 重启
4.2.4 使用浏览器查看HDFS信息

在浏览器中打开链接:http://localhost:50070/dfshealth.html#tab-overview 即可查看:

4.2.5 运行Hadoop伪分布式实例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cd /usr/local/hadoop
$ ./bin/hdfs dfs -mkdir -p /user/hadoop # 在HDFS中创建用户目录
$ ./bin/hdfs dfs -mkdir input  #在HDFS中创建hadoop用户对应的input目录
$ ./bin/hdfs dfs -put ./etc/hadoop/*.xml input  #把本地文件复制到HDFS中
$ ./bin/hdfs dfs -ls input #查看文件列表
Found 8 items
-rw-r--r--   1 hadoop supergroup       4436 2019-01-11 19:35 input/capacity-scheduler.xml
-rw-r--r--   1 hadoop supergroup       1075 2019-01-11 19:35 input/core-site.xml
-rw-r--r--   1 hadoop supergroup       9683 2019-01-11 19:35 input/hadoop-policy.xml
-rw-r--r--   1 hadoop supergroup       1130 2019-01-11 19:35 input/hdfs-site.xml
-rw-r--r--   1 hadoop supergroup        620 2019-01-11 19:35 input/httpfs-site.xml
-rw-r--r--   1 hadoop supergroup       3518 2019-01-11 19:35 input/kms-acls.xml
-rw-r--r--   1 hadoop supergroup       5511 2019-01-11 19:35 input/kms-site.xml
-rw-r--r--   1 hadoop supergroup        690 2019-01-11 19:35 input/yarn-site.xml
$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
....
$ ./bin/hdfs dfs -cat output/* #查看运行结果
1   dfsadmin
1   dfs.replication
1   dfs.namenode.name.dir
1   dfs.datanode.data.dir

再次运行需要删除output文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ./bin/hdfs dfs -rm -r output    # 删除 output 文件夹
4.2.6 关闭Hadoop

使用命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./sbin/stop-dfs.sh

下次启动时不需要再执行节点格式化命令(否则会报错),只需要直接运行start-dfs.sh命令即可。

5 总结

hadoop的安装步骤: 1 创建Hadoop用户 2 安装java环境 3 设置SSH 4 修改配置文件修改/usr/local/hadoop/etc/hadoop/文件夹下的core-site.xmlhdfs-site.xml 文件 5 相关命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cd /usr/local/hadoop
$ ./bin/hdfs namenode -format #格式化名称节点 (这个命令只需只需一次)
$ ./sbin/start-dfs.sh  #启动Hadoop
$ jps #查看Hadoop是否成功启动
$ ./sbin/stop-dfs.sh   # 关闭Hadoop
$ rm -r ./tmp     # 删除 tmp 文件,注意这会删除 HDFS中原有的所有数据
$ ./sbin/start-dfs.sh  # 重启
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.01.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
T-SQL进阶:超越基础 Level 2:编写子查询
By Gregory Larsen, 2016/01/01 (首次发布于: 2014/01/29) 关于系列 本文属于进阶系列:T-SQL进阶:超越基础 跟随Gregory Larsen的T-SQL DML进阶系列,其涵盖了更多的高级方面的T-SQL语言,如子查询。 在您开始创建超出基本Transact-SQL语句的更复杂的SQL代码时,您可能会发现需要使用其他SELECT语句的结果来限制查询。 当在父Transact-SQL语句中嵌入SELECT语句时,这些嵌入式SELECT语句被称为子查询或相关子查询。
Woodson
2018/07/18
6.5K0
触发器
一:什么是触发器 触发器是一种响应特定事件的特殊类型的存储过程 insert update... drop alter...等事件都有相应的触发器 二:简单的触发器 下面一个例子是在插入或者修改记录的时候的一个触发器 其中inserted表是一个临时表 存储的是将要插入的信息 这个触发器的目的是检查将要插入的信息是否符合规定 (在product表里没有特殊的记录) 这个例子是check约束所不能解决的了的
liulun
2022/05/08
1.4K0
一定是最适合你的后端面试指南
不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的,我这个“有章可循”说的意思只是说应对技术面试是可以提前准备。 我其实特别不喜欢那种临近考试就提前背啊记啊各种题的行为,非常反对!我觉得这种方法特别极端,而且在稍有一点经验的面试官面前是根本没有用的。建议大家还是一步一个脚印踏踏实实地走。
后端技术探索
2019/07/19
1.5K1
一定是最适合你的后端面试指南
万字详文告诉你如何做 Code Review
作者:cheaterlin,腾讯 PCG 后台开发工程师 前言 作为公司代码委员会 golang 分会的理事,我 review 了很多代码,看了很多别人的 review 评论。发现不少同学 code review 与写出好代码的水平有待提高。在这里,想分享一下我的一些理念和思路。 为什么技术人员包括 leader 都要做 code review 谚语曰: 'Talk Is Cheap, Show Me The Code'。知易行难,知行合一难。嘴里要讲出来总是轻松,把别人讲过的话记住,组织一下语言,再
腾讯技术工程官方号
2020/06/18
4.2K0
牛客面经 |这可能不只是一篇面经
这可能不只是一篇面经 作者:_XiaoTeng_ 来源:牛客网 【这可能不只是一篇面经】 精 写了个显眼的标题,就真得说几句有用的话。 5月份一个很偶然的机会,加了叶神的微信,还收到了祝福。一激动就承诺说写篇最详细的面经分享给大家,毕竟用了这么久的牛客网,收获真的很大。 校招真的是段劳心伤神的经历,我把这一路的体会,写在秋招前,也许能给那些和我一样迷茫过,怀疑过,失落过的人一些帮助。 (这篇文章有点长,可能需要点耐心) 0. 写在之前 首先呢我的面试经历和一些面霸和收割机的大
java思维导图
2018/04/08
3.3K0
ggplot2的作者Hadley Wickham拿了"统计学界的诺贝尔奖"
|| 原文来源:统计之都 (https://mp.weixin.qq.com/s/dbVJoUtHk3ORrQbNp7IypQ)
生信宝典
2019/08/12
1.6K0
[Python从零到壹] 一.为什么我们要学Python及基础语法详解
欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。
Eastmount
2021/02/05
6100
[Python从零到壹] 一.为什么我们要学Python及基础语法详解
从原理到策略算法再到架构产品看推荐系统 | 附Spark实践案例
作者 | HCY崇远 01 前言 本文源自于前阵子连续更新的推荐系统系列,前段时间给朋友整理一个关于推荐系统相关的知识教学体系,刚好自身业务中,预计明年初随着业务规模增长,估摸着又要启动推荐相关的项目了,所以也是趁机把相关的知识结构梳理了一遍。这这里重新做整理,并额外做了一些增减,让整体逻辑会更通顺一点。 整个文章的结构逻辑,先从推荐系统的基础知识结构讲起,然后由浅入深过渡到几个推荐策略算法上,并且为每个推荐策略算法提供一些简单的入门Spark案例代码,再从策略过渡到系统层级,包括数据架构、策略组合
CSDN技术头条
2018/02/06
2K0
从原理到策略算法再到架构产品看推荐系统 | 附Spark实践案例
还记得当年踏上信安之路的初衷吗
一年前在信安之路的交流群里做了一个活动:在我们这个信息安全的圈子里,渗透测试仅仅是安全中的一个很小的分支,虽说这个圈子的缺口很大,但是为什么一直补不上这个缺口呢?
信安之路
2019/03/12
2.4K0
程序员的英语学习指南
对程序员来说,“渣英语”可是限制自己更上一层楼的重要阻碍。不仅阅读最新英文研究与教程困难,去国际顶会与别人开口交流也成了问题。
量子位
2019/04/24
1.4K0
程序员的英语学习指南
fast.ai 机器学习笔记(四)
这个想法是我们有一些数据(x),然后我们对这些数据做一些操作,例如,我们用一个权重矩阵乘以它(f(x))。然后我们对这个结果做一些操作,例如,我们通过 softmax 或 sigmoid 函数处理它(g(f(x)))。然后我们对这个结果做一些操作,比如计算交叉熵损失或均方根误差损失(h(g(f(x))))。这将给我们一些标量。这里没有隐藏层。这有一个线性层,一个非线性激活函数是 softmax,一个损失函数是均方根误差或交叉熵。然后我们有我们的输入数据。
ApacheCN_飞龙
2024/02/11
1720
fast.ai 机器学习笔记(四)
爱英文的程序员运气不会太差:史上最全程序员英语进阶指南
经作者授权转载 作者 | han 你渴望尝试新的技术: GraphQL, Figma, MobX; 你耐心等待优秀的中文翻译: 等待,等待,还是等待; 你来者不拒地寻找提高英语水平的最佳方法: 疯狂英语,红宝书,玄学; 我这里有本“葵花宝典”…… 英语水平等级示意图: 本图主要参考 http://www.coe.int/en/web/common-european-framework-reference-languages/table-1-cefr-3.3-common-reference-levels-g
大数据文摘
2018/05/24
3.7K0
JAVA高频216道面试题+答案!!面试必备
  在本篇文章开始之前,我想先来回答一个问题:我为什么要写这样一篇关于面试的文章?原因有三个:第一,我想为每一个为梦想时刻准备着的“有心人”,尽一份自己的力量,提供一份高度精华的 Java 面试清单;第二,目前市面上的面试题不是答案不准确就是内容覆盖面太窄,所以提供一份经典而又准确的面试题是非常有必要的;第三,本文会对部分面试题提供详细解读和代码案例,让读者知其然并知其所以然,从而学到更多的知识。
陈哈哈
2021/10/13
1.2K0
ffmpeg 入门_python入门笔记
最近在读《FFmpeg从入门到精通》这本书,结合着雷神的博客,学习音视频的知识~ 在学习的过程中,也记录了一些摘要。因为是边看边记的,所以一些要点在看到后面的时候,需要反过来整理前面的。我用有道云笔记写的markdown没法加图片,所以就先把这部分发了出来。后续会针对内容和排版一步步的优化,如果你被这凌乱的内容辣到了眼睛,请谅解哈哈哈~
全栈程序员站长
2022/08/03
1.8K0
ffmpeg 入门_python入门笔记
AI智能体(四)
以往,我们都是直接跟大模型进行交互,没有办法系统的实现记忆。langchain给出了一个系统级的解决方案,如上图中,用户提出问题,系统会先在存储器(如上图中的redis)中查询相关的文档返回系统,系统会带着用户的问题以及查询到的文档碎片一起提交给大模型,然后再将答案返回给用户。其中存储器充当了大脑记忆的部分。在上图的左下角,就是我们之前说的各种文档(pdf,word,excel等)通过向量化后存储进存储器。比起直接向大模型提问,langchain相当于多了一个外挂系统。
算法之名
2025/02/06
1720
AI智能体(四)
高性能 MySQL 第四版(GPT 重译)(三)
在前几章中,我们解释了模式优化和索引,这对于高性能是必要的。但这还不够——您还需要设计良好的查询。如果您的查询不好,即使是设计最佳的模式和索引也不会表现良好。
ApacheCN_飞龙
2024/03/20
2420
高性能 MySQL 第四版(GPT 重译)(三)
一篇文带你从0到1了解建站及完成CMS系统编写
文章为从0到1了解内容管理系统搭建与编写,由于一篇文章内容篇幅过长,文章内容经过压缩,该项目中相同逻辑的实现只以一个实例作为描述,主要以核心关键功能的开发作为主要的讲解步骤。如有想学习完整内容系统编写可在留言区留言,我会尽快完成完整版的实战教程发布。谢谢。本篇不涉及vue、nodejs的前端框架。
1_bit
2020/10/29
3.3K0
一篇文带你从0到1了解建站及完成CMS系统编写
流畅的 Python 第二版(GPT 重译)(二)
我们在所有的 Python 程序中都使用字典。即使不是直接在我们的代码中,也是间接的,因为dict类型是 Python 实现的基本部分。类和实例属性、模块命名空间和函数关键字参数是内存中由字典表示的核心 Python 构造。__builtins__.__dict__存储所有内置类型、对象和函数。
ApacheCN_飞龙
2024/05/24
4450
流畅的 Python 第二版(GPT 重译)(二)
2018:春来秋去,往事知何处(上)
去年 12 月的某个夜晚,在部署服务的无聊时光里,我突然想翻看自己一年来的朋友圈,看看有哪些有趣的事情。结果那夜一发不可收拾,扫了半年的朋友圈,一直读到凌晨三点半还意犹未尽(毕竟五点半就要起床了,觉还是要象征性地睡一下)。我把一些有意思的内容摘录了下来,没事的时候,就补两句评语,就像在跟去年的自己对话 —— 这可能也算程序员级宅男的恶趣味了。
tyrchen
2019/03/07
1.4K0
2018:春来秋去,往事知何处(上)
牛逼!Java 从入门到精通,超全汇总版
其实学习 Java 学到什么程度算是精通,这个其实没有盖棺定论的,也不是说你拿个年薪几十万的 offer 就可以自诩精通了。另外,每当面试的时候简历上填个精通 offer 的家伙我就觉得很搞笑,没有几个熬得过开出门左拐的命运。但是我认为,如果市面上这些资料、书籍你都啃的差不多,你能在所有的 Java 程序员中跻身前 0.1% 的话,你就可以达到”精通” 这个阶段了,因为没人比你强了,你当然是精通了。
全栈程序员站长
2022/07/02
2.4K0
牛逼!Java 从入门到精通,超全汇总版
推荐阅读
相关推荐
T-SQL进阶:超越基础 Level 2:编写子查询
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 1 创建Hadoop用户
    • 1.1 创建新用户
    • 1.2 修改密码
    • 1.2 为hadoop用户添加管理员权限
  • 2 安装java环境
    • 2.1 安装
    • 2.2 配置环境变量
    • 2.3 测试java是否安装成功
  • 3 设置SSH
    • 3.1 安装SSH服务端
    • 3.2 登录localhost
    • 3.3 设置为无密码登录
  • 4 安装Hadoop
    • 4.1 单机模式配置
    • 4.2 伪分布式模式配置
      • 4.2.1 修改配置文件
      • 4.2.2 执行名称节点格式化
      • 4.2.3 启动Hadoop
      • 4.2.4 使用浏览器查看HDFS信息
      • 4.2.5 运行Hadoop伪分布式实例
      • 4.2.6 关闭Hadoop
    • 5 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档