Author : Ali0th

Date : 2019-4-6

前言

最近上手大数据,入门一下hadoop,单机部署撸了几天,终于部署起来了,遇到了不少坑。这篇文章把我整个过程码下来了,包括了各个步骤和报错处理。

环境

CentOS release 6.4
openjdk version "1.8.0_201"
复制代码

系统服务

关闭 iptables

# 关闭防火墙:
service iptables stop
# 从开机启动项中移除防火墙
chkconfig iptables off
复制代码

关闭selinux服务(重启生效)

vim /etc/selinux/config
SELINUX=disabled
复制代码

hostname 配置

vim /etc/sysconfig/network
复制代码

这里默认为 localhost.localdomain

ssh 免密登录

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
复制代码

测试是否成功,执行下面命令,若不用输入密码则成功。

ssh localhost
复制代码

java 安装

使用 yum 安装

# 查看yum包含的jdk版本
yum search java
# 安装jdk
yum install java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
复制代码

查看环境变量

export
复制代码
vi /etc/profile
复制代码

查看 jvm 目录

ll /usr/lib/jvm/
复制代码

输出如下,其中java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64JAVA_HOME目录。

[root@localhost java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64]# ll /usr/lib/jvm/
total 4
lrwxrwxrwx. 1 root root   26 Apr  3 15:47 java -> /etc/alternatives/java_sdk
lrwxrwxrwx. 1 root root   32 Apr  3 15:47 java-1.8.0 -> /etc/alternatives/java_sdk_1.8.0
drwxr-xr-x. 7 root root 4096 Apr  3 15:47 java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
lrwxrwxrwx. 1 root root   48 Apr  3 15:47 java-1.8.0-openjdk.x86_64 -> java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
lrwxrwxrwx. 1 root root   34 Apr  3 15:47 java-openjdk -> /etc/alternatives/java_sdk_openjdk
lrwxrwxrwx. 1 root root   21 Apr  3 15:47 jre -> /etc/alternatives/jre
lrwxrwxrwx. 1 root root   27 Apr  3 15:47 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx. 1 root root   52 Apr  3 15:47 jre-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64 -> java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64/jre
lrwxrwxrwx. 1 root root   52 Apr  3 15:47 jre-1.8.0-openjdk.x86_64 -> java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64/jre
lrwxrwxrwx. 1 root root   29 Apr  3 15:47 jre-openjdk -> /etc/alternatives/jre_openjdk
复制代码

配置全局变量:

vim /etc/profile
复制代码

添加环境配置如下:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
复制代码

全局变量立即生效

source /etc/profile
复制代码

hadoop 下载与相关环境配置

创建账户

groupadd hadoop
useradd hadoop -g hadoop
ll -d /home/hadoop
grep hadoop /etc/passwd /etc/shadow /etc/group
passwd hadoop # hadoop123
复制代码

以 root 執行 visudo, 將 hadoop 加入 sudoers,在 root ALL=(ALL) ALL 下加入。

hadoop  ALL=(ALL)       ALL
复制代码

下载 hadoop 并解压。

wget http://apache.claz.org/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz
tar -xzf hadoop-3.1.2.tar.gz
sudo mv hadoop-3.1.2 /usr/local/hadoop
复制代码

添加启动项。

vim /etc/profileexport HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinsource /etc/profile
复制代码

创建数据存储目录:

  1. NameNode 数据存放目录: /usr/local/data/hadoop/name
  2. SecondaryNameNode 数据存放目录: /usr/local/data/hadoop/secondary
  3. DataNode 数据存放目录: /usr/local/data/hadoop/data
  4. 临时数据存放目录: /usr/local/data/hadoop/tmp
mkdir -p /usr/local/data/hadoop/name
mkdir -p /usr/local/data/hadoop/secondary
mkdir -p /usr/local/data/hadoop/data
mkdir -p /usr/local/data/hadoop/tmp
复制代码

hadoop 配置与启动

配置 hadoop-env.sh、hdfs-site.xml、core-site.xml、mappred-site.xml、yarn-site.xml

进入配置目录:

cd /usr/local/hadoop/etc/hadoop/
复制代码

hadoop-env.sh

添加JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64
复制代码

core-site.xml

<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost.localdomain:9000</value><description>hdfs内部通讯访问地址</description></property><property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop/data/</value><description>hadoop数据存放</description></property>
</configuration>
复制代码

hdfs-site.xml

<!--
# replication 副本数量
# 因为是伪分布式 设置为1
# 新版本的 hadoop 块默认大小为128mb
--><configuration><property><name>dfs.replication</name><value>1</value>
</property></configuration>
复制代码

mapred-site.xml

# yran 集群
mv mapred-site.xml.template mapred-site.xml
复制代码
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value>
</property></configuration>
复制代码

yarn-site.xml

arn.resourcemanager.hostname yarn集群的老大

<configuration><property><name>yarn.resourcemanager.hostname</name><value>localhost.localdomain</value>
</property><property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value>
</property> </configuration>
复制代码

dfs 启动

格式化hadoop文件系统

cd /usr/local/hadoop
./bin/hdfs namenode -format
复制代码

启动 dfs

./sbin/start-dfs.sh
复制代码

使用 jps 查看服务是否已经启动

[hadoop@localhost hadoop]$ jps
6466 NameNode
6932 Jps
6790 SecondaryNameNode
6584 DataNode
复制代码

全部启动

./sbin/start-all.sh
复制代码

结果截图如下:

报错

问题:

localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

解决:

如果无法使用ssh无密码连接其他节点的主机,那么在启动hadoop的时候会出现的输入其他主机的密码,即使正确输入也无法认证

问题:

localhost: ERROR: Unable to write in /usr/local/hadoop/logs. Aborting.

解决:

sudo chmod 777 -R /usr/local/hadoop/
复制代码

问题:

localhost: /usr/local/hadoop/bin/../libexec/hadoop-functions.sh: line 1842: /tmp/hadoop-hadoop-namenode.pid: Permission denied localhost: ERROR: Cannot write namenode pid /tmp/hadoop-hadoop-namenode.pid.

解决:

修改 hadoop-env.sh

export HADOOP_PID_DIR=/usr/local/hadoop/tmp/pid
复制代码

问题:

[hadoop@localhost hadoop]$ ./sbin/start-dfs.sh Starting namenodes on [localhost] Starting datanodes Starting secondary namenodes [localhost] 2019-04-06 07:26:22,110 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

解决:

stackoverflow.com/questions/1…

cd /usr/local/hadoop/lib
ldd libhadoop.so.1.0.0./libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)linux-vdso.so.1 =>  (0x00007fff901ff000)libdl.so.2 => /lib64/libdl.so.2 (0x00007f8ceda5d000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8ced83f000)libc.so.6 => /lib64/libc.so.6 (0x00007f8ced4ac000)/lib64/ld-linux-x86-64.so.2 (0x00000031c1e00000)
复制代码
# download
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.bz2
wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.bz2# 解压
tar -xjvf glibc-2.14.tar.bz2
cd glibc-2.14
tar -xjvf ../glibc-linuxthreads-2.5.tar.bz2
# 加上优化开关,否则会出现错误'#error "glibc cannot be compiled without optimization"'
cd ../
export CFLAGS="-g -O2"glibc-2.14/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checksmake
sudo make install
复制代码

问题:

2019-04-06 13:08:58,376 INFO util.ExitUtil: Exiting with status 1: java.io.IOException: Cannot remove current directory: /usr/local/data/hadoop/tmp/dfs/name/current

解决:

权限问题

sudo chown -R hadoop:hadoop /usr/local/data/hadoop/tmp
sudo chmod -R a+w /usr/local/data/hadoop/tmp
复制代码

资料

juejin.im/entry/5a0a8…

blog.51cto.com/xpleaf/2082…

Ubuntu下搭建hadoop出现Permission denied (publickey,password)的问题

hadoop单机安装,小白上手最详细教程-Ali0th相关推荐

  1. 大数据-安装 Hadoop3.1.3 详细教程-单机/伪分布式配置(Centos)

    Centos 7 安装 Hadoop3.1.3 详细教程 前言 00 需准备 01 需掌握 一.准备工作 00 环境 01 创建 hadoop 用户 02 修改 hadoop 用户权限 03 切换为 ...

  2. Hadoop 2.0集群配置详细教程

    Hadoop 2.0集群配置详细教程 前言 Hadoop2.0介绍 Hadoop是 apache 的开源 项目,开发的主要目的是为了构建可靠,可拓展 scalable ,分布式的系 统, hadoop ...

  3. JetBrains DataGrip安装和使用的详细教程

    前言 日常开发中少不了各种可视化数据库管理工具.如果需要同时能连接多种数据库,大家肯定都会想到 DBeaver.Navicat Premium.本文介绍另一个十分好用且强大的工具:DataGrip. ...

  4. mac homebrew 卸载php,Mac_苹果mac电脑中brew的安装使用及卸载详细教程,brew 又叫Homebrew,是Mac OSX上的 - phpStudy...

    苹果mac电脑中brew的安装使用及卸载详细教程 brew 又叫Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便 brew类似 ...

  5. mysql.msi卸载_MySql安装与卸载的详细教程

    本文为大家分享了MySql安装与卸载的教程,供大家参考,具体内容如下 一.MYSQL的安装 1.打开下载的mysql安装文件,双击运行mysql-5.5.40-win32.msi. 2.选择安装类型, ...

  6. mysql安装 linux 5.6,Linux安装MySql5.6版详细教程

    Linux安装MySql5.6版详细教程 Szx • 2019 年 02 月 26 日 首先下载mysql,然后上传到 /usr/local/tmp/下(如果没有这个目录创建一个即可或者存放其他目录) ...

  7. centos llvm安装_在CentOS上编译安装llvm-3.8.1详细教程

    在CentOS上编译安装llvm-3.8.1详细教程 2020/1/11  18:12 1682次 注:CentOS版本是6.8,6.x版本的操作类似 安装需求: [list] [*]Cmake: 3 ...

  8. post修改服务器数据源,postgresql安装及配置超详细教程

    1. 安装 根据业务需求选择版本,官网下载 初始化数据库 执行完初始化任务之后,postgresql 会自动创建和生成两个用户和一个数据库: linux 系统用户 postgres:管理数据库的系统用 ...

  9. Hadoop伪分布式配置和搭建,hadoop单机安装,wordcount实例测试,hadoop安装java目录怎么找,问题及问题解决方法

    Hadoop伪分布式配置和搭建,hadoop单机安装,wordcount实例测试,hadoop安装java目录怎么找,问题及问题解决方法 环境说明 系统:ubuntu18.04 主机名:test1 用 ...

最新文章

  1. 论文解读 | 微信看一看实时Look-alike推荐算法
  2. L1-005 考试座位号
  3. echarts line 去掉最外围方框_最容易被忽略的简单技巧,3000块的化妆班都学不到...
  4. D - Covering HDU - 6185(未解决完)
  5. IT项目中的6类知识转移
  6. 为VMware虚拟机内安装的Ubuntu 16.04设置静态IP地址
  7. 『OpenCV3』Harris角点特征_API调用及python手动实现
  8. Tomcat日志设置
  9. 摄影欣赏:30幅五光十色的精美秋天风景摄影作品
  10. Kotlin Suppress 的非常规用法
  11. linux 修改路由表 永久,CentOS 6.9永久设置静态路由表以及路由表常用设置
  12. 读书笔记数据科学入门————可视化数据
  13. CDQZ多校集训题目--盛夏
  14. CocosCreator 创建纯色精灵(Sprite单色)组件
  15. Vue全家桶之VueX(六)
  16. 国内安全厂商护航XP能力引争议
  17. 【CarSim】指定CarSim联合的Matlab版本
  18. 小爱同学桌面提醒器开发0基础教程
  19. java做websocket的客户端wss协议
  20. QT布局以及使用QSS

热门文章

  1. python 如何建立图形用户界面_python(五)图形用户界面easyGUI入门
  2. PHP邮件队列,php群发邮件,用数据库做邮件队列
  3. python列出文件夹最新的几个文件_Python列出一个文件夹及其子目录的所有文件
  4. qt5中字符串转字符串数组_Qt中的对象类型转换(Qstring 转换char*有三种方法)
  5. 让我撸一次HashMap
  6. 空心磁珠铁氧体抗干扰屏蔽磁环RH磁通高频磁芯圆形穿心磁珠滤波器
  7. 百度线下赛道报名通知!
  8. 2021年春季学期-信号与系统-第十三次作业参考答案-第八小题
  9. 2021年春季学期-信号与系统-第十一次作业参考答案-第二小题
  10. TPS54360 输入60V,输出3.5A降压开关电压