博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos7-Hadoop2-8-5环境搭建-基本命令行操作
阅读量:3967 次
发布时间:2019-05-24

本文共 6153 字,大约阅读时间需要 20 分钟。

进行hadoop集群环境的搭建主要包括下面几步:

  • VMware安装虚拟机
  • 为虚拟机配置静态的ip地址(要求虚拟机能够连接外网,且虚拟机可与物理主机互联。)
  • 进行主机名字的修改与关闭防火墙
  • 为虚拟机配置java环境并安装Hadoop
  • 克隆虚拟机并修改子节点虚拟机名字(要求虚拟机之间能够相互通信)
  • 实现三个主机之间的ssh免密登录
  • 测试运行hellowold!

要注意的是我们要先将主节点虚拟机的jdk,Hadoop等与静态IP配置好之后再将虚拟机克隆过去,这时克隆过去的虚拟机只需要修改主机名字与修改静态ip即可。

VMware安装虚拟机centos7

00

为虚拟机配置静态IP

设置网络适配器网络设置为NAT模式通过vmnet8来与物理主机互联

image-20200907183646647

修改NAT的子网配置

打开虚拟机的网络编辑器

设置子网IP要求不与物理机IP相冲突

(似乎使用本地DHCP服务器不可以,但是我这里勾选了环境搭建中是没有任何毛病的)

并设置网关IP

记住这个网关IP在windows设置VMnet8中是要求相同的。

Windows:网络——属性——更改适配器设置

属性——网络选项卡——点中Internet协议版本4(TCP/IPv4)——属性

修改如下:注意网关IP与虚拟编辑中相同:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tH31r2SD-1599549849829)(https://s1.ax1x.com/2020/09/07/wuqI5d.png)]

下面进入虚拟机正式进行静态IP设置

centos7网卡名称一般都是ens32或者ens33

进入编辑:

vim /etc/sysconfig/network-scripts/ifcfg-ens32

将文件修改为:

TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens32UUID=382bf935-361c-4c0c-ae0a-32354d11ba70DEVICE=ens32ONBOOT=yesIPADDR=192.168.145.101NETMASK=255.255.255.0GATEWAY=192.168.145.2DNS1=8.8.8.8

注意BOOTPROTO修改为static,ONBOOT修改为yes,下面的为静态IP的设置,IPADDR为静态IP,NETMASK子网掩码,GATEWAY为网关,DNS1与在Windows系统中设置的相同。

退出重启网络:

service network restart

此时ping百度,本机,Windows 的cmd ping虚拟机的静态IP是全部能够ping通的。

进行主机名字的修改与关闭防火墙

主要修改三个文件

hosts,hostname,network

这是主机修改,子节点修改为对应子节点的名字

vim /etc/sysconfig/network

vim /etc/hosts

要包含所有的子节点的名字与对应的要设置的IP

vim /etc/hostname

为虚拟机配置java环境并安装Hadoop

使用Xshell与Xftp连接虚拟机并传入jdk压缩文件,传入文件夹(/usr/local/java),进入对应文件夹并进行编译。

tar -xvf jdk-8u231-linux-x64.tar.gz

解压之后进行环境变量的设置:

vim /etc/profile

在最后一行的后面填入:

JAVA_HOME=/usr/local/java/jdk1.8.0_231CLASSPATH=.:$JAVA_HOME/lib.tools.jarPATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME CLASSPATH PATH

并编译profile文件:

source /etc/profile

java -version测试jdk是否安装成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bz57Hxkr-1599549849833)(https://s1.ax1x.com/2020/09/07/wujlMq.png)]

使用Xshell与Xftp连接虚拟机并传入Hadoop镜像文件,传入文件夹(/usr/local/hadoop),进入对应文件夹并进行编译。

tar -zxvf hadoop-2.8.5

设置环境变量

vim /etc/profile

在最后一行填入:

HADOOP_HOME=/usr/local/hadoop/hadoop-2.8.5export HADOOP_HOMEPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATHexport PATH

编译:

source /etc/profile

下面重点是进行Hadoop配置文件的修改是比较麻烦的:

为hdfs库创建几个文件夹:

mkdir /usr/local/hadoop/tmpmkdir -p /usr/local/hadoop/hdfs/namemkdir /usr/local/hadoop/hdfs/data

进入文件夹:

cd /usr/local/hadoop/hadoop-2.8.5/etc/hadoop

修改hadoop-env.sh、yarn-env.sh、core-site.xml 、hdfs-site.xml

hadoop-env.sh

export你的jdk位置

yarn-env.sh

同样export你的jdk位置

**core-site.xml **

fs.default.name
hdfs://master:9000
指定HDFS的默认名称
fs.defaultFS
hdfs://master:9000
HDFS的URI
hadoop.tmp.dir
/usr/local/hadoop/tmp
节点上本地的hadoop临时文件夹

hdfs-site.xml

fs.default.name
hdfs://master:9000
指定HDFS的默认名称
fs.defaultFS
hdfs://master:9000
HDFS的URI
hadoop.tmp.dir
/usr/local/hadoop/tmp
节点上本地的hadoop临时文件夹

下面继续修改xml文件

将目录中的mapred-site.xml.template文件重命名为mapred-site.xml,同时继续修改mapred-site.xml

mapreduce.framework.name
yarn
指定mapreduce使用yarn框架

修改yarn-site.xml文件

yarn.resourcemanager.hostname
master
指定resourcemanager所在的hostname
yarn.nodemanager.aux-services
mapreduce_shuffle
NodeManager上运行的附属服务。 需配置成mapreduce_shuffle,才可运行MapReduce程序

最后增添节点虚拟机的名字slaves

vim slaves

添加你需要的添加的节点虚拟机的名字

至此,所有的配置完成,下面进行复刻虚拟机。

克隆虚拟机并修改子节点虚拟机名字

使用VMware复刻虚拟机,对于复刻出来的两个节点虚拟机我们只需要修改三个文件即可,nwtwork,hostname,ifcfg-ens32

一定要注意的是在复刻虚拟机之后一定要重新生成一下mac地址,不然会和主节点一样的。

network

修改主机名

NETWORKING=yesHOSTNAME=node*

hostname

修改主机名

node*

ifcfg-ens32

修改静态IP

(根据自己的需求修改)

IPADDR = 192.168.145.102

修改完之后reboot重启即可,进行ping测试虚拟机互联,外网连通

实现三个主机之间的ssh免密登录

直接粘贴代码把。。

三个虚拟机全部打开

master机:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

创建无密码公匙

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

添加进keys

ssh master

测试无密登录

node1、node2

mkdir ~/.ssh

master中导入node

scp ~/.ssh/authorized_keys root@node1:~/.ssh/authorized_keysscp ~/.ssh/authorized_keys root@node2:~/.ssh/authorized_keys

三台机器分别输入:

chmod 600 ~/.ssh/authorized_keys

用来赋予文件权限

master节点上分别输入 ssh node1 和 ssh node2 测试是否配置ssh成功

最后进行namenode的格式化,至此Hadoop环境正式搭建完成。

hdfs namenode -format

helloworld

启动:

进入Hadoop的sbin目录

./start-all.sh

正式启动Hadoop!

输入jps检查进程

master

node

进行一个统计词数的测试进行测试hadoop

使用Hadoop来统计/usr/local/hadoop/hadoop-2.8.5中的LICENSE.txt词数

首先在Hadoop库中建立input文件夹:hadoop fs -mkdir /input

将文本放入库中:hadoop fs -put LICENSE.txt /input

进行词数统计:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /input /output

运行效果:

命令行基本操作

ls:

查看文件列表

格式:

hdfs dfs -ls [-R] URL

URL为要查看的文件路径

-R为可选参数,添加-R为递归地查看hdfs中地所有文件,而不添加-R则是查看本文件夹下所有的文件夹和文件列表。

mkdir

创建文件目录

格式:

hdfs dfs -mkdir [-p] URL

-P 为可选参数,添加-P则为递归地创建文件目录,如要在一个并不存在地文件目录下面创建一个子目录,那么hdfs先创建那个并不存在的目录再创建这个子目录,如hdfs dfs -mkdir -p /dir/dir1 命令则会先创建dir再创建dir1。

put

将单个源文件或者多个源文件从本地文件系统copy到目标文件系统中。也可以从标准输入中读取输入,写入目标文件系统中。

hdfs dfs -put 

第一个为本地文件路径,第二个为hdfs文件路径,注意你也可以填入文件目录,hdfs会递归地将文件目录中的所有文件转移到目标文件系统中。

moveFromLocal

作用同put,put是相当于将文件复制过去,moveFromLocal则是将文件剪切过去。

hdfs dfs -moveFromLocal 

get

将hdfs文件系统中的文件或者文件目录拷贝到本地

hdfs dfs -get [-ignorecrc] [-crc] 

crc校验失败的文件通过-ignorecrc选项拷贝,文件和crc校验通过-crc选项拷贝。

mv

将hdfs中的文件从原路径转移到目标路径,并不能跨文件系统。

hdfs dfs -mv URL URL

rm

hdfs删除一个文件或者删除一个文件目录

hdfs dfs -rm [-r] URL

-r可选参数可以递归地删除一个文件目录。

cp

在hdfs中拷贝文件

hdfs dfs -cp URL URL

注意若是填写文件目录那么hdfs会自动递归复制文件目录过去,可选参数:-f:选项将覆盖目标如果它已经存在,-p:选项将保留文件属性(时间戳,许可权等)

cat

查看文件,并将文件内容输出到stdout输出流。

hdfs dfs -cat URL

chmod

改变文件权限,必须在root权限下使用这一命令,或者文件所属者。

hdfs dfs -chmod [-R] URL

-R为递归地对整个目录更改权限。

如:赋予文件全部权限的命令为777:

hdfs dfs -chmod 777 URL

chown

更改所属用户和用户组,如果选用-R那么就递归地对整个目录进行更改

hdfs dfs -chown [-R] URL

进入/home文件夹查看用户与用户组

如将root用户更改为auspic用户:

hdfs dfs -chown -R auspic:auspic /LICENSE.txt

appendToFile

追加一个或者多个本地文件到hdfs文件系统中,也可以从命令行读取输入

hdfs dfs -apendToFile 
..

注意是本地文件系统。

转载地址:http://lncki.baihongyu.com/

你可能感兴趣的文章
C语言 结构体的内存对齐问题与位域
查看>>
C语言 结构体的内存对齐问题与位域
查看>>
C语言数据类型大小和结构体中变量…
查看>>
C语言数据类型大小和结构体中变量…
查看>>
指针数组 与数组指针
查看>>
指针数组 与数组指针
查看>>
深入理解指针函数
查看>>
深入理解指针函数
查看>>
Linux init详解
查看>>
Linux init详解
查看>>
const与define
查看>>
const与#define
查看>>
嵌入式C语言面试题(一)
查看>>
const与define
查看>>
嵌入式C语言面试题(二)
查看>>
嵌入式C语言面试题(一)
查看>>
大学生毕业后的工作与生活
查看>>
嵌入式C语言面试题(二)
查看>>
2440IIC驱动
查看>>
大学生毕业后的工作与生活
查看>>