Hadoop的伪分布安装配置—Hadoop2.7.3-Centos7

一、环境准备

1.1 创建用户
1.2 关闭防火墙
1.3 免密登录
1.4 JDK安装

二、下载安装

三、核心文件配置

3.1 hadoop-env.sh
3.2 hdfs-site.xml
3.3 core-site.xml
3.4 mapred-site.xml
3.5 yarn-site.xml

四、启动检验

--------

一、环境准备

1.1 创建用户

1,登录root用户
2,添加用户

# useradd -m hadoop -s /bin/bash

3,设置密码

# passwd hadoop
更改用户 hadoop 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

(提示可以不用理会)
4,添加sudo权限
1.4.1 `# visudo' 进入编辑模式

1.4.2 在接下述文字后添加:hadoop ALL=(ALL) ALL

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

即:

##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
hadoop  ALL=(ALL)       ALL

1.4.3 保存退出

1.2 关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service   //查看防火墙状态

另外可设置主机名vi /etc/hosts
1921.168.X.X 主机名

1.3 免密登录

$ ls ~/.ssh         # 如果有文件可以删除重新进行生成秘钥
ls: 无法访问'/home/hadoop/.ssh': 没有那个文件或目录
$ exit                           # 退出刚才的 ssh localhost
$ cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
$ ssh-keygen -t rsa              # 会有提示,都按回车就可以
$ ssh-copy-id -i .ssh/id_rsa.pub hadoop@host  # 将私钥复制到对方host机器上

此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了.

1.3 JDK1.8安装

下载地址:jdk1.8
1.3.1 在Linux命令行界面中,执行如下Shell命令(当前登录用户名是hadoop):

$ cd /usr
$ sudo mkdir jvm #创建/usr/jvm目录用来存放JDK文件
$ cd ~ #进入hadoop用户的主目录
$ cd download  #该目录为自己创建,存放了jdk-8u301-linux-x64.tar.gz
$ sudo tar -zxvf ./jdk-8u301-linux-x64.tar.gz -C /usr/jvm/  #把JDK文件解压到/usr/lib/jvm目录下
$ cd /usr/jvm
$ sudo mv ./jdk1.8.0_301/ ./jdk1.8

1.3.2 设置环境变量

$ vi ~/.bash_profile

加入下文本内容:

JAVA_HOME=/usr/jvm/jdk1.8
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
$ source ~/.bash_profile

这时,可以使用如下命令查看是否安装成功:

$ java -version

如果能够在屏幕上返回如下信息,则说明安装成功:

java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)

二、下载安装(在hadoop用户上操作)

2.1 下载地址:hadoop-2.7.3,下载hadoop-2.7.3.tar.gz;
2.2 解压

sudo mkdir /usr/local/hdfs
sudo tar -zxvf ~/download/hadoop-2.7.3.tar.gz -C /usr/local/hdfs/    
cd /usr/local/hdfs
sudo mv ./hadoop-2.7.3/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop       # 修改文件权

2.3 环境配置
如果方便后面进行版本更换,可以先创建软连接

sudo ln -s /usr/local/hdfs/hadoop ~/hdfs/hadoop

设置Hadoop的环境变量 vi ~/.bash_profile,加入以下文本:
HADOOP_HOME=/home/hadoop/hdfs/hadoop
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
生效环境变量source ~/.bash_profile
查看环境变量是否生效:
在任何界面输入hadoop,然后连续按两下Tab键,显示下面内容则设置成功:

$ hadoop
hadoop             hadoop.cmd         hadoop-daemon.sh   hadoop-daemons.sh

三、核心文件配置

需要修改“/usr/local/hdfs/hadoop/etc/hadoop”目录下的配置文件

$ cd /usr/local/hdfs/hadoop/etc/hadoop

3.1 hadoop-env.sh

# The java implementation to use.
export JAVA_HOME=/usr/jvm/jdk1.8

3.2 hdfs-site.xml

<!--数据块的冗余度,默认是3-->
<!--一般来说,数据块冗余度跟数据节点的个数一致,最大不超过3-->
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>

<!--禁用了HDFS的权限检查-->
<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>

可设置数据保存路径

<property>
	<name>dfs.namenode.name.dir</name>
	<value>file:/usr/local/hdfs/hadoop/tmp/dfs/name</value>
</property>
<property>
	<name>dfs.datanode.data.dir</name>
	<value>file:/usr/local/hdfs/hadoop/tmp/dfs/data</value>
</property>

3.3 core-site.xml

$ sudo mkdir /usr/local/hdfs/hadoop/tmp
<!--配置NameNode的地址-->
<!--9000是RPC通信的端口-->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://hostname:9000</value>       # 需要换成自己的hostname
</property>
<!--HDFS对应的操作系统目录-->
<!--默认值是Linux的tmp目录-->
<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/hdfs/hadoop/tmp</value>
</property>

3.4 mapred-site.xml

$ sudo cp ./mapred-site.xml.template ./mapred-site.xml
<!--配置MapReduce运行的框架是Yarn-->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

3.5 yarn-site.xml

<!--配置ResourceManager的地址-->
<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>hostname</value>                           # 需要改成自己的hostname
</property>
<!--MapReduce运行的方式是洗牌-->
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>

四、启动检验

首次启动Hadoop集群时,需要先在Master节点执行名称节点的格式化(只需要执行这一次,后面再启动Hadoop时,不要再次格式化名称节点),命令如下:

$ hdfs namenode -format

成功的话,会看到 “successfully formatted” 的提示,具体返回信息类似如下:

......
 INFO common.Storage: Storage directory /usr/local/hdfs/hadoop/tmp/dfs/name has been successfully formatted.
......
 INFO util.ExitUtil: Exiting with status 0
 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at xiaojy/10.66.50.119
************************************************************/

启动Hadoop: start-all.sh
通过jps查看启动状态:

256547 DataNode
257314 NodeManager
256982 ResourceManager
257478 Jps
256762 SecondaryNameNode
256360 NameNode

启动后通过命令“hdfs dfsadmin -report”查看数据节点是否正常启动,如果屏幕信息中的“Live datanodes”不为 0 ,则说明集群启动成功。

Live datanodes (1):

Name: *******
Hostname: *******
Decommission Status : Normal
Configured Capacity: 357973671936 (333.39 GB)
......
posted @ 2021-08-02 15:55  xiaojy  阅读(257)  评论(0)    收藏  举报