Hadoop 伪分布式环境搭建

Hadoop伪分布式安装步骤

JDK 安装(1.8版本及以上)

貌似如果JDK是1.7的话会遇到一些莫名的BUG…
比如编译Spark的时候就卡了很久!!

解压:
tar -zxvf jdk-7u79-linux-x64.tar.gz -C ~/app

添加到环境变量:
~/.bash_profile

export JAVA_HOME=/home/hadoop/app/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH

使得环境变量生效: source ~/.bash_profile

验证Java是否配置成功: java -version

安装ssh

sudo yum install ssh

配置免密码登录

ssh-keygen -t rsa ==> 会生成密码文件到 /home/hadoop/.ssh/id_rsa 中
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_k eys ==> 将生成的rsa密钥添加到认证密钥中

下载并解压hadoop

下载:

直接去cdh网站下载 ==> http://archive.cloudera.com/cdh5/cdh/5/

解压:

tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C /usr/local
//将 hadoop 文件夹解压到 /usr/locla 文件夹下

配置文件的修改(hadoop_home/etc/hadoop)

hadoop-env.sh 文件中修改:

export JAVA_HOME=/usr/local/jdk1.7.0_80

core-site.xml 文件中添加:

 <property>
      <name>fs.defaultFS</name>
      <value>hdfs:// localhost:8020</value>
 </property>
 <property>
      <name>hadoop.tmp.dir</name>
      <value>/hadoop/tmp</value>
 </property>
 注:hadoop2.X 版本 将端口从 9000 改为 8020

hdfs-site.xml 文件中添加:

 <property>
      <name>dfs.replication</name>
      <value>1</value>
 </property>
  注:只有一个结点,所以副本设置为1

slaves : 有多少个集群,就将主机名添加到slaves 中

启动 HDFS

格式化文件系统(仅第一次执行即可,不要重复执行):./hadoop namenode -format

也可以配置hadoop环境变量之后直接执行: hadoop namenode -format

启动hdfs: sbin/start-dfs.sh

验证是否启动成功:

jps
DataNode
SecondaryNameNode
NameNode

浏览器访问方式: http://ip:50070

停止 HDFS

sbin/stop-dfs.sh

其他问题

启动Hadoop HDFS 而DataNode 无法启动的问题

可能是之前执行 format 操作之后 导致 DataNode 和 NameNode 的 clusterID不一样

 解决方法:

 1. 进入 Hadoop 中 core-site.xml 文件中配置的Hadoop 文件存放路径,即 hadoop.tmp.dir

 2. 进入 dfs 文件中,将 data 文件夹中 VERSION 文件中的 clusterID 改为 name文件夹中 VERSION文件中的 clusterID

运行 Hadoop 或者 Spark 出现 (null) entry in command string: null chmod 0644

当我们尝试将中间计算结果写入本地文件的时候,可能会报出(null) entry in command string: null chmod 0644的错误

解决办法一:

本文标题:Hadoop 伪分布式环境搭建

文章作者:Daniel_柏桦

发布时间:2018年05月02日 - 13:05

最后更新:2018年05月06日 - 22:05

原始链接:https://danielack.github.io/2018/05/02/Hadoop-伪分布式环境搭建/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!