ubantu 16.4下Hadoop完全分布式搭建实战教程
前言
本文主要介绍了关于ubantu 16.4 Hadoop完全分布式搭建的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧
一个虚拟机
1.以 NAT网卡模式 装载虚拟机
2.最好将几个用到的虚拟机修改主机名,静态IP /etc/network/interface,这里 是 s101 s102 s103 三台主机 ubantu,改/etc/hostname文件
3.安装ssh
在第一台主机那里s101 创建公私密匙
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
>cd .ssh
>cp id_rsa.pub >authorized_keys
创建密匙库
将id_rsa.pub传到其他主机上,到.ssh目录下
通过 服务端 nc -l 8888 >~/.ssh/authorized_keys
客户端 nc s102 8888 <id_rsa.pub
开始安装Hadoop/jdk
1、安装VM-tools 方便从win 10 拖拉文件到ubantu
2、创建目录 /soft
3、改变组 chown ubantu:ubantu /soft 方便传输文件有权限
4、将文件放入到/soft (可以从桌面cp/mv src dst)
tar -zxvf jdk或hadoop 自动创建解压目录
配置安装环境 (/etc/environment)
1.添加 JAVA_HOME=/soft/jdk-…jdk目录
2.添加 HADOOP_HOME=/soft/hadoop(Hadoop目录)
3.在path里面加/soft/jdk-…jdk/bin:/soft/hadoop/bin/:/soft/hadoop/sbin
4.通过 java -version 查看有版本号 成功
5.hadoop version 有版本号 成功
开始配置HDFS四大文件 core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://s101:9000</value>
</property>
</configuration>
2.hdfs-site.xml
<configuration>
<!-- Configurations for NameNode: -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/data/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/data/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>s101:50090</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>s101:50070</value>
<description>
The address and the base port where the dfs namenode web ui will listen on.
If the port is 0 then the server will start on a free port.
</description>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:/data/hdfs/checkpoint</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:/data/hdfs/edits</value>
</property>
</configuration>
3. mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4.yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>s101</value>
</property>
</configuration>
到此成功一半。。。。。。。。。。。。。。
创建文件夹
mkdir /data/hdfs/tmp
mkdir /data/hdfs/var
mkdir /data/hdfs/logs
mkdir /data/hdfs/dfs
mkdir /data/hdfs/data
mkdir /data/hdfs/name
mkdir /data/hdfs/checkpoint
mkdir /data/hdfs/edits
记得将目录权限修改
- sudo chown ubantu:ubantu /data
接下来传输 /soft文件夹到其他主机
创建 xsync可执行文件
sudo touch xsync
sudo chmod 777 xsync
权限变成可执行文件
sudo nano xsync
#!/bin/bash
pcount=$#
if((pcount<1));then
echo no args;
exit;
fi
p1=$1;
fname=`basename $p1`
pdir=`cd -P $(dirname $p1);pwd`
cuser=`whoami`
for((host=102 ; host<105 ;host=host+1));do
echo --------s$host--------
rsync -rvl $pdir/$fname $cuser@s$host:$pdir
done
xsync /soft
——–>就会传文件夹到其他主机
xsync /data
创建 xcall 向其他主机传命令
#!/bin/bash
pcount=$#
if((pcount<1));then
echo no args;
exit;
fi
echo --------localhost--------
$@
for ((host=102;host<105;host=host+1));do
echo --------$shost--------
ssh s$host $@
done
别着急 快结束了 哈
还得配置 workers问价
- 将需要配置成数据节点(DataNode)的主机名放入其中,一行一个
注意重点来了
先格式化 hadoop -namenode -format
再 启动 start-all.sh
查看进程 xcall jps
进入网页
是不是很想牛泪,成功了耶!!!
中间出现了很多问题
1, rsync 权限不够 :删除文件夹 更改文件夹权限chown
2.学会看日志 log
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn的支持。
- 怎么样才算是精通 Python?
- 教你一招 | Python实现无向图最短路径
- 教你一招 | Python装饰器的另类用法
- 如何拿到半数面试公司Offer——我的Python求职之路
- Python编程语言发展简史
- 学完Python基础知识后,你真的会python吗?
- 一个人的武林:内网渗透测试思路(二)
- Python数据分析之股票实战
- 这货不是电源:硬件渗透测试平台 – Power Pwn
- Python进阶学习之阅读代码
- 代码安全审计:当file_exists遇上eval
- Python 异常处理完整指南
- 有趣的安全实验:利用多线程资源竞争技术上传shell
- NotSerializableException解决方法NotSerializableException
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 完美解决 python ImportError: Failed to import any qt binding
- 爬取娱乐圈排行榜数据
- 如何解决Linux系统下pyaudio安装缺少文件问题error: portaudio.h: 没有那个文件或目录
- pytest 测试框架学习(10):pytest.param
- pytest 测试框架学习(11):pytest.raises
- Hibernate第二天:Hibernate的一级缓存、其他的API
- pytest 测试框架学习(12):pytest.deprecated_call
- Pinstaller(Python打包为exe文件
- pytest 测试框架学习(14):pytest.warns
- ImportError: /lib64/libm.so.6: version `CXXAB_1.3.8.' not found (required by /usr/local/python37/lib
- pytest 测试框架学习(15):pytest.freeze_includes
- Linux: scp文件,目录上传下载标准版
- Hibernate第三天:Hibernate的一对多配置、Hibernate的多对多的配置
- Git: 掉坑记 -- git reset 杀手
- ModuleNotFoundError: No module named 'phkit.pinyin'