网站建设scyiyou,应用下载app,广州门户网站制作公司,深圳注册公司的流程和材料前面那几天是在找大数据的门,其实也是在搞一些linux的基本命令,现在终于轮到hadoop了 Hadoop
hadoop的安装方式
单机模式: 就如字面意思,在一台机器上运行,存储是采用本地文件系统,没有采用分布式文件系统~就如我们一开始入门的时候都是从本地开始的; 伪分布式模式
存储采用… 前面那几天是在找大数据的门,其实也是在搞一些linux的基本命令,现在终于轮到hadoop了 Hadoop
hadoop的安装方式
单机模式: 就如字面意思,在一台机器上运行,存储是采用本地文件系统,没有采用分布式文件系统~就如我们一开始入门的时候都是从本地开始的; 伪分布式模式
存储采用分布式文件系统,但是HDFS的名称节点和数据节点都在同一台机器上; 简单来说就像我们学习微服务的时候,只有一台机器,只能采用不同的端口号来实现微服务的开发, 分布式模式
存储采用分布式文件系统,HDFS的名称节点和数据节点位于不同的机器上~这才符合分布式的要求;
安装hadoop
下载hadoop
此时是以root用户登陆的系统
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz解压缩文件
tar -zxf hadoop-3.3.4.tar.gz加压完毕之后将文件的权限授予hadoop用户,以免后续出现什么问题;
授权解压的文件给hadoop用户
[rootnode1 local]# sudo chown -R hadoop ./hadoop-3.3.4
#切换用户
[rootnode1 local]# su hadoop
[hadoopnode1 local]$ 查看hadoop是否可以正常运行
cd hadoop-3.3.4
./bin/hadoop version结果如下~
hadoop的单机配置
hadoop下载下来之后默认是非分布式模式,无需其他配置即可运行;
非分布式即java的单进程模式,这个我们就很擅长了,拿来直接运行即可;
首先来看官网给的例子(别的例子咱也不会,入门一下,日后在搞复杂的)
请听第一题 我们将input文件夹下所有的文件作为输入,筛选出符合正则表达式dfs[a-z.]的单词并统计出现次数 mkdir ./input #创建一个文件夹#拷贝hadoop配置文件到 刚刚创建的input文件夹下cp ./etc/hadoop/*.xml ./input
#执行hadoop命令~./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output dfs[a-z.]查看output文件夹下的内容
cat ./output/*我们来看一下我们复制时都复制了些什么
[hadoopnode1 hadoop-3.3.4]$ ls ./input/
capacity-scheduler.xml hadoop-policy.xml hdfs-site.xml kms-acls.xml mapred-site.xml
core-site.xml hdfs-rbf-site.xml httpfs-site.xml kms-site.xml yarn-site.xml
[hadoopnode1 hadoop-3.3.4]$
再来看看 输出的文件中都有什么
[hadoopnode1 hadoop-3.3.4]$ cd output/
[hadoopnode1 output]$ ls
part-r-00000 _SUCCESS
[hadoopnode1 output]$ 这是什么? 我们再来看执行成功后的提示~ 回头再来看hadoop执行的命令
#头部命令
./bin/hadoop jar 有些类似于java执行jar 的那个逻辑 java jar 看看hadoop文件中都写了什么… 乌压压一大片(暂且搁置一边) 源码自取
然后就是参数部分 ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar
找到它~可以看到是一些打包好的jar包,就是提前写好的代码去执行一些运算,以后我们也可以写代码打包后交给hadoop运行
**注意**Hadoop 默认不会覆盖结果文件因此再次运行上面实例会提示出错需要先将 ./output 删除。
hadoop伪分布式配置
hadoop可以在单节点上以伪分布式的方式运行,这个由hadoop进程分离的java进程来运行,节点既可以作为namenode也可以作为datanode,同时读取hdfs中的文件.
伪分布式需要一些配置,其配置文件在etc/hadoop/ 中,需要修改两个配置文件
core-site.xml 找到该文件并修改他
vi /usr/local/hadoop-3.3.4/etc/hadoop/core-site.xml文件中添加如下内容
configurationpropertynamehadoop.tmp.dir/namevaluefile:/usr/local/hadoop3.3.4/tmp/valuedescriptionAbase for other temporary directories./description/propertypropertynamefs.defaultFS/namevaluehdfs://localhost:9000/value/property
/configuration 大体是配置了一个临时存储文件夹的地址和一个访问的网址
hdfs-site.xml
找到配置文件并修改他
vi /usr/local/hadoop-3.3.4/etc/hadoop/hdfs-site.xml添加如下内容
configurationpropertynamedfs.replication/namevalue1/value/propertypropertynamedfs.namenode.name.dir/namevaluefile:/usr/local/hadoop/tmp/dfs/name/value/propertypropertynamedfs.datanode.data.dir/namevaluefile:/usr/local/hadoop/tmp/dfs/data/value/property
/configuration大体就是配置了namenode节点和datanode节点
hadoop的配置文件说明
hadoop的运行方式是由配置文件决定的(hadoop在运行时会读取配置文件) 由于一开始并没有配置任何内容,所以是单机模式;
按照hadoop的与运行方式来说,伪分布式子需要配置fs.defaultFS 和 dfs.replication 就可以了,但是若没有配置hadoop.tmp.dir 参数则默认使用的临时目录为 /tmp/hadoo-hadoop 而这个目录会在机器重启时可能会被删掉,导致必须重新执行format才行; 我们也指定了namenode节点跟datanode节点 配置完成后
初始化namenode
cd /usr/local/hadoop./bin/hdfs namenode -format看到success就表示执行成功了; 啥?没看到?这就尴尬了,截个图给你看看 再去文件夹下看看有没有对应的文件建立
ll ./tmp/dfs/name/current/如果出现错误: 1.JAVA_HOME 错误,那就去配置一下 hadoop-env.sh文件 ,重新配置一下JAVA_HOME 2.文件夹创建失败,可能是当前用户没有权限,给当前用户授权
sudo chown -R hadoop /usr/local/hadoop-3.3.4 开启namenode和datanode节点
./sbin/start-dfs.sh
开启之后访问一下配置文件中的那个网址: 注:这里用虚拟机的ip地址; datanode节点的信息
启动hadoop时遇到的一些问题集锦: 专门从网上找的,虽然现在还没有遇到,说不定以后会遇到,这样也能快速知道如何解决; 速度自取
接下来就是回顾时刻,这几天我们通过学习 了解到hadoop 的一些知识
首先是: 1,hadoop的环境-配置jdk 2,hadoop各个节点之间的交流通过ssh加密 --配置ssh 3,hadoop的运行三种方式:
单体模式伪分布式分布式
4,hadoop的运行命令 首先在hadoop文件下的bin目录有很多可以运行的命令文件 目前接触到了 启动hadoop ~ ~ ./bin/hadoop jar 写好的打包程序 其他的运行配置5,配置伪分布式的关键配置文件:
core-site.xml ~配置了临时文件夹 hdfs-site.xml ~配置了namenode节点和datanode节点以及一个访问html的地址
6,配置结束后 格式化namenode
./bin/hdfs namenode -format7,启动namenode以及datanode守护进程
./sbin/start-dfs.sh未完待续~ 另一台机器操作一遍在熟悉一下啊!