使用CentOs7搭建Hadoop环境[单机版]

事前准备

下载java的压缩包

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载Hadoop压缩包

下载地址:https://archive.apache.org/dist/hadoop/common/

使用第三方远程工具进行远程

1 使用ifconfig获取ip(我这里的192.168.0.51就是我的ip了)

2 打开第三方远程工具(我这里使用的是MobaXterm)

3 点击OK之后,使用你root的密码登录,再将你的java压缩包拖到usr/java目录下,将你的hadoop压缩包拖到usr/hadoop目录下

可能会出现的问题

ifconfig命令失效解决方式

输入如下命令:cd /etc/sysconfig/network-scripts/

再输入ls命令 我画红框格式的就是你要修改的文件(因为每个文件的名字会不一样,基本上是第一个)

修改这个文件,输入如下命令vi ifcfg-ens33

输入i进入插入模式 将ONBOOT改为yes

输入:wq保存并退出

https://note.youdao.com/yws/public/resource/2d5bbb3e7db9e4871a4e88a5cc1dd56b/xmlnote/WEBRESOURCE8b9fd584f6de58e58519179ab29980b8/449

按照顺序输入如下命令:

1 service network restart

2 yum -y install wget

3 yum install net-tools

再输入ifconfig就可以了

Linux安装java

解压压缩包

切换到/usr/java目录(没有则自行创建),将你所下载的压缩包拷贝进来

输入如下命令:tar -zxvf jdk-8u311-linux-x64.tar.gz,其中jdk-8u311-linux-x64.tar.gz为你下载的压缩包文件会,会根据你下载的不同,名字也不同,可以使用tab自动补全哈

设置环境变量

在命令行输入如下命令:vi /etc/profile(进入编辑状态,编辑的是profile这个文件)

切换到最后一行,点击i,会出现--insert--的样式(进入插入模式),我们添加(粘贴)上如下内容:

set java environment
JAVA_HOME=/usr/java/jdk1.8.0_311        
JRE_HOME=/usr/java/jdk1.8.0_311/jre    
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

其中:jdk1.8.0_311为你usr/java目录下的,解压压缩包所生成的文件夹

点击键盘上的Esc,退出插入模式

输入:wq来退出vim模式

再次在命令行中输入source /etc/profile,来让我们之前的修改生效

查看是否安装成功

在命令行中输入java -version,显示出正确的java版本就成功安装java了

SSH的安装与配置

输入如下命令:yum install openssh-server

创建SSH文件夹

再输入如下命令(在ssh文件夹下创建两个文件id_dsa及id_dsa.pub,这是一对私钥和公钥,然后把id_dsa.pub(公钥)追加到授权的key里面去):

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

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

第一次登陆可能会询问是否继续链接 输入yes即可 以后登陆直接使用ssh localhost登进去

Linux安装,使用Hadoop

解压压缩包

切换到/usr/hadoop目录(没有则自行创建),将你所下载的压缩包拷贝进来

在hadoop目录下,输入如下命令:tar -zxvf hadoop-2.7.6.tar.gz,同理,hadoop-2.7.6.tar.gz为你下载的压缩包文件的名字

修改hdfs的配置文件

我这里存放的目录就是hadoop 所以 按我的流程

先切换到hadoop目录:cd /usr/hadoop/hadoop-2.7.6/etc/hadoop

再输入vi hadoop-env.sh

 

输入i,切换到插入模式,将画红框的地方切换为你java的安装路径

修改完毕之后,点击Esc退出并用!wq保存

再输入如下命令:vi core-site.xml(由于我的路径在hadoop解压后的etc/hadoop目录下,所以我的vi可以直接进行编辑,如果你们的路径不是在这个目录下,需要切换路径或者直接vi后面接上全路径/core-site.xml)

输入i,切换到插入模式,将红框的地方切换为如下(后面我就不用输入i,退出这些话了,因为已经说了两次了):

<configuration>
   <!-- 指定HDFS老大(namenode)的通信地址 其中192.168.0.51为你自己虚拟机/云服务器的ip地址 -->
   <property>
       <name>fs.defaultFS</name>
       <value>hdfs://192.168.0.51:9000</value>
   </property>
   <!-- 指定hadoop运行时产生文件的存储路径 -->
   <property>
       <name>hadoop.tmp.dir</name>
       <value>/usr/hadoop/temp</value>
   </property>
</configuration>

其中value的值可以根据自己Linux里面存放的路径进行修改与切换

再修改hdfs-site.xml,输入vi hdfs-site.xml

将configuration切换为如下:

<configuration>
<!-- 设置hdfs副本数量 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>

输入命令 切换到如下目录:cd /usr/hadoop/hadoop-2.7.6/share/doc/hadoop-project/hadoop-project-dist/hadoop-common/

继续输入命令:vi core-default.xml

进入插入模式 添加如下配置信息:

<property>
    <name>fs.hdfs.impl</name>
    <value>org.apache.hadoop.hdfs.DistributedFileSystem</value>
    <description>The FileSystem for hdfs: uris.</description>
</property>

启动与停止

第一次启动得先格式化,输入如下命令:/usr/hadoop/hadoop-2.7.6/bin/hdfs namenode -format

启动hdfs

/usr/hadoop/hadoop-2.7.6/sbin/start-dfs.sh

访问:

你虚拟机的端口:50070 就可以了,选择这里的Datanodes,这里可以看到你hdfs的端口的开启状态

可能会出现端口访问失败的问题,我们使用/sbin/iptables -I INPUT -p tcp --dport 50070 -j ACCEPT就可以开启该端口了

需要开启的端口有:50070,50075

停止hdfs

/usr/hadoop/hadoop-2.7.6/sbin/stop-dfs.sh

修改Hadoop环境变量

命令行输入:vi /etc/profile,使用插入把这一段插入到最后面

export HADOOP_HOME=/usr/hadoop/hadoop-2.7.6/bin
export PATH=$PATH:$HADOOP_HOME

执行:source /etc/profile,使环境变量生效

命令

开启namenode和datanode(切换到hadoop安装目录)

sudo sbin/hadoop-daemon.sh start namenode
sudo sbin/hadoop-daemon.sh start datanode

关闭namenode和datanode(切换到hadoop安装目录)

sudo sbin/hadoop-daemon.sh stop namenode
sudo sbin/hadoop-daemon.sh stop datanode

使用Windows访问Linux的Hadoop

Linux HDFS 命令

(1)查看帮助
hdfs dfs -help

(2)查看当前目录信息
hdfs dfs -ls /

(3)上传文件
hdfs dfs -put /本地路径 /hdfs路径

(4)剪切文件
hdfs dfs -moveFromLocal a.txt /aa.txt

(5)下载文件到本地
hdfs dfs -get /hdfs路径 /本地路径

(6)合并下载
hdfs dfs -getmerge /hdfs路径文件夹 /合并后的文件

(7)创建文件夹
hdfs dfs -mkdir /hello

(8)创建多级文件夹
hdfs dfs -mkdir -p /hello/world

(9)移动hdfs文件
hdfs dfs -mv /hdfs路径 /hdfs路径

(10)复制hdfs文件
hdfs dfs -cp /hdfs路径 /hdfs路径

(11)删除hdfs文件
hdfs dfs -rm /aa.txt

(12)删除hdfs文件夹
hdfs dfs -rm -r /hello

(13)查看hdfs中的文件
hdfs dfs -cat /文件
hdfs dfs -tail -f /文件

(14)查看文件夹中有多少个文件
hdfs dfs -count /文件夹

(15)查看hdfs的总空间
hdfs dfs -df /
hdfs dfs -df -h /

(16)修改副本数    
hdfs dfs -setrep 1 /a.txt

HDFS在windows的调用

指导文档:https://hadoop.apache.org/docs/r1.0.4/webhdfs.html#replication

前提条件:需要有curl

查看HDFS文件的内容

windows命令行输入如下内容

curl -L "http://192.168.0.51:50075/webhdfs/v1/myTask/m2.conf?op=OPEN&namenoderpcaddress=192.168.0.51:9000"
  • 192.168.0.51:你的Linux的ip地址(ifconfig)

  • webhdfs/v1/myTask/README.md:你文件的地址(webhdfs/v1为默认的开头,webhdfs/v1=/)

  • 192.168.0.51:9000:你core-site.xml中写的fs.defaultFS的value

上传文件到HDFS(从windows的本地)

curl -X PUT -T D:\apache-maven-3.8.4\bin\m2.conf "http://192.168.0.51:50075/webhdfs/v1/myTask/m2.conf?op=CREATE&namenoderpcaddress=192.168.0.51:9000&overwrite=true"

下载文件到Windows

curl -L "http://192.168.0.51:50075/webhdfs/v1/myTask/m2.conf?op=OPEN&namenoderpcaddress=192.168.0.51:9000" -o d:\m2.conf
  • d:\m2.conf:你想保存到Windows本地的地址

  • D:\apache-maven-3.8.4\bin\m2.conf:你Windows本地的文件地址

  • 192.168.0.51:9000:你core-site.xml写的fs.defaultFS的value

查看文件内容

curl -L "http://192.168.0.51:50075/webhdfs/v1/myTask/m2.conf?op=OPEN&namenoderpcaddress=192.168.0.51:9000"

创建一个空文件

curl -X PUT "http://192.168.0.51:50075/webhdfs/v1/myTask/test.txt?op=CREATE&namenoderpcaddress=192.168.0.51:9000&overwrite=true"

 

posted @   April-四月一  阅读(337)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示