hadoop完全分布式手动安装(一主多从centos linux各版本均试验成功,文档完整无一遗漏)

本文主要是介绍hadoop完全分布式手动安装(一主多从centos linux各版本均试验成功,文档完整无一遗漏),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

hadoop完全分布式手动安装(一主多从centos linux各版本均试验成功,文档完整无一遗漏)


网上的文章99%都是垃圾,我凭良心书写,确保幼儿园同学也能安装成功!


查看系统环境
   1、查看Centos的版本
查看版本
lsb_release -a
或:
rpm -q centos-release
   2、查看是否安装openjdk
rpm -qa | grep java
   3、查看是否安装mariadb(mysql)
rpm -qa | grep mariadb
   4、查看是否安装mysql
rpm -qa | grep mysql
   5、查看是否安装ssh
rpm -qa | grep ssh
   6、查看是否安装ntp
rpm -qa | grep ntp
   7、查看是否安装httpd
rpm -qa | grep httpd
   8、如果安装了openjdk、mariadb就卸载
        yum -y remove java 具体安装的包
        yum -y remove mariadb 具体安装的包
yum -y remove mariadb mariadb-libs-5.5.41-2.el7_0.x86_64
一、环境配置
  1、修改机器名
1、Centos7以下版本: vi /etc/sysconfig/network 
        2、Centos7级以上版本:hostnamectl set-hostname hadoop_master
   查看主机名 hostnamectl --static
修改/etc/hosts添加 (所有机器)
vi /etc/hosts
192.168.1.153 master #IP地址依据你的实际情况来
192.168.1.124 slave1 #IP地址依据你的实际情况来
192.168.1.234 slave2 #IP地址依据你的实际情况来
   2、环境设置 (所有机器)
echo never > /sys/kernel/mm/transparent_hugepage/defrag
vi /etc/rc.local 添加 echo never > /sys/kernel/mm/transparent_hugepage/defrag

echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >>/etc/rc.local
sudo sysctl vm.swappiness=10
centos 7以下
vi /etc/sysctl.conf 添加 vm.swappiness=10
centos7以上 
vi /usr/lib/sysctl.d/00-system.conf 添加 vm.swappiness=10
或者采用 关闭 echo "vm.swappiness=10" >>/usr/lib/sysctl.d/00-system.conf #将字符串 vm.swappiness=10 添加到 00-system.conf 这个文件的末端
   3、配置ssh (所有机器)
a、如果端口不是22则需要修改默认端口
  vi /etc/ssh/ssh_config 修改 ssh默认的端口
b、安装openssh
  yum install openssh
c、配置无密码登录
  ssh-keygen -t rsa 一路回车即可
  cd /root/.ssh
  cp id_rsa.pub master.pub 
  cp id_rsa.pub slave1.pub
  cp id_rsa.pub slave2.pub

  cat /root/.ssh/master.pub >> /root/.ssh/authorized_keys
  cat /root/.ssh/master.pub >> /root/.ssh/authorized_keys
  cat /root/.ssh/slave1.pub >> /root/.ssh/authorized_keys
  cat /root/.ssh/slave2.pub >> /root/.ssh/authorized_keys
  cat /root/.ssh/slave2.pub >> /root/.ssh/authorized_keys
  service sshd restart
   4、关闭防火墙 (所有机器)
service iptables stop #临时关闭
/etc/rc.d/init.d/iptables restart 
chkconfig iptables off #重启后生效


centos 7关闭防火墙
service firewalld stop
chkconfig firewalld off #重启后生效
   5、配置时间同步服务ntp 
        如果没有先安装 ntpd服务: yum install ntp
vi /etc/ntp.conf
master机器添加如下内容:
server time.nist.gov
slave机器添加如下内容:
restrict 192.168.1/24 mask 255.255.255.0 nomodify
server master
启动ntp服务
service ntpd restart
将ntp服务加入开机启动中
chkconfig ntpd on
查看ntp服务状态 ntpstat
从主服务器更新一下时间
ntpdate -u hadoop_master
    6、
二、软件手动安装
    1、JDK安装
a、下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
b、解压到/opt/目录下 tar zxvf jdk-8u111-linux-x64.tar.gz -C /opt/
c、目录名修改为jdk:mv /opt/jdk1.8.0_111 /opt/jdk
d、配置jdk环境
vi /etc/profile
添加:
export JAVA_HOME=/opt/jdk
export JRE_HOME=/opt/jdk/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:/jre/lib/dt.jar:/lib/tools.jar:/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
        java -version 查看java版本是否正确
    2、安装mysql
        a、下载 mysql www.oracle.com
b、下载地址 http://dev.mysql.com/downloads/mysql/
c、解压到/usr/local/目录下 tar zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
d、改名为 mysql: mv mysql-5.7.16-linux-glibc2.5-x86_64 mysql
e、建立用户组:groupadd mysql
f、建立用户mysql:useradd -r -g mysql -s /bin/false mysql  #设置-s /bin/false表示mysql不能作为登入用户
g、更改mysql目录的拥有者权限:
   cd mysql/
   mkdir data    #作为存放数据的目录
   chown -R mysql . 
   chgrp -R mysql .
安装依赖包:yum install libaio
h、安装mysql: ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
   初始化成功后会生成一个初始密码:lYFUkH.E>2TF(每次都不一样,依据实际的来)
   bin/mysql_ssl_rsa_setup --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
i、配置权限:
chown -R root /usr/local/mysql/
chown -R mysql /usr/local/mysql/data/
j、进行配置:
将 my.cnf复制到 /etc/目录下
添加如下内容:
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
bind-address=0.0.0.0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


my.cnf中添加 bind-address= 0.0.0.0 是为了防止某些服务器采用ipv6
k、配置mysql开机启动兵启动服务
     mkdir /etc/init.d/mysql
     cp support-files/mysql.server /etc/init.d/mysqld (建立mysqld服务)
     service mysqld start
     chkconfig mysqld on
k、修改密码
     使用 mysql -uroot -p
     输入初始化生成的密码进入后
第一次进入通过:set password = password('123456'); 将密码修改成 123456
l、设置Mysql远程访问权限:

grant all privileges on *.* to 'root'@'%' identified by 'wendy197626' with grant option;
flush privileges; 

   3、安装完JDK和Mysql之后修改整体的环境变量:
     vi /etc/profile
export MYSQL_HOME=/opt/mysql
export JAVA_HOME=/opt/jdk
export JRE_HOME=/opt/jdk/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MYSQL_HOME/bin
export CLASSPATH=.:/jre/lib/dt.jar:/lib/tools.jar:/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH MYSQL_HOME
     保存并更新环境 source /etc/profile
   4、安装hadoop2.7.3 (一主两从也就是一台namenode两台datanode)
a、下载地址:https://hadoop.apache.org/releases.html
b、解压到/opt/目录下 tar zxvf ~/soft/hadoop.tar.gz -C /opt/ 
解压后目录名修改为hadoop:mv /opt/hadoop-2.7.3 /opt/hadoop
c、配置hadoop环境
第一步:
       在/opt/ 建立数据存储目录
cd /opt/hadoop
mkdir tmp
mkdir dfs
mkdir dfs/data
mkdir dfs/name
mkdir journaldata (暂时不需要)
第二步:
参数配置:
       cd /opt/hadoop/etc/hadoop
配置文件在:/opt/hadoop/etc/hadoop 一共7个主要文件
1)修改:vi /opt/hadoop/etc/hadoop/hadoop-env.sh
#头部添加如下内容:
export JAVA_HOME=/opt/jdk
export HADOOP_HOME=/opt/hadoop
export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC"
2)修改:vi /opt/hadoop/etc/hadoop/yarn-env.sh 
#头部添加如下内容:
export JAVA_HOME=/opt/jdk
3)修改:vi /opt/hadoop/etc/hadoop/core-site.xml 
<configuration>
#中间添加如下内容
<property>
<name>hadoop.tmp.dir</name>
<value>file:/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>


4)修改:vi /opt/hadoop/etc/hadoop/hdfs-site.xml (dfs.replication表示数据副本数量,必须小于集群节点数)
<configuration>
#中间添加如下内容
<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/opt/hadoop/dfs/name</value>
</property>
<property>
 <name>dfs.datanode.data.dir</name>
 <value>file:/opt/hadoop/dfs/data</value>
 </property>
<property>
 <name>dfs.replication</name>
 <value>2</value>
</property>
</configuration>


5)修改:vi /opt/hadoop/etc/hadoop/mapred-site.xml 
<configuration>
#中间添加如下内容 (启动方式yarn)
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
</configuration>




6)修改:vi /opt/hadoop/etc/hadoop/yarn-site.xml
<configuration>
#中间添加如下内容 
 <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>
</configuration>


7)修改:vi /opt/hadoop/etc/hadoop/slaves集群配置
删除默认的localhost,增加从节点机器名或IP地址(按行)


d、环境配置
vi /etc/profile
添加如下内容(没有的部分)
HADOOP_PREFIX=/opt/hadoop
export HADOOP_PREFIX
export HADOOP_HOME=/opt/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export MYSQL_HOME=/usr/local/mysql
export JAVA_HOME=/opt/jdk
export JRE_HOME=/opt/jdk/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MYSQL_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export CLASSPATH=.:/jre/lib/dt.jar:/lib/tools.jar:/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH MYSQL_HOME HADOOP_HOME


保存后,更新环境(确保每台机器的配置完全一致哦)
source /etc/profile
e、启动Hadoop 
1)将本机配置好的hadoop完整复制到其余机器的 /opt/hadoop 目录下
scp -r /opt/hadoop 节点机名:/opt/hadoop
       2)格式化namenode
       /opt/hadoop/bin/hdfs namenode –format
3)启动服务
/opt/hadoop/sbin/start-all.sh


f、用 jps命令查看slave
NameNode
DataNode
Jps Master
  用 jps命令查看Master
NodeManager
ResourceManager
SecondaryNameNode
  用hadoop fs -ls / (查看目录)
  用hadoop fs -mkdir /input (建立目录)
  用hadoop fs -put word.txt /input (存储文件word.txt)
  用hadoop jar wordcount.jar wordcount /input/word.txt /output (执行一个小任务看看:))

g、在浏览器中输入:http://120.92.50.143:8088/ 即可看到YARN的ResourceManager的界面。注意:默认端口是8088,


h、大功告成!


        作者小白救星2016-12-06于杭州,有任何疑问请与我联系 QQ 99923309 

这篇关于hadoop完全分布式手动安装(一主多从centos linux各版本均试验成功,文档完整无一遗漏)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/842376

相关文章

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信