Hadoop单机/伪分布式部署

使用 VMware Workstation 安装 1台centos 7,并在上面实现 hadoop 的单机部署。

配置静态 IP

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

Alt text

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="cafa4500-048b-41a3-a880-0ea13ff55b07"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.64.111
NETMASK=255.255.255.0
GATEWAY=192.168.64.2
DNS1=192.168.64.2

sudo vim /etc/hostname

Alt text

sudo vim /etc/hosts

Alt text

创建 hadoop 用户

创建并设置密码

Alt text

vim /etc/sudoers

Alt text

上传安装包

在 centos 根目录下创建 devops 目录 mkdir /devops

上传 Hadoop jar 包和 jdk jar 包

Alt text

配置 java 环境

解压 jdk 包

tar zxvf jdk-8u212-linux-x64.tar.g

Alt text

创建 my_env.sh 环境变量脚本

vim /etc/profile.d/my_env.sh

内容如下

Alt text

使新配置的环境变量生效

source /etc/profile

Alt text

配置 Hadoop 环境

解压 Hadoop 包

tar -zxvf hadoop-3.1.3.tar.gz

编辑环境变量

vim /etc/profile.d/my_env.sh

Alt text

使新配置的环境变量生效

source /etc/profile

Alt text

配置 Hadoop 配置文件

vim /devops/hadoop-3.1.3/etc/hadoop/core-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<configuration>

<!-- 指定NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop111:9820</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/devops/hadoop-3.1.3/data</value>
</property>

<!-- 配置HDFS网页登录使用的静态用户为hadoop -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
</property>

<!-- 配置该hadoop用户(superUser)允许通过代理访问的主机节点 -->
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<!-- 配置该hadoop用户(superUser)允许通过代理用户所属组 -->
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
<!-- 配置该hadoop用户(superUser)允许通过代理的用户-->
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>

</configuration>

vim /devops/hadoop-3.1.3/etc/hadoop/hdfs-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<configuration>
<!-- nn web端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop111:9870</value>
</property>
<!-- 2nn web端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop111:9868</value>
</property>
<!-- NameNode存储其元数据的本地文件系统路径-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>
<!-- datanode数据存储目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>
<!-- HDFS中文件的数据块副本数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

vim /devops/hadoop-3.1.3/etc/hadoop/yarn-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<configuration>
<!-- 指定MR走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop111</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- yarn容器允许分配的最大最小内存 -->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
<!-- yarn容器允许管理的物理内存大小 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
<!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>

vim /devops/hadoop-3.1.3/etc/hadoop/mapred-site.xml

1
2
3
4
5
6
7
<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

初始化NameNode的数据目录

hdfs namenode -format

由于前面一直使用root操作,所以 hadoop 安装目录的所有权不对,这里变更 hadoop 安装目录的所有权

sudo chown -R hadoop:hadoop hadoop-3.1.3

设置 SSH 免密访问本地

su hadoop 注意下面这条命令连按两次回车 ssh-keygen cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa

启动和关闭 Hadoop

由于前面配置了 /devops/hadoop-3.1.3/sbin 的环境变量,这里可以直接使用 start-all.sh 启动

Alt text

Alt text

Alt text

Alt text

使用 stop-all.sh 关闭 hadoop 服务

Alt text

|