Ubuntu搭建hadoop集群

1.先创建一个干净的虚拟机
1、虚拟机搭建一台Ubuntu16.04系统,root登录
2.·修改主机名为master vim /etc/hostname
修改本机的静态ip地址· vim /etc/network/interfaces
·重启网络生效:/etc/init.d/networking restart
·ifconfig看ip是否配置成功
3.addgroup hadoop
adduser --ingroup hadoop hadoop
添加Hadoop用户
3.使用xftp把hadoop,jdk压缩包发送到/home 目录下
4.在Hadoop用户下解压这两个文件
·tar -xvf hadoop… ·tar -xvf jdk…
rm -rf hadoop_home 删除原本的Hadoop_home 否则会有两层Hadoop_home目录
并将mv hadoop… hadoop_home jdk也是一样
5.开一个新的xshell,以root命令登录 并配置主从机的ip地址·定好三台机的静态ip vim /etc、hosts 并为从机node1 node2分配静态ip地址

6.设置环境变量vim ~/.profile,在末尾添加:
export JAVA_HOME=/home/hadoop/jdk1.8.0_181
export HADOOP_HOME=/home/hadoop/hadoop-2.7.2
export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:HADOOP_HOME/bin: H A D O O P H O M E / s b i n : HADOOP_HOME/sbin: HADOOPHOME/sbin:PATH
7.重新应用环境变量:source ~/.profile
8.测试jdk是否安装成功:
java或者javac或者java -version显示当前版本
9.进入Hadoop_home cd hadoop_home
10.修改core-site文件 vim /etc/hadoop/core-site.xml


fs.defaultFS
hdfs://master:9000


hadoop.tmp.dir
file:/home/hadoop/hadoop_home/tmp


hadoop.native.lib
true


11.配置 hdfs-site.xml vim /etc/hadoop/hdfs-site.xml


dfs.replication
1


fs.trash.interval
0


dfs.namenode.name.dir
file:/home/hadoop/hadoop_home/dfs/name


dfs.namenode.data.dir
file:/home/hadoop/hadoop_home/dfs/name


dfs.namenode.secondary.http-address
master:9001


dfs.webhdfs.enabled
true


dfs.permissions.enabled
false


说明:
dfs.replication 数据副本的数量,默认三份
dfs.namenode.name.dirname 节点 hdfs 存储的位置
dfs.datanode.data.dirdata 节点 hdfs 存储的位置
dfs.namenode.secondary.http-address
secondarynamenode运行的机器,默认namenode和secondarynamenode
都在 master 上运行, 一般建议可配置 secondarynamenode 在其它
机器运行。
dfs.webhdfs.enabled 开启 webhdfs,访问文件、文件夹信息使用
namenode 的 IP 和端口,访问文件内容或者进行打开、上传、 修改、下载等
操作使用 datanode 的 IP 和端口。要想不区分端 口,直接使用 namenode 的
IP 和端口进行所有的 hdfs 操作,就 需要打开 webhdfs。
dfs.permissions 和 和 dfs.permissions.enabled 是否启动权限控制

修改bin下面的启动脚本,可以不启动secondarynamenode
start-dfs.sh

#---------------------------------------------------------

secondary namenodes (if any)

SECONDARY_NAMENODES= ( ( (HADOOP_PREFIX/bin/hdfs getconf -secondarynamenodes 2>/dev/null)

if [ -n “ S E C O N D A R Y N A M E N O D E S " ] ; t h e n e c h o " S t a r t i n g s e c o n d a r y n a m e n o d e s [ SECONDARY_NAMENODES" ]; then echo "Starting secondary namenodes [ SECONDARYNAMENODES"];thenecho"Startingsecondarynamenodes[SECONDARY_NAMENODES]”

KaTeX parse error: Expected 'EOF', got '\ ' at position 39: …op-daemons.sh" \̲ ̲--config "HADOOP_CONF_DIR”
–hostnames “KaTeX parse error: Expected 'EOF', got '\ ' at position 22: …ARY_NAMENODES" \̲ ̲--script "bin/hdfs” start secondarynamenode
fi

我们看到上面代码部分,注释掉SecondaryNameNode就不会起来了(在做这个操作前,自己先备份一份)。

12.配置 mapred-site.xml
打开这个配置文件有点繁琐
Vim etc/hadoop/mapred- 此时按tab键
cp etc/hadoop/mapred-site.xml.template ctc/hadoop/mapred.xml
这时候可以粘蓝色命令下来 vim etc/hadoop/mapred-site.xml 打开

mapreduce.framework.name yarn
    
            mapreduce.jobhistory.address
            master:10020
    

    
            mapreduce.jobhistory.webapp.address
            master:19888
    
说明: mapreduce.framework.name 设置框架引擎,1.x 为 MR,2.x 改为 yarn mapreduce.jobhistory.address 设置历史服务器的地址和端口 mapreduce.jobhistory.webapp.address 设置历史服务器 web 的地址和 端口

13.配置 yarn-site.xml


yarn.nodemanager.aux-services
mapreduce_shuffle


yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler


yarn.resourcemanager.address
master:8032


yarn.resourcemanager.scheduler.address
master:8030


yarn.resourcemanager.resource-tracker.address
master:8031


yarn.resourcemanager.admin.address
master:8033


yarn.resourcemanager.webapp.address
master:8088

说明: yarn.nodemanager.resource.memory-mb 总的可用物理内存量,默认 是 8096 14.hadoop-env.sh、yarn-env.sh、mapred-env.sh、httpfs-env.sh添加以下内容: export JAVA_HOME=/home/hadoop/jdk1.8.0_181 15.授权:在命令行中分别输入这三句 chmod 777 /home/hadoop/hadoop_home/sbin/* chmod 777 /home/hadoop/hadoop_home/bin/* chmod 777 /home/hadoop/hadoop_home/lib/native/* 16.在root命令行下logout 在hadoop命令行下切换到root su root 然后使用shutdown -h now 退出 17.在D盘中创建hadoop_node1 文件夹 在virtualbox中复制主机的从机地址就是这个文件夹地址 18.关机快照后,复制该主机2次作从机,root登录,修改从机ip为之前在hosts中设定的这是查看之前ip:vim /etc/hosts, 修改从机ip地址是 vim /etc/network/interface 并修改从机名vim /etc/hostname 18.SSH免登录配置三台虚拟机都这样配置,ip地址必须和之前分配的地址一样。 19.同时登录三台虚拟机 并且都输入ssh-keygen -t rsa命令并且一直按到底如图

20.将公钥放入钥匙仓库:
vim ~/.ssh/id_rsa.pub
21.将密钥仓库添加到三个节点
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2
*上步骤在三台虚拟机上都要执行
在master主机添加了node1的节点 则要在node1节点(三台机子都要互相执行,以此类推)中添加权限vim ~/.ssh/authorized_keys
22.测试是否免密登录,分别在三台虚拟机上执行:ssh [master/slave1/slave2],如果无需密码直接进入虚拟机用户,则执行成功,否则查看公钥里的文件是否有问题,之后三台虚拟机关机快照备份
23.启动主从机,hadoop用户登录,在master运行 hdfs 格式化命令:hdfs namenode -format(该命令仅在初次初始化或重置集群时执行,若多次格式化则需删除三台虚拟机中的tmp文件夹,rm -rf /home/hadoop/hadoop-2.7.2/tmp),出现has been successfully formatted 表示格式化完成(successfully显示在运行结果中间。。。)。
24.在 master 机器上,运行 hadoop 启动命令:start-all.sh
25.在三台虚拟机上输入指令:jps,出现如图则成功了

26在 master 机器上,运行 hadoop 终止命令:stop-all.sh

你可能感兴趣的:(Ubuntu搭建hadoop集群)