下载地址:https://pan.quark.cn/s/17d7266205f9
hadoop的安装 包
java jdk安装包
eclipse连接hadoop工具
所学其他工具可自行在官网下载
Vmware配置及 xshell连接:https://zjxweb.github.io/#/techBlog/vmware/
![请添加图片描述](https://img-blog.csdnimg.cn/a82486e822d34ff3a01627853cbf3b34.png
输入命令,修改相关配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33
> 上面图片由于截图时间问题,有些对不上,各位按照自己的配置来!!!!
ip addr
查看ip地址,发现ip地址已经有了,之后ping www.baidu.com
查看是否可以连接外网。(暂停 Ctrl+Z)[zjx@localhost ~] systemctl stop firewalld
[zjx@localhost ~] systemctl disable firewalld.service
注意:如果你的虚拟机是最小化安装不需要执行这一步。
[zjx@localhost ~] rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
如果没有rpm
请安装
[zjx@localhost ~] yum install rpm
重启虚拟机
[zjx@localhost ~] reboot
rz
从xshell上传所需的包lrzsz这个软件,可以让我们直接从linux上,下载和上传文件的操作
yum install -y lrzsz
新建目录(按自己的来)
cd /home
mkdir software && cd software
rz
上传包到此目录下
解压
[zjx@localhost software]$ tar zxvf jdk-8u171-linux-x64.tar.gz
.新建/etc/profile.d/my_env.sh
文件
sudo vim /etc/profile.d/my_env.sh
添加如下内容
#JAVA_HOME
export JAVA_HOME=/home/software/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
source一下/etc/profile文件,让新的环境变量PATH生效
source /etc/profile
测试JDK是否安装成功
java -version
# 切换到software目录
cd /home/software
rz #上传hadoop
[root@localhost software]# tar zxvf hadoop-2.7.7.tar.gz
将Hadoop添加到环境变量
将Hadoop添加到环境变量
sudo vim /etc/profile.d/my_env.sh
在my_env.sh文件末尾添加如下内容
export HADOOP_HOME=/home/software/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
source一下/etc/profile文件,让新的环境变量PATH生效
source /etc/profile
测试是否安装成功
[root@localhost software]# hadoop version
Hadoop 2.7.7
hadoop 目录介绍
接下来是hadoop伪分布式配置。Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
cd /home/software/hadoop-2.7.7/etc/hadoop
vim core-site.xml
<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>
注意:这里可能会报权限错误的问题,所以说我们要分配权限
cd /home/software/hadoop-2.7.7/etc/hadoop chmod +w core-site.xml
cd /home/software/hadoop-2.7.7/etc/hadoop
vim hdfs-site.xml
chmod +w core-site.xml
dfs.replication
1
dfs.namenode.name.dir
file:/usr/local/hadoop/tmp/dfs/name
dfs.datanode.data.dir
file:/usr/local/hadoop/tmp/dfs/data
Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,
需要删除 core-site.xml 中的配置项。
配置完成后,执行 NameNode 的格式化:
cd /home/software/hadoop-2.7.7
./bin/hdfs namenode -format
接着开启 NameNode 和 DataNode 守护进程。
cd /home/software/hadoop-2.7.7
./sbin/start-dfs.sh
或者使用all来开启/结束hadoop全部进程
cd /home/software/hadoop-2.7.7
./sbin/start-all.sh
./sbin/stop-all.sh
启动完成后,可以通过命令 jps 来判断是否成功启动
jps
rz
工具将下载好的 hadoop-eclipse-plugin-2.7.3 传输到eclipse目录下的plugins文件夹下即可.cd到eclipse目录下,输入命令./eclipse
打开eclipse
eclipse安装简单说明一下吧
下载-> 解压-> cd 进去解压的目录 ->
./eclipse
依次点击:顶部菜单栏的Window → Open Perspective → Other…→ Map/Reduce → OK
出现如下界面即说明操作正确
Map/Reduce Locations
,在下方空白处单击右键 → 点击New Hadoop location…自定义一个Location name,接着将Host中的内容修改为你的master节点的IP地址,右边的Port改为9000 (这是因为在你的core-site.xml配置文件中配置的端口号为9000)
找hadoop.tmp.dir路径的方法:
打开一个新的终端,cd到(以笔者为例)cd /home/software/hadoop-2.7.7/etc/hadoop/ 路径下面,输入命令vim core-site.xml 打开配置文件,就可以找到你的hadoop.tmp.dir相应的路径
:在这之前要先将Hadoop集群启动,否则将会失败
[root@localhost zjx]# cd /home/software/hadoop-2.7.7/
vim file1.txt
vim file2.txt
file1.txt
2012-3-1 a
2012-3-2 b
2012-3-3 c
2012-3-4 d
2012-3-5 a
2012-3-6 b
2012-3-7 c
2012-3-3 c
file2.txt
2012-3-3 b
2012-3-4 d
2012-3-5 a
2012-3-6 c
2012-3-7 d
2012-3-3 c
先在HDFS创建DateRemove文件夹
cd /home/software/hadoop-2.7.7/
./bin/hdfs dfs -mkdir /user/hadoop/DateRemove # 如果报错请运行这个 ./bin/hdfs dfs -mkdir -p /user/hadoop/DateRemove
用ls查看文件是否创建成功
./bin/hdfs dfs -ls /user/hadoop
在HDFS下创建一个名称为DateRemove/input的目录
./bin/hdfs dfs -mkdir /user/hadoop/DateRemove/input
将file1.txt和file2.txt传到hdfs的/user/hadoop/DateRemove/input文件夹中
./bin/hdfs dfs -put ./file1.txt /user/hadoop/DateRemove/input
./bin/hdfs dfs -put ./file2.txt /user/hadoop/DateRemove/input
./bin/hdfs dfs -ls /user/hadoop/DateRemove/input
选择左边的 Hadoop Map/Reduce,点击右边Browse…,选择Hadoop文件夹的路径即可
选择Map/Reduce Project,点击右下方 Next> 然后输入项目名称wordcount,点击右下方 Next>,再点击Finish,创建项目。此时插件会把hadoop根目录和lib目录下的所有jar包自动导入
DedupMapper.java
package Data_De_duplication;
import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
public class DedupMapper extends Mapper<LongWritable, Text, Text, NullWritable> {
private static Text field = new Text();
@Override
protected void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
field = value;
context.write(field, NullWritable.get());
}
}
DedupReducer.java
package Data_De_duplication;
import java.io.IOException;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
public class DedupReducer extends Reducer<Text, NullWritable, Text, NullWritable>{
@Override
protected void reduce(Text key, Iterable<NullWritable> values,
Context context) throws IOException, InterruptedException {
context.write(key, NullWritable.get());
}
}
DedupRunner.java
package Data_De_duplication;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
public class DedupRunner {
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
Configuration conf = new Configuration();
Job job = Job.getInstance(conf);
job.setJarByClass(DedupRunner.class);
job.setMapperClass(DedupMapper.class);
job.setReducerClass(DedupReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(NullWritable.class);
FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/user/hadoop/DateRemove/input"));
// 指定处理完成之后的结果所保存的位置
FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/user/hadoop/DateRemove/output"));
job.waitForCompletion(true);
}
}
hdfs://localhost:9000/user/hadoop/DateRemove/input
hdfs://localhost:9000/user/hadoop/DateRemove/output
Hadoop集群的配置:https://blog.csdn.net/qq_54542910/article/details/127366061
虚拟机安装Hadoop https://blog.csdn.net/qq_54542910/article/details/127364777?spm=1001.2014.3001.5501
Hadoop 安装与配置:https://blog.csdn.net/weixin_43571612/article/details/129168659
大数据之Hadoop3.x 运行环境搭建(手把手搭建集群):https://blog.csdn.net/yuan2019035055/article/details/120901871
大数据之Hadoop学习(十二)对数据文件中的数据进行去重基于(MapReduce编程):https://blog.csdn.net/qq_42585108/article/details/105982486?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-105982486-blog-40559781.235v38pc_relevant_anti_vip&spm=1001.2101.3001.4242.1&utm_relevant_index=3
Linux系统下eclipse中配置Hadoop插件:https://blog.csdn.net/hxhRxz/article/details/105030871?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-105030871-blog-49561361.235v38pc_relevant_anti_vip&spm=1001.2101.3001.4242.1&utm_relevant_index=3
在Linux下的eclipse中创建一个MapReduce工程:https://blog.csdn.net/hxhRxz/article/details/105053119?spm=1001.2014.3001.5502
Centos之上传下载命令rz和sz-yellowcong:https://dandelioncloud.cn/article/details/1530902039366483969