Hadoop 安装详细步骤
安装前
分别在 master、slave1、slave2 三台机器的 root 用户下的主目录下创建目录 bigdata,即执行下面的命令:
mkdir ~/bigdata
Hadoop 安装包下载
检查 Hadopp 和 java 版本是否对应,在官网中查
hadoop-3.1.3 JDK 1.8
hadoop-2.10.2 JDK 1.7 or 1.8
hadoop-2.9.2 JDK 1.7 or 1.8
hadoop-2.8.2 JDK 1.7+
hadoop-2.7.1 JDK 1.7+
解压 hadoop 压缩安装包
tar zxvf hadoop-2.7.5.tar.gz
执行完后,在当前的目录下会出现一个名为 hadoop-2.7.5 的文件目录,这个目录就是 hadoop 的安装目录。
至此,Hadoop 安装包下载完毕。
在 Hadoop 中包含了 3 个技术组件,分别是:
分布式存储技术 - HDFS
分布式资源管理技术 - Yarn
分布式计算技术 - MapReduce
HDFS 配置安装
修改配置
执行下面的命令进入到 hadoop 的配置文件所在的目录:
cd ~/bigdata/hadoop-2.7.5/etc/hadoop/
- 修改 core-site.xml 配置文件
*vi core-site.xml -
创建 NameNode 需要存储数据的文件目录在master 中创建
mkdir -p ~/bigdata/dfs/name
创建 DataNode 需要存放数据的文件目录
mkdir -p ~/bigdata/dfs/data
core-site.xml 多台PC 需要一致
在 configuration 标签中添加如下的内容:
<property>
<name>fs.defaultFS</name>
<value>hdfs://IP:9999</value><description>表示HDFS的基本路径</description>
</property>
-
修改 hdfs-site.xml 配置文件
<property> <name>dfs.replication</name> <value>1</value> <description>表示数据块的备份数量,不能大于DataNode的数量</description> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/use.../bigdata/hadoop-2.10.2/dfs/name</value> <description>表示 NameNode 需要存储数据的文件目录</description> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/use.../bigdata/hadoop-2.10.2/dfs/data</value> <description>表示 DataNode 需要存放数据的文件目录</description> </property>
-
修改 slaves 文件
执行下面的命令将 slaves 的机器名字填入到 slaves 文件中: 删除文件中 localhost ,然后添加如下内容: 每台pc ip地址
-
配置 Hadoop 依赖的 JAVA_HOME
修改配置 hadoop-env.sh : vi hadoop-env.sh export JAVA_HOME=/usr/local/lib/jdk1.8.0_161
-
拷贝配置到 slave1 和 slave2 上
dfs 文件夹与 <name>dfs.namenode.name.dir</name> 有对应关系 在 master 机器中执行如下的命令 将 NameNode 存储的文件目录以及 DataNode 存储的文件目录拷贝到 slave1 和 slave2 中 scp -r ~/bigdata/dfs root@ip:~/bigdata scp -r ~/bigdata/dfs root@ip:~/bigdata ## 将在 master 中配置好的 hadoop 安装目录拷贝到 slave1 和 slave2 中 scp -r ~/bigdata/hadoop-2.10.2 root@ip:~/bigdata scp -r ~/bigdata/hadoop-2.10.2 root@ip:~/bigdata
-
配置环境变量
在 master 机器上执行下面的命令,配置 hadoop 的环境变量:vi ~/.bash_profile
添加如下的内容:
export HADOOP_HOME=~/bigdata/hadoop-2.7.5 PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后执行下面的命令,使得环境变量生效:
source ~/.bash_profile -
启动验证
到目前为止,HDFS 的配置已经全部结束,接下来我们启动 HDFS 集群,并且验证。
第一次启动 HDFS 之前,需要先对集群做格式化处理,执行下面的命令:## 格式化 HDFS 集群的 namenode hdfs namenode -format
接下来我们在 master 节点中执行下面的命令来启动 HDFS 集群:
start-dfs.sh
我们分别在 master 、slave1、slave2 机器上执行 jps 命令,如果能看到如下的进程,说明机器成功启动:
master : 27376 DataNode 27666 SecondaryNameNode 28515 Jps 27128 NameNode slave1: 23861 Jps 24925 DataNode
-
停止 HDFS 集群
遇到问题
-
1 无法http://meater/dfshealth.html 中显示 其他datenode 节点
WARN org.apache.hadoop.hdfs.server.datanode.datanode:寄存器中出现远程异常 org.apache.hadop.ipc.RemoteException(org.apache.hdop.hdfs.server.procol.DisabledDatanodeException):数据节点拒绝与namenode通信,因为无法解析主机名
-
解决方法
在 hdfs-site.xml 配置文件最加<property> <name>dfs.namenode.datanode.registration.ip-hostname-check</name> <value>false</value> </property>
-
-
2 shh 问题
如果在没有密码的情况下无法 ssh 到 localhost,请执行以下命令:$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
在其他pc:slave1中 添加 密钥
pc: ~/.ssh/konwn_hosts 中ip地址 <空格> ssh-rsa <空格> 密钥信息
Yarn 配置安装
-
创建 Yarn 存储临时数据的文件目录
在 master 机器上执行如下命令:mkdir -p ~/bigdata/yarn/local-dir
-
修改 yarn-site.xml 配置文件
在 master 机器上执行如下的命令来修改 yarn-site.xml 文件:cd ~/bigdata/hadoop-2.7.5/etc/hadoop/ vi yarn-site.xml
在文件中的 configuration 标签中增加如下的内容:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>IP0.0.0.0</value>
<description>表示ResourceManager安装的主机</description>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>IP0.0.0.0:8032</value>
<description>表示ResourceManager监听的端口</description>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/home/mtk21275/bigdata/hadoop-2.10.2/yarn/local-dir</value>
<description>表示nodeManager中间数据存放的地方</description>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1630</value>
<description>表示这个NodeManager管理的内存大小</description>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
<description>表示这个NodeManager管理的cpu个数</description>
</property>
拷贝 yarn 相关配置到 slave1 和 slave2 中
在 master 机器上执行如下的命令:
sudo scp -r /home/mtk21275/bigdata/hadoop-2.10.2/etc/hadoop/yarn-site.xml mtk21275@ip:/home/mtk21275/bigdata/hadoop-2.10.2/etc/hadoop/yarn-site.xml
sudo scp -r /home/mtk21275/bigdata/yarn/local-dir mtk21275@ip:/home/mtk21275/bigdata/yarn/local-dir
-
启动验证
在 master 机器上执行下面的命令,来启动 yarn :start-yarn.sh 主: 21500 ResourceManager 12429 NameNode 12973 SecondaryNameNode 12671 DataNode 从: 9845 NodeManager 26810 DataNode
Yarn 集群 : http://master_IP:8088/cluster
Yarn slave1 信息:http://slave1_ip:8042
- 停止 Yarn 集群
我们可以在 master 机器上执行下面的命令来停止 Yarn 集群:
stop-yarn.sh
问题:
-
1 .slave1 无法正常启动 9845 NodeManager
yarn-site.xml 添加
<property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>
-
2 问题:
== throws java.lang.ClassFormatError accessible: module java.base does not “opens java.lang” to unnamed module ==cd /home/mtk21275/bigdata/hadoop-2.10.2/etc/hadoop/ vim yarn-env.sh 追加: export YARN_RESOURCEMANAGER_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED" export YARN_NODEMANAGER_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"
MapReduce 配置安装
在安装 MapReduce 之前,需要先保证 Yarn 集群是停止的,可以通过执行 stop-yarn.sh 来完成。
-
修改 yarn-site.xml 配置
在 master 机器上修改 yarn-site.xml 文件:cd ~/bigdata/hadoop-2.7.5/etc/hadoop/ vi yarn-site.xml
添加一个配置项:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>为map reduce应用打开shuffle 服务</description>
</property>
resource-types.xml 设置
<?xml version="1.0"?>
<configuration>
<resource-types>
<resource-type>
<name>memory</name>
<units>M</units>
<type-count>MEMORY</type-count>
</resource-type>
<resource-type>
<name>virtual-cores</name>
<units>VCores</units>
<type-count>VCORES</type-count>
</resource-type>
</resource-types>
<scheduler>
<allocation>
<type>memory</type>
<default-unit>M</default-unit>
<value>4096</value>
</allocation>
<allocation>
<type>virtual-cores</type>
<default-unit>VCores</default-unit>
<value>1</value>
</allocation>
</scheduler>
</configuration>
在安装 MapReduce 之前,需要先保证 Yarn 集群是停止的,可以通过执行 stop-yarn.sh 来完成。
-
修改 yarn-site.xml 配置
在 master 机器上修改 yarn-site.xml 文件:cd ~/bigdata/hadoop-2.7.5/etc/hadoop/ vi yarn-site.xml
添加一个配置项:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>为map reduce应用打开shuffle 服务</description>
</property>
-
修改 mapred-site.xml 配置
在 master 机器上执行如下的命令:## 创建 mapred-site.xml 文件 cp mapred-site.xml.template mapred-site.xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> <description>向yarn申请资源</description> </property>
-
将 MapReduce 相关的配置文件同步到 slave1 和 slave2 上
在 master 中执行下面的命令:scp yarn-site.xml mapred-site.xml root@slave1:~/bigdata/hadoop-2.7.5/etc/hadoop scp yarn-site.xml mapred-site.xml root@slave2:~/bigdata/hadoop-2.7.5/etc/hadoop
-
启动 yarn
在 master 机器上执行下面的命令start-yarn.sh
-
验证 MapReduce
在 master 上执行下面的命令:
登录后复制
准备目录和数据
hadoop fs -mkdir /input
hadoop fs -put bigdata/hadoop-2.7.5/etc/hadoop /input
hadoop fs -rm -r /input
执行 MapReduce 任务
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar grep /input/hadoop /input 'dfs[a-z.]+'
如何杀死hadoop作业
不推荐使用以下命令
hadoop job -list
hadoop job -kill $jobId
考虑使用
mapred job -list
mapred job -kill $jobId
web 报错:
-
== 启动hadoop集群DataNode不显示 ==
删除 /bigdata/hadoop-2.10.2/dfs/data/current/
VERSION 文件 -
web Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: Internal Server Error
java 版本问题 下载 -
Permission denied: user=dr.who, access=WRITE, inode=“/”:mtk21275:supergroup:drwxr-xr-x
1)修改hdfs-site.xml,追加dfs.permissions配置。如果是true,则打开权限检查系统;如果是false,权限检查就是关闭的。 <property> <name>dfs.permissions.enabled</name> <value>false</value> </property> 追加dfs.permissions配置。如果是true,则打开权限检查系统;如果是false,权限检查就是关闭的。 2)修改权限,用hadoop增加写的权限,hadoop fs -chmod -R 777 / 777权限即为UGO都为可读可写可执行。 切换到你的虚拟机界面 命令如下:
hadoop fs -chmod -R 777 /
MapReduce
hadoop fs -put /home/mtk21275/bigdata/hadoop-2.10.2/etc/hadoop /input文章来源:https://www.toymoban.com/news/detail-730255.html
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar grep /input/hadoop /input文章来源地址https://www.toymoban.com/news/detail-730255.html
到了这里,关于Hadoop HDFS 安装详细步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!