企业级大数据hadoop的安装

一.准备装备
  1.centOS7镜像
  2.jdk1.8
  3.hadoop2.7.4

二.配置虚拟机环境 (使用root)
  1.给虚拟机添加hadoop用户

useradd -m hadoop -G root -s /bin/bash    #创建用户
passwd    #设置密码

  2.修改虚拟机网络配置,在虚拟机中编辑----编辑虚拟机网络---设置vmware8NAT模式---ip地址与本机的ip在同一网段
                                                  备注:克隆虚拟机之后
  3.修改当前虚拟机ip

vi /etc/sysconfig/network-scripts/ifcfg-ens33

插入如下内容:

BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.189.150# 备注:修改此处ip地址为自己的ip
PREFIX=24
GATEWAY=192.168.189.2#自己的网关
DNS1=202.103.0.20


  (修改完ip,按esc键,执行:wq 回车保存退出,执行systemctl restart network命令,上二是默认的网关,具体子网段根据你的配置)
重新加载网络配置,修改ip之后需要重启网络,

执行命令:

systemctl restart network

4.设置windows系统中ip地址
5.修改hostname

vi /etc/hostname 

删除原有内容添加master
6.修改hosts

vi /etc/hosts 

添加如下内容

192.168.189.150    主机1名称
192.168.189.151     主机2名称

!!!!保证两台机器可以ping通.
备注:后期不能用root用户登录,使用hadoop用户
在xshell中,新建会话属性---用户身份登录----固定登录用户hadoop


三.配置ssh无密码登陆 (使用hadoop)

备注:首先,ssh 主机名    命令,登录提示yes/no?,选择yes,输入密码hadoop
登录进去之后,ls -a 命令,列出hadoop用户所有文件,包括 .ssh文件,
执行以下命令:

1.cd .ssh
2.ssh-keygen -t rsa #遇到提示一路回车就行,共三次回车
3.||     #会看到 id_rsa id_rsa.pub 两文件前为私钥,后为公钥
4.cp id_rsa.pub authorized_keys #把公钥复制成一个新的文件(名字不可变)
5.chmod 600 authorized_keys #修改文件权限,重要不要忽略
6.将hadoop-master的公钥传送到所有的slave上,实现hadoop-master无密码登陆到所有slave上
scp authorized_keys hadoop@slave:~/.ssh/
7.在每个slave的服务上输入
cd .ssh
chmod 600 authorized_keys

四.安装jdk,首先解压jdk

tar -zxvf jdk-8u144-linux-x64.tar.gz,

解压之后
执行下面操作:

  安装jdk
1.jdk环境变量

vi /home/hadoop/.bashrc

添加:

export JAVA_HOME=/home/hadoop/jdk
export PATH=$PATH:$JAVA_HOME/bin

2.重新加载配置文件

source /home/hadoop/.bashrc

  .安装hadoop
1.hadoop环境变量

vi /home/hadoop/.bashrc

输入:

# Hadoop Environment Variables
export HADOOP_HOME=/home/hadoop/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 PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

配置hadoop里的各种文件:

cd 主机名/etc/hadoop
1.core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hadoop/tmp</value>
</property>
2.hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop/tmp/dfs/data</value>
</property>
3.mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
4.yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
5.slaves
主机1
主机2
。。。

2.关闭防火墙 (使用root)

1.systemctl stop firewalld.service #停止firewall
2.systemctl disable firewalld.service #禁止firewall开机启动
3.firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running

3.启动hadoop集群 (在master用户上启动,使用hadoop用户)

hdfs namenode -format #第一次启动要执行格式化,之后启动不用执行这个
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver

4.测试hadoop

1.先在集群上创建hello目录 
hdfs dfs -mkdir /hello
2.讲写好的文件上传到创建好的hello目录 
hdfs dfs -put /home/hadoop/hello.txt /hello
3.执行hadoop自带的案例,统计dfs开头的信息 
hadoop -jar hadoop-mapreduce-examples-2.7.4.jar 
wordcount 
/hello/hello.txt 
/hello/output
4.查看执行结果,wordcount可以分辨出使用空格隔开的单词.
hdfs dfs -cat /hello/output/*

5.关闭hadoop集群

1.stop-dfs.sh
2.stop-yarn.sh
3.mr-jobhistory-daemon.sh stop historyserver

至此,hadoop的环境安装和测试已经结束,如果有问题,欢迎留言讨论,看到第一时间回复。














原文地址:https://www.cnblogs.com/qianshuixianyu/p/9306079.html