当前位置: 首页 > news >正文

hadoop详细配置

详见fenghaootong-github

hadoop详细配置

  • hadoop基础知识

java JDK配置

  • 下载JDK
  • 解压jdk到/usr/local/目录下
  • 配置环境变量

节点规划

主机名称IP地址功能
hadoop1192.168.75.111NameNode、DataNode、resourcemanager、nodemanager
hadoop2192.168.75.112DataNode、nodemanager
hadoop3192.168.75.113DataNode、nodemanager

创建虚拟机配置网络

  • 手动配置DHCP
  • 修改域名,在/etc/sysconfig/network中添加HOSTNAME=hadoop1
  • 把域名添加到/etc/hosts中
192.168.75.111 hadoop1 www.hadoop1.com
  • 修改/etc/sysconfig/network-scripts/ifcfg-ens33文件
    • 添加DNS和网关一样
    • ONBOOT=yes

安装nginx

  • pcre
tar zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure && make && make install
  • openssl
 tar zxvf openssl-1.1.1.tar.gz
cd openssl-fips-1.1.1
./config && make && make install
  • zlib
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure && make && make install
  • nginx
tar zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
 ./configure && make && make install

单机版hadoop配置

  • 下载hadoop
  • 解压压缩包到/usr/local/目录
  • 配置环境变量
  • 修改hadoop/etc/hadoop/hadoop-env.sh文件中的JAVA环境变量为JDK路径
  • 测试
    which hadoop
    hadoop version
$ mkdir /home/htfeng/data/input
$ cp hadoop/etc/hadoop/*.xml /home/htfeng/data/input
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar grep /home/htfeng/data/input /home/htfeng/data/output 'dfs[a-z.]+'
$ cat /home/htfeng/data/output/*
$ hdfs dfs -ls /

克隆虚拟机

  • 修改网卡信息(忽略)
vi /etc/udev/rules.d/70-persistent-ipoib.rules 
  • 修改主机名
vi /etc/sysconfig/network
  • 修改ip信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改ip、硬件地址和UUID
  • 修改映射
vi /etc/hosts  

192.168.75.112 hadoop2 www.hadoop2.com

集群配置

  • 配置JDK
  • 配置hadoop
  • 配置hadoop-env.sh
  • 配置hadoop-core-site.xml
  • 配置hadoop-hdfs-site.xml
  • 配置hadoop-mapred-site.xml
  • 配置hadoop-yarn-site.xml
  • 配置slave
  • 发送hadoop文件到所有机子上

配置core-site.xml

配置hadoop-hdfs-site.xml

配置hadoop-mapred-site.xml

配置hadoop-yarn-site.xml

配置slave

发送hadoop文件到所有机子上

scp -r ../hadoop-2.8.4/ hadoop2:/usr/local/
scp -r ../hadoop-2.8.4/ hadoop3:/usr/local/

启动之前在namenode服务器上格式化,只需一次即可

  • 关闭防火墙
systemctl stop firewalld.service
hadoop namenode -format

全启动:start-all.sh
模块启动:
start-dfs.sh
start-yarn.sh
单个进程启动
hadoop-daemon.sh start/stop namenode
hadoop-daemons.sh start/stop datanode
yarn-daemon.sh start/stop namenode
yarn-daemons.sh start/stop datanode
mr-jobhistory-daemon.sh start/stop historyserver

netstat -tnpl:查看启动端口

  • 启动start-dfs.sh测试
http://192.168.75.111:50070
  • 上传和下载文件(测试hdfs)
hdfs dfs -put ./README.txt /
  • 启动start-yarn.sh跑一个mapreduce作业
yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /README.txt /out/00

免密登录

ssh-keygen -t rsa
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3

HDFS shell

hdfs的shell

命令和shell命令基本一致

hdfs dfs -

Usage: hadoop fs [generic options]
    [-appendToFile <localsrc> ... <dst>]
    [-cat [-ignoreCrc] <src> ...]
    [-checksum <src> ...]
    [-chgrp [-R] GROUP PATH...]
    [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
...
hdfs dfs -ls /   
hadoop fs - /  
hdfs dfs -ls -R / #递归查看  
hdfs dfs -mkdir -p /  #递归创建
hdfs dfs -touchz  /test/te.txt
hdfs dfs -put ./if.sh /if.sh  # 本地目录上传到hdfs文件目录
hdfs dfs -get /if.sh /home/htfeng  #从hdfs文件目录下载
hdfs dfs -du -s / #统计目录大小

window中安装maven

  • 下载maven
  • 解压并复制到一个目录
  • 配置环境变量
  • 配置maven,修改settings.xml文件,指定本地仓库位置H:\hadoop\mvnrepositry, maven库
  • 和java的编辑工具整合(eclipse,idea,myeclipse等)

maven项目测试

hadoop核心协议RPC(远程过程调用协议)

例子

  • 建一个rpc的包,然后创建下面三个java脚本,具体代码
    • hello.java
    • RPCServer.java
    • RPCClient.java

zookeeper

  • zookeeper基础知识
  • Download

  • 解压到/usr/local/

  • 配置环境变量
  • 修改配置文件/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/htfeng/zkdata/
clientPort=2181
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888

在每个服务器上面创建myid,内容为server.X中的X

mkdir /home/htfeng/zkdata
vi /home/htfeng/zkdata/myid

zookeeper测试

HDFS的HA

  • HDFS的HA基础讲解

规划

主机名称IP地址功能
hadoop1192.168.75.111NameNode、DataNode、jouranlnode、quroumPeerMain、zkf
hadoop2192.168.75.112DataNode、jouranlnode、quroumPeerMain、zkf
hadoop3192.168.75.113DataNode、jouranlnode、quroumPeerMain

在配置HA之前,要对之前的配置做一个备份

mv /usr/local/hadoop-2.8.4/ /usr/local/hadoop-2.8.4_bak

HA的配置

  • 解压下载的hadoop,到/usr/local/目录下

在/usr/local/hadoop-2.8.4/etc/hadoop/下
- 配置hadoop-env.sh
- 配置hadoop-core-site.xml
- 配置hadoop-hdfs-site.xml
- 配置slave
- 发送hadoop文件到所有机子上
- hadoop2也作为namenode免密登陆

配置hadoop-env.sh

配置hadoop-core-site.xml

配置hadoop-hdfs-site.xml

配置slaves

发送hadoop文件到所有机子上

scp -r ../hadoop-2.8.4/ hadoop2:/usr/local/
scp -r ../hadoop-2.8.4/ hadoop3:/usr/local/

hadoop2也作为namenode免密登陆

  • 在hadoop2主机上
ssh-keygen -t rsa
ssh-copy-id hadoop2
ssh-copy-id hadoop1
ssh-copy-id hadoop3

按步骤依次执行下面程序

  • 启动zk
  • 启动journalnode服务(单个启动、多个进程启动)
hadoop-daemon.sh start journalnode
hadoop-daemons.sh start journalnode
  • 挑选两个namenode中的一台进行格式化,然后并且启动
hdfs namenode -format
hadoop-daemon.sh start namenode
  • 在另一台namenode的机器上拉去元数据(也可以复制)
hdfs namenode -bootstrapStandby
  • 格式化zk
hdfs zkfc -formatZK
  • 启动
start-dfs.sh

会有五个进程,查看是否全部启动
查看webUI是否正(http://192.168.75.111:50070,http://192.168.75.112:50070)
在hdfs中的读写文件
然后关闭一个namenode失败,查看是否自动切换

kill -9 [namenode pid]
hadoop-daemon.sh start namenode

Yarn的HA

规划

主机名称IP地址功能
hadoop1192.168.75.111resourcemanager、nodemanager、quroumPeerMain
hadoop2192.168.75.112nodemanager、quroumPeerMain
hadoop3192.168.75.113nodemanager、quroumPeerMain

HA的配置

  • HA基础
  • 配置yarn-site.xml
  • 配置mapred-site.xml
  • 远程发送
  • 直接启动
  • 测试

配置yarn-site.xml

配置mapred-site.xml

远程发送

scp -r ./etc/hadoop/mapred-site.xml ./etc/hadoop/yarn-site.xml hadoop2:/usr/local/hadoop-2.8.4/etc/hadoop/

scp -r ./etc/hadoop/mapred-site.xml ./etc/hadoop/yarn-site.xml hadoop3:/usr/local/hadoop-2.8.4/etc/hadoop/

直接启动

#hadoop1
start-yarn.sh
#hadoop2
yarn-daemon.sh start resourcemanager

测试

yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /words /out/00

转载于:https://www.cnblogs.com/htfeng/p/9931737.html

相关文章:

  • LeetCode(56):合并区间
  • w10隐藏我的电脑中子文件夹
  • winform的Textbox设置只读之后使用ForeColor更改颜色
  • (十八)三元表达式和列表解析
  • node实现网页内容的爬取
  • ActiveMQ:Exception occurred while processing this request, check the log for more information!
  • Selenium
  • go语言之行--简介与环境搭建
  • hive界面工具SQL Developer的安装;使用sql developer连接hive;使用sql developer连接mysql...
  • linux服务器性能查看
  • C# ASP.NET MVC 配置允许跨域访问
  • 运算符基础知识——比较运算符
  • node升级后,项目中的node-sass报错的问题
  • Mongodb数据库连接
  • ROS常用工具
  • 【个人向】《HTTP图解》阅后小结
  • 2017 前端面试准备 - 收藏集 - 掘金
  • C++类的相互关联
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • JavaScript中的对象个人分享
  • leetcode46 Permutation 排列组合
  • PAT A1017 优先队列
  • spring security oauth2 password授权模式
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 翻译--Thinking in React
  • 分类模型——Logistics Regression
  • 聚簇索引和非聚簇索引
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 怎么将电脑中的声音录制成WAV格式
  • 自制字幕遮挡器
  • Spring Batch JSON 支持
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • ${factoryList }后面有空格不影响
  • (11)MSP430F5529 定时器B
  • (23)Linux的软硬连接
  • (论文阅读40-45)图像描述1
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (三)模仿学习-Action数据的模仿
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)Linux下编译安装log4cxx
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)我也是一只IT小小鸟
  • ***原理与防范
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET 设计一套高性能的弱事件机制
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET大文件上传知识整理
  • .Net的DataSet直接与SQL2005交互
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET连接MongoDB数据库实例教程