分布式环境搭建redhat7+hadoop2.6.1+jdk1.8
来源:互联网 发布:阿里云香港服务器快吗 编辑:程序博客网 时间:2024/06/08 06:41
共三台服务器,安装的Redhat7系统,Redhat7命令与常用的Linux命令稍有不同。第一次写博客,记录过程方便自己的同时方便他人,直接开始正题,环境搭建过程如下。
一、安装Redhat7.1系统
1.用光盘安装,服务器开启后启动过程中按del键进入BIOS,在boot菜单中将boot priority的CD/ROM选项设置为1st,具体做法是选中CD/ROM选项并按shift+键。
2.安装设置,界面上分区选项会有感叹号,选中分区选项,进入后选择一个磁盘sda或sdb或其他都可以,但是要自己知道装在哪个盘上了,因为后面重启后还要选择优先启动盘,如果sda盘上有系统可以先delete,或者装在sdb盘上。
3.开始安装,安装过程中,创建root用户的密码,密码过简单时,需要按down按钮两次。
4.安装完成后,做一些配置,这些配置其实可以在安装设置时就设置好,首先配置网络:
打开网络配置文件,并做下面的配置,
vi /etc/sysconfig/network-scripts/ifcfg-enp3s0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp3s0
UUID=3b85ec9a-857d-4a20-af48-5beaf403c6a9
DEVICE=enp3s0
ONBOOT=yes
IPADDR=172.19.0.189
NETMASK=255.255.255.0
GATEWAY=172.19.0.179
其中ip地址不能和其他机器冲突。
配置完成后重启网络服务,
service network restart
5.修改主机名,查看主机名,将主机名修改为静态的主机,
hostnamectl status
hostnamectl set-hostname slave2 --static
6.测试,ping外网,ping网关,ping内网,如果可以ping通网络就没问题了。
接下来要用ssh服务,需要配置防火墙,首先查看防火墙状态,
systemctl status firewalld
会有一个Active,关闭防火墙,
systemctl disable firewalld
重启服务器,开启ssh服务,
service sshd start
至此就可以使用Xshell连接到服务器。注意,ip地址不能有冲突,若ip地址冲突了,则ssh连接老断。
二、安装hadoop2.6.1
1.创建hadoop用户,修改密码,
useradd -m hadoop -s /bin/bash
passwd hadoop
以root身份为用户hadoop增加管理员权限,找到root ALL=(ALL) ALL,下面增加内容,
visudo
hadoop ALL=(ALL) ALL
添加这一行的意义是让hadoop用户能够使用sudo root 命令;
之后修改xshell连接的属性,将用户名和密码改为hadoop,以hadoop用户身份操作。
2.安装jdk1.8,首先在/usr/local目录下新建一个目录jdk,以root身份操作;
su root
cd /usr/local
mkdir jdk
使用xftp向服务器上传文件很容易中断,中断后重新连接,不要删除原来没上传完的文件,直接将文件再次拖入jdk目录下,此时会弹出文件重复提示,将下方覆盖选为继续下载,断了就重复继续下载步骤直到文件传完;
这里我上传的是RPM文件,强制安装省略卸载步骤,可以先卸载原来的jdk在安装新的,
rpm -ivh jdk-8u131-linux-x64.rpm --force
打开配置文件,在文件末尾加入以下内容:
vi /etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_131
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH
使文件生效;
source /etc/profile
查看安装是否成功,出现以下信息则安装成功:
java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build25.131-b11, mixed mode)
3.配置ssh无密码登录,进入目录
cd ~/.ssh/
生成公钥和密钥,
ssh-keygen -t rsa
cat id_rsa.pub >>authorized_keys
在slave1和slave2上做一遍上述操作,因为没有用root用户登陆过slave1,所以报错-bash: cd: /root/.ssh: No suchfile or directory,解决办法是执行ssh localhost,
将slave1的id_rsa.pub 复制到 master的对应目录中,
scp id_rsa.pub root@master:~/.ssh/id_rsa.pub_slave1
在master中,将slave1的id_rsa.pub_slave1内容合并到authorized_keys中,
cat id_rsa.pub_slave1 >> authorized_keys
在master中将authorized_keys复制到slave1中,
scp authorized_keys root@slave1:~/.ssh/
将master节点和slave1节点的文件权限改一下,
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
使用命令 sshslave1测试一下,测试成功如下,
[root@master .ssh]# ssh slave1
Last login: Thu Oct 12 04:40:06 2017 fromlocalhost
[root@slave1 ~]# exit
对slave2做相同操作,这样配置完后,master和slave1可以互相免密访问。
4.配置hosts文件,分别在每个节点操作,首先修改每个主机的hostname,
hostnamectl --static set-hostname master(slave1、slave2)
修改配置文件,文件末尾添加内容:
vi /etc/hosts
masterip地址 master
slave1ip地址 slave1
slave2ip地址 slave2
5.在master节点安装配置hadoop2.6.1,下载hadoop-2.6.1.tar.gz,将文件上传到服务器/home/hadoop目录中,上传方法与jdk一样;将文件解压,
tar xzfv hadoop-2.6.1.tar.gz
修改配置文件,
vi /home/hadoop/hadoop-2.6.1/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_131
修改配置文件,在<configuration></configuration>节点内增加内容
vi /home/hadoop/hadoop-2.6.1/etc/hadoop/core-site.xml
<!-- 运行时产生文件的存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hadoop-2.6.1/tmp</value>
<description>Abase for othertemporary directories.</description>
</property>
<!-- 指定NameNode地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
修改配置文件,在<configuration></configuration>节点内增加内容
vi /home/hadoop/hadoop-2.6.1/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadoop-2.6.1/dfs/name</value>
<description>Path onthe local filesystem where the NameNode stores the namespace and transactionslogs persistently.</description>
</property>
<property>
<name> dfs.http.address</name>
<value> master:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value> slave1:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hadoop-2.6.1/dfs/data</value>
<description>Commaseparated list of paths on the local filesystem of a DataNode where it shouldstore its blocks.</description>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<!-- 副本复制数量,这里配置为1,-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
修改配置文件,在<configuration></configuration>节点内增加内容
vi /home/hadoop/hadoop-2.6.1/etc/hadoop/yarn-site.xml
JAVA_HOME=/usr/java/jdk1.8.0_131
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value> master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value> master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value> master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value> master:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>22528</value>
</property>
修改配置文件,在<configuration></configuration>节点内增加内容
vi/home/hadoop/hadoop-2.6.1/etc/hadoop/mapred-site.xml.template
<?xmlversion="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>Host or IP and port ofJobTracker.</description>
</property>
</configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
<description>Host or IPand port of JobTracker.</description>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx512m</value>
<description>使用更大的堆用于maps/reduces的子虚拟机</description>
</property>
修改配置文件,增加内容
vi /home/hadoop/hadoop-2.6.1/etc/hadoop/masters
master
修改配置文件,增加内容
vi /home/hadoop/hadoop-2.6.1/etc/hadoop/slaves
slave1
slave2
master节点的hadoop安装配置完成后,将目录复制到slave1和slave2节点上
scp -r /home/hadoop/hadoop-2.6.1 root@slave1:/home/hadoop
将hadoop配置到环境变量中,在文件末尾添加内容,
vi ~/.bashrc
export HADOOP_HOME=/home/hadoop/hadoop-2.6.1
exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使文件生效,
source ~/.bashrc
6.格式化并重新启动hadoop,HDFS格式化,
/home/hadoop/hadoop-2.6.1/bin/hdfs namenode -format
启动hadoop,
start-all.sh
查看启动是否成功,
jps
显示如下启动成功,
15984 Jps
15813 SecondaryNameNode
14462 NameNode
7.WordCount实例运行,首先进入目录,
cd /home/hadoop/hadoop-2.6.1
新建一个input目录,
mkdir input
进入新建的input目录中,新建文件并写入内容,
vi f1
hello world bye zjw1
vi f2
hello world bye zjw2
在HDFS中新建一个目录,
hadoop fs -mkdir /zjw
hadoop fs -mkdir /zjw/input
将f1和f2放入HDFS新建的目录中
hadoop fs -put f1 /zjw/input
hadoop fs -put f2 /zjw/input
查看刚才放入的文件
hadoop fs -ls /zjw/input
显示如下则继续,
Found 2 items
-rw-r--r-- 1 root supergroup 202017-10-15 22:55 /zjw/input/f1
-rw-r--r-- 1 root supergroup 20 2017-10-15 22:55 /zjw/input/f2
回到hadoop目录中,
cd /home/hadoop
运行WordCount程序:
hadoop jarhadoop-2.6.1/share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.6.1-sources.jarorg.apache.hadoop.examples.WordCount /zjw/input/ /output/wordcount3
查看运行结果,
hdfs dfs -cat/output/wordcount3/*
显示结果如下:
bye 2
hello 2
zjw2 1
world 2
zjw1 1
//hadoop jar/home/hadoop/hadoop-2.6.1/input/fsm-hadoop.jar
8.配置eclipse使得在eclipse中直接编写mapreduce程序并运行在服务器的hadoop集群上。eclipse:eclipse neon3
jdk:1.8
// 这一步配置可以忽略,目前没觉着有什么用处
配置电脑的用户名,首先"右击"桌面上图标"我的电脑",选择"管理",接着选择"本地用户和组",展开"用户",找到系统管理员"Administrator",修改其为"hadoop",
最后,把电脑进行"注销"或者"重启电脑",这样才能使管理员用这个名字。
下载hadoop-eclipse-plugin-2.7.3.jar包,下载好后复制到eclipse安装目录的plugins文件夹下,重启eclipse。
点击Window->ShowView->Others->MapReduceTools->MapReduceLocations,界面中出现Map/Reduce Locations 点击右边蓝色,新建一个DFS Location,
General选项中做如下配置:
Advancedparameters中找到hadoop.tem.dir,做如下配置:
点击Finish,即可在projectExplorer中看到DFSLocation ,点开即可看到hadoop文件系统
网页查看hadoop集群状态,ip地址:8088/cluster
配置JobHistory
修改配置文件
使用命令mr-jobhistory-daemon.sh start historyserver 启动服务,可以打开网址http://172.19.0.189:19888/jobhistory/即为配置成功
- 分布式环境搭建redhat7+hadoop2.6.1+jdk1.8
- Hadoop2.5.2分布式环境搭建
- hadoop2.6分布式环境搭建
- ubuntu搭建hadoop伪分布式环境:jdk1.8.0+hadoop2.8.0+eclipse-jee-neon-3
- RedHat7安装JDK1.8
- hadoop伪分布式环境搭建(redhat5 && jdk1.8 )
- Ubuntu16.04下伪分布式环境搭建之hadoop2.6.0、jdk1.7、Hbase0.98的安装与配置
- Hadoop2.4伪分布式环境搭建
- hadoop2.6.0版本搭建伪分布式环境
- hadoop2.7.0版本搭建伪分布式环境
- hadoop2.6.0版本搭建伪分布式环境
- cdh-hadoop2.6.0伪分布式环境搭建
- hadoop2.6.0版本搭建伪分布式环境
- Hadoop2.6.4伪分布式环境搭建
- Hadoop2.5.2完全分布式环境搭建
- hadoop2.6完全分布式环境搭建(上)
- hadoop2.6.0伪分布式环境搭建
- hadoop2.x完全分布式环境搭建
- android textView识别html标签
- bzoj2879 [Noi2012]美食节(动态加边费用流)
- Java进阶之路——从初级程序员到架构师,从小工到专家
- Maven的相关问题处理(ClassNotFoundException/NoClassDefFoundError)
- LR12脚本回放时显示图片窗口
- 分布式环境搭建redhat7+hadoop2.6.1+jdk1.8
- C++ void*用法记录
- 《Java编程技巧1001条》349条:获得浮点数的余数
- 一些碰到的正则验证,记录下来
- mongodb+java实现日志的日活与月活查询
- 好程序员:一个Java高级工程师的必备技能
- vmware vsphere 基础学习(1)
- activity启动模式应用场景
- linux服务器常用软件部署搭建