企业运维实战--Hadoop学习(一)--linux下HDFS的搭建、hadoop实现主从复制
一、Hadoop搭建与配置
环境准备:三台纯净的虚拟机,server1负责hadoop主节点配置,server2、server3待定。
安装包准备:
hadoop安装包,官网可下载
jdk tar包
在server1中创建hadoop用户,将安装包scp到该用户家目录中
解压安装包,设软链接方便使用
tar zxf hadoop-3.2.1.tar.gz
tar zxf jdk-8u181-linux-x64.tar.gz
进入hadoop目录,修改配置文件指向JAVA和HADOOP
cd hadoop/
vim hadoop-env.sh
export JAVA_HOME=/home/hadoop/java
export HADOOP_HOME=/home/hadoop/hadoop
返回解压目录,创建测试文件夹input,并导入数据
cd ../..
mkdir input
cp etc/hadoop/*.xml input/
查看hadoop命令行如何操作
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar
按要求过滤input中的文件,将过滤结果存储到output文件中,过滤条件为抓取dfs开头并中间带任意字母的行
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'
查看抓取过滤结果
du -sh input/
cd output/
ls
cat *
cd
修改配置文件,配置文件位于解压文件下的etc/hadoop/
下
vim core-site.xml
tail core-site.xml
vim hdfs-site.xml
tail hdfs-site.xml
cat workers
给hadoop用户设定密码,配置免密登陆localhost
ssh-keygen
ssh-copy-id localhost
cd hadoop
ls
ssh localhost
初始化hadoop
bin/hdfs namenode -format
初始化生成的文件会放到/tmp下
ls /tmp/
开启hadoop
sbin/start-dfs.sh
查看进程
ps ax
在root配置jdk环境变量
vim .bash_profile
source .bash_profile
查看已设置的hadoop模块,若命令执行报错,则说明jdk环境变量配置有问题,注意:是在root下配置全局变量。
jps
测试访问:firefox:172.25.9.1:9870 #hadoop默认开放端口为9870
出现上述则证明hadoop配置成功。
创建hadoop用户分布式系统中的家目录
命令行查看hadoop主页
cd hadoop
bin/hdfs dfsadmin -report
查看命令用法 有点类似shell
bin/hdfs dfs --help
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/hadoop
创建好后才可使用命令行查看里面的内容,否则会报错
bin/hdfs dfs -ls
此时家目录为空。
将input文件上传到hadoop上
bin/hdfs dfs -put input
再次查看
bin/hdfs dfs -ls
将output上传
bin/hdfs dfs -put output
删除本地文件,hadoop中仍然存在
rm -fr input/ output/
读取input中的内容,计算其单词数量,输出到output1中
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount input output1
查看output1的结果
命令行查看结果
bin/hdfs dfs -cat output1/*
二、网络文件系统nfs实现hadoop从机同步主机
需要三台虚拟机,server1为Hadoop主机,server2、server3为hadoop从机
首先关闭hadoop再进行配置
nfs用法配置可查看本人之前的博客:https://blog.csdn.net/weixin_45233090/article/details/116755703?spm=1001.2014.3001.5501
server1 root用户:
首先配置nfs,安装相关配置
yum install -y nfs-utils
ssh server2 yum install -y nfs-utils
ssh server3 yum install -y nfs-utils
编写nfs访问控制文件,注意:此处的uid,gid为hadoop用户的uid、gid,且三台虚拟机的hadoop用户id必须保持一致,否则无法进行网络文件共享。
vim /etc/exports
/home/hadoop *(rw,anonuid=1000,anongid=1000)
cat /etc/exports
开启服务并校验查看共享目录位置
systemctl start nfs
exportfs -r
exportfs -rv
server1 hadoop用户:
关闭hadoop服务再配置!
sbin/stop-dfs.sh
yum install -y nfs-utils
修改配置文件
cd hadoop
vim etc/hadoop/core-site.xml
tail etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://172.25.9.1:9000</value>
</property>
</configuration>
vim etc/hadoop/hdfs-site.xml
cat etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
vim etc/hadoop/workers
cat etc/hadoop/workers
172.25.9.2
172.25.9.3
初始化hadoop
bin/hdfs namenode -format
先进行server2、server3挂载任务,匿名用户免密登陆自然会实现
ssh localhost
ssh 172.25.9.1
ssh 172.25.9.2
ssh 172.25.9.3
均不需要密码
登陆后记得退出。
server2\3 root用户:
yum install -y nfs-utils
useradd hadoop
mount 172.25.9.1:/home/hadoop/ /home/hadoop/
hadoop用户操作,检查hadoop配置
su - hadoop
jps
测试:firefox:172.25.9.1:9870 查看hadoop数据节点工作信息