Hadoop单机伪分布部署
有读者反馈:初学Hadoop,不太想用Ambari,还是想手动的搭建Hadoop的环境
今天就带来Hadoop单机伪分布部署
文章分为两部分
第一部分为在VMare下如何新建虚拟机,如何使用软件
第二部分为在Centos6.5系统下Hadoop单机伪分布式的搭建
本文图多!!流量不够的同学慎点!
工欲善其事必先利其器,先把我们的环境和软件准备好!
需要准备:
1.VMware 12虚拟机软件
2.Centos6.5 64位iso安装盘
3.Jdk1.8,Hadoop2.7.3
4.X-Shell5,Winscp
VV这里有整理好的软件包,扫描下方二维码,关注后,输入hadoop即可获取软件整合包下载地址!
第一阶段:VMware下新建安装虚拟机
用户,密码,自定义
编辑虚拟机名称,选择安装位置
找到下载好的ISO镜像文件目录
下一步,指定磁盘容量
配置硬件,根据实际情况设置
点击完成,等待安装完毕即可
注意:在刚刚入门Linux时,推荐使用图形化界面,好上手(不推荐使用鼠标操作系统),但实际工作环境中图形化交互并不多,更多的是命令行,所以需要大家掌握基本Linux Shell的操作
Tips:发现点进虚拟机没法操作windows系统,按Ctl + Alt键即可跳出虚拟机操作界面
进入欢迎界面
使用root用户登录,选择下面Other
输入用户名和密码
在下方,我们看见了有一个小窗口,English(系统语言选项),为了方便查看,VV选择了中文(推荐使用英文)
登陆后,发现弹窗,使用root超级用户权限的提示,现在关闭即可
进入桌面
首先,修改时间和时区
配置网络:
先配置VM虚拟机网络
如果电脑主机能够上网,并希望虚拟机也能够上网,选择桥接模式,其余情况,选择NAT模式即可,这里不对网络有过多讲解
VV这里选择了桥接模式,下面要配置Linux系统的网络,进入系统,在右上角找到一个小电脑图标,右键点击,弹出菜单,点击编辑连接
编辑
选择IPv4设置,方法选择手动,点击添加
VV根据主机网络情况,做了如下配置,需要自定义修改(如果不知道自己的网段,在Windows中网络和共享中心查看哦!)
点击应用,关闭
在桌面空白处,单击鼠标右键,弹出菜单,点击在终端中打开
打开了命令行页面
现在,我们就要使用命令来操作我们的Linux系统了
刚才配置好网络,需要重启一下网络
在命令行输入如下语句
service network restart
这时候发现右上角的小电脑开始转动,就是在重启网络啦,等待一会,全部OK,说明网络设置成功
到此,虚拟机基础配置已经完成,下面使用远程登录软件X-shell
新建会话
接受并保存
输入用户名
输入密码
确定
登录成功
上面菜单栏可以更换界面主题,请自定义修改
下面要开始搭建单点Hadoop
修改主机名
先查看主机名:
[root@localhost ~]# hostname localhost.localdomain
修改主机名有两种办法
1.临时修改(当时生效,重启无效)
2.非临时修改(重启生效)
我们这里两种办法都使用
[root@localhost ~]# hostname louisvv.com [root@localhost ~]# hostname louisvv.com
修改主机名文件/etc/sysconfig/network
[root@localhost ~]# vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=louisvv.com #修改此项
修改主机名和IP的映射关系 /etc/hosts
注意:如果是使用服务器或是使用的云主机(如华为云主机、阿里云主机等) /etc/hosts里面要配置的是内网IP地址和主机名的映射关系
[root@localhost ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.210 louisvv.com
测试连通性
[root@localhost ~]# ping louisvv.com PING louisvv.com (192.168.1.210) 56(84) bytes of data. 64 bytes from louisvv.com (192.168.1.210): icmp_seq=1 ttl=64 time=0.024 ms 64 bytes from louisvv.com (192.168.1.210): icmp_seq=2 ttl=64 time=0.056 ms 64 bytes from louisvv.com (192.168.1.210): icmp_seq=3 ttl=64 time=0.046 ms
关闭防火墙
查看防火墙状态,以下状况就是开启的
[root@localhost ~]# service iptables status Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) num target prot opt source destination
关闭防火墙
[root@localhost ~]# service iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ]
关闭防火墙开机自启
[root@localhost ~]# chkconfig iptables off
配置SSH免登陆,多次回车
[root@localhost ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 2e:75:72:ff:54:65:51:e7:e6:cb:42:e9:45:3e:ac:7f root@louisvv.com The key's randomart image is: +--[ RSA 2048]----+ | .+| | .o| | .=| | =+.| | S o o =o| | o + .o +.o| | . . .+.o | | . oo E| | ...| +-----------------+
[root@localhost ~]# cd ~/.ssh/
若没有该目录,请先执行一次ssh localhost
[root@localhost .ssh]# ls id_rsa id_rsa.pub 加入授权 [root@localhost .ssh]# cat id_dsa.pub >> authorized_keys [root@localhost .ssh]# ls authorized_keys id_rsa id_rsa.pub
修改文件权限,如果不改,无法通过
[root@localhost .ssh]# chmod 600 ./authorized_keys [root@localhost .ssh]# ll total 8 -rw-------. 1 root root 0 Nov 22 15:52 authorized_keys -rw-------. 1 root root 1675 Nov 22 15:47 id_rsa -rw-r--r--. 1 root root 398 Nov 22 15:47 id_rsa.pub
SSH测试,此时需要密码
[root@localhost .ssh]# ssh localhost The authenticity of host 'localhost (::1)' can't be established. RSA key fingerprint is a8:ff:da:27:2e:1c:80:e6:1e:7c:c2:c3:27:88:25:1d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (RSA) to the list of known hosts. root@localhost's password: Last login: Wed Nov 22 15:20:47 2017 from 192.168.1.74
拷贝id到本机
[root@louisvv ~]# ssh-copy-id localhost root@localhost's password: Now try logging into the machine, with "ssh 'localhost'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
这是SSH登陆就不需要验证了
[root@louisvv ~]# ssh localhost Last login: Wed Nov 22 15:55:16 2017 from localhost
安装Java,需要使用Winscp软件远程拷贝到虚拟机中
进入界面后,选择最上面剪头,找到 /opt目录,上传Java和Hadoop的压缩包到该目录
切换回X-shell
[root@louisvv opt]# ls hadoop-2.7.3.tar.gz jdk-8u91-linux-x64.tar.gz rh
解压Java包
[root@louisvv opt]# tar -zxf jdk-8u91-linux-x64.tar.gz [root@louisvv opt]# ls hadoop-2.7.3.tar.gz jdk1.8.0_91 jdk-8u91-linux-x64.tar.gz rh
配置全局环境变量
[root@louisvv opt]# vim /etc/profile #java env export JAVA_HOME=/opt/jdk1.8.0_91 export JRE_HOME=/opt/jdk1.8.0_91/jre export CLASSPATH=$JAVA_HOME/lib export PATH=:$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
更新配置文件
查看Java是否配置成功,如下所示,即已配置成功
[root@louisvv opt]# java -version java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
下面就要开始安装Hadoop了
解压hadoop压缩包
[root@louisvv opt]# tar -zxf hadoop-2.7.3.tar.gz [root@louisvv opt]# ls hadoop-2.7.3 hadoop-2.7.3.tar.gz jdk1.8.0_91 jdk-8u91-linux-x64.tar.gz rh
进入hadoop-2.7.3目录
[root@louisvv opt]# cd hadoop-2.7.3
查看该目录结构
[root@louisvv hadoop-2.7.3]# ll total 132 drwxr-xr-x. 2 root root 4096 Aug 18 2016 bin drwxr-xr-x. 3 root root 4096 Aug 18 2016 etc drwxr-xr-x. 2 root root 4096 Aug 18 2016 include drwxr-xr-x. 3 root root 4096 Aug 18 2016 lib drwxr-xr-x. 2 root root 4096 Aug 18 2016 libexec -rw-r--r--. 1 root root 84854 Aug 18 2016 LICENSE.txt -rw-r--r--. 1 root root 14978 Aug 18 2016 NOTICE.txt -rw-r--r--. 1 root root 1366 Aug 18 2016 README.txt drwxr-xr-x. 2 root root 4096 Aug 18 2016 sbin drwxr-xr-x. 4 root root 4096 Aug 18 2016 share
配置hadoop环境变量
[root@louisvv hadoop-2.7.3]# vim /etc/profile #hadoop env export HADOOP_HOME=/opt/hadoop-2.7.3 export PATH=:$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
更新配置文件
[root@louisvv hadoop-2.7.3]# source /etc/profile
修改hadoop配置文件
[root@louisvv hadoop-2.7.3]# cd etc/hadoop/
修改env.sh文件
找到配置Java路径
export JAVA_HOME=${JAVA_HOME} 将上面修改为本机JAVA_HOME地址 export JAVA_HOME=/opt/jdk1.8.0_91
修改core-site.xml,添加如下内容
<configuration> <property> <name>fs.default.name</name> <value>hdfs://louisvv.com:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop-2.7.3/tmp</value> </property> </configuration>
修改hdfs-site.xml,添加如下内容
<configuration> <property> <!--设置副本数1,不写默认是3份--> <name>dfs.replication</name> <value>1</value> </property> </configuration>
拷贝mapred-site.xml.template样例配置文件mapred-site.xml,修改mapred-site.xml文件,添加内容如下
[root@louisvv hadoop]# cp mapred-site.xml.template mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
修改yarn-site.xml文件,添加内容如下
<configuration> <property> <name>yarn.nodemanager.aux-services </name> <value>mapreduce_shuffle</value> </property> </configuration>
配置文件修改完后,需要对HDFS进行格式化,关键的一步来了!
[root@louisvv hadoop]# hdfs namenode -format
在打印的日志中发现Storage directory
/opt/hadoop-2.7.3/tmp/dfs/name has been
successfully formatted
恭喜你,格式化成功啦!
开启HDFS
[root@louisvv hadoop]# start-dfs.sh
开启YARN
[root@louisvv hadoop]# start-yarn.sh
开启后,使用jps查看进程,发现都起来了,大功告成!
[root@louisvv hadoop]# jps 37555 DataNode 37972 NodeManager 37461 NameNode 37736 SecondaryNameNode 38009 Jps 37881 ResourceManager
在浏览器中输入 192.168.1.210:50070查看HDFS情况
赶快试试好不好用吧
创建一个文件,内容如下
[root@louisvv ~]# vim test.txt hello world hello you hello me hello louisvv
将该文件上传到HDFS
[root@louisvv ~]# hadoop fs -put test.txt /
在HDFS上查看,发现刚才上传的文件存在哦!
[root@louisvv ~]# hadoop fs -ls / Found 1 items -rw-r--r-- 1 root supergroup 45 2017-11-22 16:42 /test.txt
测试一下mapreduce的程序,wordcount!
[root@louisvv hadoop-2.7.3]# hadoop jar /opt/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /test.txt /out 17/11/22 16:45:36 INFO mapreduce.Job: map 0% reduce 0% 17/11/22 16:46:18 INFO mapreduce.Job: map 100% reduce 0% 17/11/22 16:46:56 INFO mapreduce.Job: map 100% reduce 100% 17/11/22 16:46:58 INFO mapreduce.Job: Job job_1511339896424_0001 completed successfully
成功了,快去看看吧
现在192.168.1.210:8088 yarn查看刚才执行的任务
在hdfs上查看刚才wordcount程序的输出
在网页上看一下
在命令行中查看文件内容:
[root@louisvv hadoop-2.7.3]# hadoop fs -cat /out/part-r-00000 hello 4 louisvv 1 me 1 world 1 you 1
最经典的WordCount我们也搞定了!
好啦!Hadoop单点伪分布式搭建完成啦!
记得点赞和分享哦!
666