1,安装vmware虚拟机,Linux版本可以自行选择
2,安装ubuntu虚拟机
2.1 下载iso镜像 百度搜索 中国镜像站 随便哪个网页都可以,各大公司,各大高校;
2.2 安装ubuntu虚拟机;
3,hadoop的安装模式
官方帮助文档https://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-common/SingleCluster.html#Standalone_Operation
3.1 单机模式
安装在一台服务器上
没有启动完整的功能
用于开发和调试 MapReduce 程序
3.2单机伪分布式模式(学习环境)
安装在一台服务器上
启动全部功能
所有功能集中在一台服务器上
3.3 分布式集群模式(企业生产环境)
安装在成千上万台服务器上
启动全部的功能
不同功能,分布在不同的服务器
3.1 单机模式
3.1.1 安装xshell,实现远程连接虚拟机
1,虚拟机必须可以和win进行通信,在xshell页面使用ping命令,ping 虚拟机ip地址。
2,ssh root@虚拟机ip地址
3.1.2 创建hadoop用户
[root@server ~]#systemctl stop firewalld #停止防火墙服务
[root@server ~]# useradd hadoop
[root@server ~]# passwd hadoop #配置hadoop密码
[root@server ~]# vim /etc/sudoers #给hadoop配置超级用户权限
108 hadoop ALL=(ALL) ALL
[root@server ~]#su - hadoop #切换至hadoop用户
[hadoop@server ~]$ rz #准备jdk安装包
[hadoop@server ~]$ sudo tar -zxf jdk-8u212-linux-x64.tar.gz -C /usr/local/ #解压jdk软件包,第一次使用sudo需要输入hadoop密码
[hadoop@server ~]$ ls /usr/local/ #确认有jdk1.8.0_212目录
[hadoop@server ~]$ vim .bashrc
12 export JAVA_HOME=/usr/local/jdk1.8.0_212/
13 export JRE_HOME=${JAVA_HOME}/jre
14 export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
15 export PATH=${JAVA_HOME}/bin:$PATH
[hadoop@server ~]$ source .bashrc #使配置文件生效
[hadoop@server ~]$ java -version #确认jdk环境配置正确
java version "1.8.0_212"
[hadoop@server ~]$ rz hadoop软件包 #上传hadoop软件包
[hadoop@server ~]$ sudo tar -zxf hadoop-2.7.7.tar.gz -C /usr/local #解压至指定目录
[hadoop@server ~]$sudo mv /usr/local/hadoop-2.7.7 /usr/local/hadoop/ #重命名
[hadoop@server ~]$ sudo chown -R hadoop:hadoop /usr/local/hadoop #修改文件的所有者所属组为hadoop用户
[hadoop@server ~]$ cd /usr/local/hadoop/ #切换至hadoop安装目录
[hadoop@server hadoop]$ pwd
/usr/local/hadoop
[hadoop@server hadoop]$ mkdir input #创建一个空目录
[hadoop@server hadoop]$ cp etc/hadoop/*.xml input/ #准备一些文件
#在一堆文件里查找出以dfs开头的内容 正则表达式
[hadoop@server hadoop]$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar grep input/ output "dfs[a-z]+"
[hadoop@server hadoop]$ ls -l output #查看自动生成的output目录,
-rw-r--r--. 1 hadoop hadoop 10009 6月 1 00:57 part-r-00000 #存储查询结果,
-rw-r--r--. 1 hadoop hadoop 0 6月 1 00:57 _SUCCESS #一个标签文件,没有任何内容
[hadoop@server hadoop]$ cat output/part-r-00000 #查看结果
#统计单词出现的次数
[hadoop@server hadoop]$ rm -rf output #删除output目录
#统计input目录里的文件的每个单词出现的次数,输出到output目录中去
[hadoop@server hadoop]$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount input/ output
[hadoop@server hadoop]$ cat output/part-r-00000
3.2单机伪分布式模式(学习环境)
3.2.1 先实现免密登录
- 生成秘钥对
[hadoop@server ~]$ ssh-keygen #一直回车
[hadoop@server ~]$ssh-copy-id hadoop@localhost #将公钥发送给服务器
[hadoop@server ~]$ssh hadoop@localhost #可以实现无密码登录
3.2.2修改配置文件
[hadoop@server hadoop]$ cd /usr/local/hadoop
[hadoop@server hadoop]$ vim ./etc/hadoop/core-site.xml
#指定hadoop运行时的临时目录位置
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
</property>
#hadoop默认的hdfs命名,指定url地址为本地,端口为9000
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
[hadoop@server hadoop]$vim etc/hadoop/hdfs-site.xml
<configuration>
#指定hdfs的数据块副本个数,默认3个
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
#确定dfs名称节点在本地文件系统中存储名称表(fsimage)的位置
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dir/name</value>
</property>
#确定dfs数据节点在本地文件系统上存储块数据的位置
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dir/data</value>
</property>
</configuration>
[hadoop@server hadoop]$./bin/hdfs namenode -format #格式化文件系统
3.2.4 启动hdfs服务
[hadoop@server hadoop]$ ./sbin/start-dfs.sh
[hadoop@server hadoop]$ jps #查看确认服务启动成功,前面数字代表进程id号,后面是服务名
9616 DataNode
10704 Jps
9812 SecondaryNameNode
9511 NameNode
3.2.5 准备文件进行测试
[hadoop@localhost hadoop]$ ./bin/hdfs dfs -mkdir -p /user/hadoop/input #创建目录
[hadoop@localhost hadoop]$ vim a.txt #准备一个普通文件,
[hadoop@localhost hadoop]$ ./bin/hdfs dfs -put a.txt /user/hadoop/input #上传文件至分布式文件系统中
[hadoop@localhost hadoop]$ ./bin/hdfs dfs -ls /user/hadoop/input #确认文件上传成功
[hadoop@localhost hadoop]$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /user/hadoop/input /user/hadoop/output
[hadoop@localhost hadoop]$ ./bin/hdfs dfs -ls -R /user/hadoop/ #查看分布式文件系统上的目录
[hadoop@localhost hadoop]$./bin/hdfs dfs -cat /user/hadoop/output/part-r-00000 #查看执行结果
3.2.6 可以以页面的方式查看文件系统的目录结构 #不是必须的
浏览器输入http://ip地址:50070 访问
本文转载自: https://blog.csdn.net/m0_57254949/article/details/123843959
版权归原作者 专注bug20年! 所有, 如有侵权,请联系我们删除。
版权归原作者 专注bug20年! 所有, 如有侵权,请联系我们删除。