Hadoop 完全分布式安装配置
0 条评论用到的资源
你需要知道的
- Linux 基础
- 文件操作命令 cd \ rm \ cp \ mv \ ls
- 解压命令 tar \ unzip
- 编辑器 vim
- 文件上传 scp
- 其他 source \ sh \ bash
开始安装
1、将master节点JDK安装包解压到/opt/module路径中。
- 创建目录
mkdir /opt/module
cd /opt/module
- 从本地上传jdk压缩包
scp jdk-8u212-linux-x64.tar.gz root@www.deadmau5v.cool:/opt/module
- 解压
tar -xvf jdk-8u212-linux-x64.tar.gz
cd jdk1.8.0_212
2、修改容器中/etc/profile文件,设置JDK环境变量并使其生效。
- 添加环境变量
vim /etc/profile
在尾部增加
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$JAVA_HOME/bin:$PATH
保存退出 - 刷新环境变量
source /etc/profile
结果
[root@hecs-227425 jdk1.8.0_212]# java
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-server to select the "server" VM
....
[root@hecs-227425 jdk1.8.0_212]# javac
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
....
3、请完成host相关配置,将三个节点分别命名为master、slave1、slave2,并做免密登录,用scp命令并使用绝对路径从master复制JDK解压后的安装文件到slave1、slave2节点(若路径不存在,则需新建),并配置slave1,slave2相关环境变量。
- 修改主机名称
vim /etc/hostname
- 重启更新主机名称
reboot
- 生成密钥对 并发送给服务器 免密登录
ssh-keygen
ssh-copy-id root@master
ssh-copy-id root@slave1
ssh-copy-id root@slave2
4、在master将Hadoop解压到/opt/module目录下,并将解压包分发至slave1、slave2中,其中master,slave1,slave2节点均作为datanode,配置好相关环境,初始化Hadoop环境namenode。
-
上传到 master
scp hadoop-3.1.3.tar.gz root@www.deadmau5v.cool:/opt/module
-
解压
tar -xvf hadoop-3.1.3.tar.gz
-
分发至slave1、slave2
scp -r /opt/module root@slave1:/opt/module
-
修改配置文件
vim core-site.xml
<!--NameNode-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata1:8020</value>
</property>
<!--数据存储位置-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!--配置用户-->
<property>
<name>hadoop.http.staticuser.user</name>
<value>deadmau5v</value>
</property>
vim hdfs-site.xml
<!-- 在configuration中添加以下配置 -->
<!-- NameNode对外暴露的Web端访问地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!-- 2NN 对外暴露的Web端访问地址(2NN安装在hadoop104上) -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
vim yarn-site.xml
<!-- 指定MR走shuffle -->
<!-- 在yarn-default.xml中该项默认值为空,但是官方推荐使用mapreduce_shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- 环境变量的继承 -->
<!-- Hadoop3.1.x需要配置,因为yarn-default.xml中该项默认值缺少了HADOOP_MAPRED_HOME -->
<!-- 到了Hadoop3.2.x就不需要再配置该项了,可以直接使用yarn-default.xml中的默认值 -->
<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>
vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
-
初始化
hdfs namenode -format
-
修改启动用户
vim /etc/profile
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
如果报错 尝试给自己密钥 ssh-copy-id root@127.0.0.1
如果找不到JAVA_HOME 修改hadoop-env.sh
export JAVA_HOME=java位置
- 同步集群 并启动
rsync -av ./ root@slave1:/opt/module/hadoop-3.1.3/
sbin/start-dfs.sh