hadoop伪分布模式
作者:互联网
环境变量的配置
jdk:
源文件:将jdk的压缩包放在 /opt/software里
解压:tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt/module/ (解压到指定文件夹中)
pwd:进入/opt/module/jdk1.8.0_171,pwd复制jdk的根目录
vim /etc/profile编辑环境变量:
export JAVA_HOME=/opt/module/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
保存后将文件生效:source /etc/profile
测试环境变量:java -version
jdk环境变量配置成功
hadoop:
源文件:将hadoop的压缩包放在 /opt/software里
解压:tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/ (解压到指定文件夹中)
pwd:进入/opt/module/hadoop-2.7.2,pwd复制hadoop的根目录
vim /etc/profile编辑环境变量:
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
保存后将文件生效:source /etc/profile
测试环境变量:hadoop version
hadoop环境变量配置成功
hadoop运行模式
本地模式:local,配置文件不需要改动
伪分布模式:只有一个节点,所有的hdfs+mapreduce+yarn在一台主机上
完全分布式:三台虚拟机模拟的hadoop集群,hdfs+mapreduce+yarn
hadoop文件系统
bin:hadoop+hdfs等命令
etc:配置文件
lib:本地库
sbin:集群启动脚本
share:示例
本地模式示例(default配置项是本地)
1. 创建在hadoop-2.7.2文件下面创建一个input文件夹
[atguigu@hadoop101 hadoop-2.7.2]$ mkdir input
2. 将hadoop的xml配置文件复制到input(提供数据源 共8个xml文件)
[atguigu@hadoop101 hadoop-2.7.2]$ cp etc/hadoop/*.xml input */
3. 执行share目录下的mapreduce程序
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hadoop jar(老师直接写的hadoop jar)
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep(过滤) input /(老师写这个斜杠了)output(千万不能提前创建) 'dfs[a-z.]+'(正则表达式 dfs开头a-z的任意字符 +)
4. 查看输出结果
[atguigu@hadoop101 hadoop-2.7.2]$ cat output/**/
伪分布模式的配置
JAVA_HOME: vim /opt/module/hadoop-2.7.2/etc/hadoop/hadoop-env.sh
(:set nu 第25行)export JAVA_HOME=/opt/module/jdk1.8.0_171
namenode地址+hadoop文件目录: vim /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs(协议)://hadoop101(主机名):9000(端口号)</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->(格式化后才有此目录)
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
副本数: vim /opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
启动集群
重新格式化的时候要将data与log文件夹删除。保证namespace+cluster ID一致
格式化: [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format
启动namenode: [atguigu@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
启动datanode: [atguigu@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode
查看当前进程: jps(jps+namenode+datanode)
查看日志: logs,分别记录datanode+namenode的日记
集群查看: hadoop101:50070
文件系统Linux查看
集群ID: cd /opt/module/hadoop-2.7.2/data/tmp/dfs/data/CURRENT
data数据:/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/
BP-1341435640-192.168.1.101-1583919560640/current/finalized/subdir0/subdir0
datanode在启动时会向namenode索要相应的ID,表明是同一集群的成员。
当重新格式化namenode时,会生成一套新ID,此ID与datanode的不一致,就启动不了。jps就不会有namenode。
为此在格式化前需要将data与logs文件夹删除。同时通过jps查看当前活跃进程,
并关闭当前所有活跃进程,确保namenode可以启动。
然后再按照一般顺序分别启动datanode,RM,NM,H等进程。
此时伪分布已经搭建完成。
hadoop文件操作
(a)在hdfs文件系统上创建一个input文件夹,(并不是linux本地系统)。
bin/hdfs dfs -mkdir -p /user/atguigu/input
(b)将测试文件内容上传到文件系统上
bin/hdfs dfs -put wcinput/wc.input /user/atguigu/input/
(c)查看上传的文件是否正确
bin/hdfs dfs -ls /user/atguigu/input/
bin/hdfs dfs -cat /user/atguigu/input/wc.input
(d)运行mapreduce程序
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar
wordcount /user/atguigu/input/ /user/atguigu/output
(e)查看输出结果
命令行查看:
[atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/output/*
标签:opt,hadoop,module,atguigu,input,2.7,分布模式 来源: https://blog.csdn.net/qq_43141232/article/details/104805423