QuickReference/public/posts/61253.html

215 lines
47 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>Hadoop集群搭建基础环境 | QuickReference</title><meta name="author" content="shenjianZ"><meta name="copyright" content="shenjianZ"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="防火墙关闭123# 在 6 台主机执行systemctl stop firewalldsystemctl disable firewalld 配置yum源 下载 repo 文件Centos-7.repo并上传到&#x2F;tmp进入到&#x2F;tmp 备份并且替换系统的repo文件1234 cp Centos-7.repo &#x2F;etc&#x2F;yum.repos.d&#x2F; cd &#x2F;etc&#x2F;yum.repos.d&#x2F; mv C">
<meta property="og:type" content="article">
<meta property="og:title" content="Hadoop集群搭建基础环境">
<meta property="og:url" content="https://rq.shenjianl.cn/posts/61253.html">
<meta property="og:site_name" content="QuickReference">
<meta property="og:description" content="防火墙关闭123# 在 6 台主机执行systemctl stop firewalldsystemctl disable firewalld 配置yum源 下载 repo 文件Centos-7.repo并上传到&#x2F;tmp进入到&#x2F;tmp 备份并且替换系统的repo文件1234 cp Centos-7.repo &#x2F;etc&#x2F;yum.repos.d&#x2F; cd &#x2F;etc&#x2F;yum.repos.d&#x2F; mv C">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://rq.shenjianl.cn/img/avatar.jpg">
<meta property="article:published_time" content="2024-09-11T14:45:40.000Z">
<meta property="article:modified_time" content="2024-09-11T14:45:28.095Z">
<meta property="article:author" content="shenjianZ">
<meta property="article:tag" content="doucment">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://rq.shenjianl.cn/img/avatar.jpg"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://rq.shenjianl.cn/posts/61253.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css?v=4.13.0"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.1/css/all.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0.33/dist/fancybox/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: {"path":"/search.xml","preload":false,"top_n_per_article":1,"unescape":true,"languages":{"hits_empty":"找不到您查询的内容:${query}","hits_stats":"共找到 ${hits} 篇文章"}},
translate: undefined,
noticeOutdate: undefined,
highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '天',
dateSuffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: undefined,
infinitegrid: {
js: 'https://cdn.jsdelivr.net/npm/@egjs/infinitegrid@4.11.1/dist/infinitegrid.min.js',
buttonText: '加载更多'
},
isPhotoFigcaption: false,
islazyload: false,
isAnchor: false,
percent: {
toc: true,
rightside: false,
},
autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'Hadoop集群搭建基础环境',
isPost: true,
isHome: false,
isHighlightShrink: undefined,
isToc: true,
postUpdate: '2024-09-11 22:45:28'
}</script><script>(win=>{
win.saveToLocal = {
set: (key, value, ttl) => {
if (ttl === 0) return
const now = Date.now()
const expiry = now + ttl * 86400000
const item = {
value,
expiry
}
localStorage.setItem(key, JSON.stringify(item))
},
get: key => {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = Date.now()
if (now > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = (url, attr = {}) => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
Object.keys(attr).forEach(key => {
script.setAttribute(key, attr[key])
})
document.head.appendChild(script)
})
win.getCSS = (url, id = false) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onerror = reject
link.onload = link.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
link.onload = link.onreadystatechange = null
resolve()
}
document.head.appendChild(link)
})
win.activateDarkMode = () => {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = () => {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
if (t === 'dark') activateDarkMode()
else if (t === 'light') activateLightMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><meta name="generator" content="Hexo 7.3.0"></head><body><div id="web_bg"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/img/avatar.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">13</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">4</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">1</div></a></div><hr class="custom-hr"/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Categories</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> List</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> Music</span></a></li><li><a class="site-page child" href="/movies/"><i class="fa-fw fas fa-video"></i><span> Movie</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Link</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div></div></div></div><div class="post" id="body-wrap"><header class="post-bg fixed" id="page-header" style="background-image: url('/img/site01.jpg')"><nav id="nav"><span id="blog-info"><a href="/" title="QuickReference"><span class="site-name">QuickReference</span></a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search" href="javascript:void(0);"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Categories</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> List</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> Music</span></a></li><li><a class="site-page child" href="/movies/"><i class="fa-fw fas fa-video"></i><span> Movie</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Link</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="post-info"><h1 class="post-title">Hadoop集群搭建基础环境</h1><div id="post-meta"><div class="meta-firstline"><span class="post-meta-date"><i class="far fa-calendar-alt fa-fw post-meta-icon"></i><span class="post-meta-label">发表于</span><time class="post-meta-date-created" datetime="2024-09-11T14:45:40.000Z" title="发表于 2024-09-11 22:45:40">2024-09-11</time><span class="post-meta-separator">|</span><i class="fas fa-history fa-fw post-meta-icon"></i><span class="post-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2024-09-11T14:45:28.095Z" title="更新于 2024-09-11 22:45:28">2024-09-11</time></span></div><div class="meta-secondline"><span class="post-meta-separator">|</span><span class="post-meta-pv-cv" id="" data-flag-title="Hadoop集群搭建基础环境"><i class="far fa-eye fa-fw post-meta-icon"></i><span class="post-meta-label">阅读量:</span><span id="busuanzi_value_page_pv"><i class="fa-solid fa-spinner fa-spin"></i></span></span></div></div></div></header><main class="layout" id="content-inner"><div id="post"><article class="post-content" id="article-container"><h3 id="防火墙关闭"><a href="#防火墙关闭" class="headerlink" title="防火墙关闭"></a>防火墙关闭</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 在 6 台主机执行</span></span><br><span class="line">systemctl stop firewalld</span><br><span class="line">systemctl <span class="built_in">disable</span> firewalld</span><br></pre></td></tr></table></figure>
<h3 id="配置yum源"><a href="#配置yum源" class="headerlink" title="配置yum源"></a>配置yum源</h3><ul>
<li>下载 repo 文件:<br><a target="_blank" rel="noopener" href="http://mirrors.aliyun.com/repo/Centos-7.repo">Centos-7.repo</a><br>并上传到<code>/tmp</code>,进入到<code>/tmp</code></li>
<li>备份并且替换系统的repo文件<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"> <span class="built_in">cp</span> Centos-7.repo /etc/yum.repos.d/ </span><br><span class="line"><span class="built_in">cd</span> /etc/yum.repos.d/ </span><br><span class="line"><span class="built_in">mv</span> CentOS-Base.repo CentOS-Base.repo.bak </span><br><span class="line"><span class="built_in">mv</span> Centos-7.repo CentOS-Base.repo</span><br></pre></td></tr></table></figure></li>
<li><code>nn1</code>上的<code>CentOS-Base.repo</code>拷贝到其他主机<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">scp /etc/yum.repos.d/CentOS-Base.repo root@nn2:/etc/yum.repos.d</span><br><span class="line">scp /etc/yum.repos.d/CentOS-Base.repo root@nn3:/etc/yum.repos.d</span><br><span class="line">scp /etc/yum.repos.d/CentOS-Base.repo root@s1:/etc/yum.repos.d</span><br><span class="line">scp /etc/yum.repos.d/CentOS-Base.repo root@s2:/etc/yum.repos.d</span><br><span class="line">scp /etc/yum.repos.d/CentOS-Base.repo root@s3:/etc/yum.repos.d</span><br></pre></td></tr></table></figure></li>
<li>执行yum源更新命令<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">yum clean all</span><br><span class="line">yum makecache </span><br><span class="line">yum update -y </span><br></pre></td></tr></table></figure></li>
<li>安装常用软件 <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yum install -y openssh-server vim gcc gcc-c++ glibc-headers bzip2-devel lzo-devel curl wget openssh-clients zlib-devel autoconf automake cmake libtool openssl-devel fuse-devel snappy-devel telnet unzip zip net-tools.x86_64 firewalld systemd ntp unrar bzip2</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="JDK安装"><a href="#JDK安装" class="headerlink" title="JDK安装"></a>JDK安装</h3><blockquote>
<p>注意需要在六台机器依次执行</p>
</blockquote>
<ul>
<li>上传到<code>/tmp</code>目录下,安装 <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /tmp</span><br><span class="line">rpm -ivh jdk-8u144-linux-x64.rpm</span><br></pre></td></tr></table></figure></li>
<li>配置环境变量 <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">ln</span> -s /usr/java/jdk1.8.0_144/ /usr/java/jdk1.8</span><br><span class="line"><span class="built_in">echo</span> <span class="string">&#x27;export JAVA_HOME=/usr/java/jdk1.8&#x27;</span> &gt;&gt; /etc/profile.d/myEnv.sh </span><br><span class="line"><span class="built_in">echo</span> <span class="string">&#x27;export PATH=$PATH:$JAVA_HOME/bin&#x27;</span> &gt;&gt; /etc/profile.d/myEnv.sh </span><br><span class="line"><span class="built_in">source</span> /etc/profile </span><br><span class="line">java -version</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="修改主机名和主机名映射"><a href="#修改主机名和主机名映射" class="headerlink" title="修改主机名和主机名映射"></a>修改主机名和主机名映射</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /etc/hostname</span><br></pre></td></tr></table></figure>
<p>6台机器分别为nn1、nn2、nn3、s1、s2、s3</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /etc/hosts</span><br></pre></td></tr></table></figure>
<p>修改为</p>
<figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">192.168.1.30 nn1</span><br><span class="line">192.168.1.31 nn2</span><br><span class="line">192.168.1.32 nn3</span><br><span class="line">192.168.1.33 s1</span><br><span class="line">192.168.1.34 s2</span><br><span class="line">192.168.1.35 s3</span><br></pre></td></tr></table></figure>
<h3 id="创建hadoop用户"><a href="#创建hadoop用户" class="headerlink" title="创建hadoop用户"></a>创建hadoop用户</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#创建hadoop用户 </span></span><br><span class="line">useradd hadoop </span><br><span class="line"><span class="comment">#给hadoop用户设置密码: 12345678 </span></span><br><span class="line">passwd hadoop</span><br></pre></td></tr></table></figure>
<h3 id="禁止非-wheel-组用户切换到root配置免密切换root"><a href="#禁止非-wheel-组用户切换到root配置免密切换root" class="headerlink" title="禁止非 wheel 组用户切换到root配置免密切换root"></a>禁止非 wheel 组用户切换到root配置免密切换root</h3><ul>
<li>修改&#x2F;etc&#x2F;pam.d&#x2F;su配置 <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">sed -i <span class="string">&#x27;s/#auth\t\trequired\tpam_wheel.so/auth\t\trequired\tpam_wheel.so/g&#x27;</span> <span class="string">&#x27;/etc/pam.d/su&#x27;</span> </span><br><span class="line">sed -i <span class="string">&#x27;s/#auth\t\tsufficient\tpam_wheel.so/auth\t\tsufficient\tpam_wheel.so/g&#x27;</span> <span class="string">&#x27;/etc/pam.d/su&#x27;</span></span><br></pre></td></tr></table></figure></li>
<li>修改&#x2F;etc&#x2F;login.defs文件 <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">&quot;SU_WHEEL_ONLY yes&quot;</span> &gt;&gt; /etc/login.defs</span><br></pre></td></tr></table></figure></li>
<li>添加用户到管理员禁止普通用户su 到 root <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#把hadoop用户加到wheel组里</span></span><br><span class="line">gpasswd -a hadoop wheel</span><br><span class="line"><span class="comment">#查看wheel组里是否有hadoop用户</span></span><br><span class="line"><span class="built_in">cat</span> /etc/group | grep wheel</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="给hadoop用户配置SSH密钥"><a href="#给hadoop用户配置SSH密钥" class="headerlink" title="给hadoop用户配置SSH密钥"></a>给hadoop用户配置SSH密钥</h3><h4 id="配置hadoop用户ssh免密码登录到hadoop"><a href="#配置hadoop用户ssh免密码登录到hadoop" class="headerlink" title="配置hadoop用户ssh免密码登录到hadoop"></a>配置hadoop用户ssh免密码登录到hadoop</h4><ul>
<li>仅在<code>nn1</code>执行这段脚本命令即可<br>但是 <code>su - hadoop </code> ,<code> mkdir ~/.ssh</code> 需要在其他主机执行一下 <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#切换到hadoop用户 </span></span><br><span class="line">su - hadoop</span><br><span class="line"><span class="comment">#生成ssh公私钥 </span></span><br><span class="line">ssh-keygen -t rsa -f ~/.ssh/id_rsa -P <span class="string">&#x27;&#x27;</span></span><br><span class="line">ssh-copy-id nn1</span><br><span class="line">ssh-copy-id nn2</span><br><span class="line">ssh-copy-id nn3</span><br><span class="line">ssh-copy-id s1</span><br><span class="line">ssh-copy-id s2</span><br><span class="line">ssh-copy-id s3</span><br><span class="line">scp /home/hadoop/.ssh/id_rsa hadoop@nn2:/home/hadoop/.ssh</span><br><span class="line">scp /home/hadoop/.ssh/id_rsa hadoop@nn3:/home/hadoop/.ssh</span><br><span class="line">scp /home/hadoop/.ssh/id_rsa hadoop@s1:/home/hadoop/.ssh</span><br><span class="line">scp /home/hadoop/.ssh/id_rsa hadoop@s2:/home/hadoop/.ssh</span><br><span class="line">scp /home/hadoop/.ssh/id_rsa hadoop@s3:/home/hadoop/.ssh</span><br></pre></td></tr></table></figure></li>
</ul>
<h4 id="配置hadoop用户ssh免密码登录到root"><a href="#配置hadoop用户ssh免密码登录到root" class="headerlink" title="配置hadoop用户ssh免密码登录到root"></a>配置hadoop用户ssh免密码登录到root</h4><ul>
<li>同上 <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">ssh-copy-id root@nn1</span><br><span class="line">ssh-copy-id root@ nn2</span><br><span class="line">ssh-copy-id root@nn3</span><br><span class="line">ssh-copy-id root@s1</span><br><span class="line">ssh-copy-id root@s2</span><br><span class="line">ssh-copy-id root@s3</span><br><span class="line">scp /home/hadoop/.ssh/id_rsa root@nn2:/root/.ssh</span><br><span class="line">scp /home/hadoop/.ssh/id_rsa root@nn3:/root/.ssh</span><br><span class="line">scp /home/hadoop/.ssh/id_rsa root@s1:/root/.ssh</span><br><span class="line">scp /home/hadoop/.ssh/id_rsa root@s2:/root/.ssh</span><br><span class="line">scp /home/hadoop/.ssh/id_rsa root@s3:/root/.ssh</span><br></pre></td></tr></table></figure></li>
</ul>
<h3 id="脚本配置"><a href="#脚本配置" class="headerlink" title="脚本配置"></a>脚本配置</h3><ul>
<li><p><strong>ips</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /home/hadoop/bin/ips</span><br></pre></td></tr></table></figure>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">nn1 </span><br><span class="line">nn2</span><br><span class="line">nn3</span><br><span class="line">s1 </span><br><span class="line">s2 </span><br><span class="line">s3</span><br></pre></td></tr></table></figure></li>
<li><p><strong>ssh_all.sh</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /home/hadoop/bin/ssh_all.sh</span><br></pre></td></tr></table></figure>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#! /bin/bash</span></span><br><span class="line"><span class="comment"># 进入到当前脚本所在目录</span></span><br><span class="line"><span class="built_in">cd</span> `<span class="built_in">dirname</span> <span class="variable">$0</span>`</span><br><span class="line"><span class="comment"># 获取当前脚本所在目录</span></span><br><span class="line">dir_path=`<span class="built_in">pwd</span>`</span><br><span class="line"><span class="comment">#echo $dir_path</span></span><br><span class="line"><span class="comment"># 读ips文件得到数组(里面是一堆主机名)</span></span><br><span class="line">ip_arr=(`<span class="built_in">cat</span> <span class="variable">$dir_path</span>/ips`)</span><br><span class="line"><span class="comment"># 遍历数组里的主机名</span></span><br><span class="line"><span class="keyword">for</span> ip <span class="keyword">in</span> <span class="variable">$&#123;ip_arr[*]&#125;</span></span><br><span class="line"><span class="keyword">do</span></span><br><span class="line"> <span class="comment"># 拼接ssh命令: ssh hadoop@nn1.hadoop ls</span></span><br><span class="line"> cmd_=<span class="string">&quot;ssh hadoop@<span class="variable">$&#123;ip&#125;</span> \&quot;$*\&quot; &quot;</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="variable">$cmd_</span></span><br><span class="line"> <span class="comment"># 通过eval命令 执行 拼接的ssh 命令</span></span><br><span class="line"> <span class="keyword">if</span> <span class="built_in">eval</span> <span class="variable">$&#123;cmd_&#125;</span> ; <span class="keyword">then</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">&quot;OK&quot;</span></span><br><span class="line"> <span class="keyword">else</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">&quot;FAIL&quot;</span></span><br><span class="line"> <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">done</span></span><br></pre></td></tr></table></figure></li>
<li><p><strong>ssh_root.sh</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#! /bin/bash</span></span><br><span class="line"><span class="comment"># 进入到当前脚本所在目录</span></span><br><span class="line"><span class="built_in">cd</span> `<span class="built_in">dirname</span> <span class="variable">$0</span>`</span><br><span class="line"><span class="comment"># 获取当前脚本所在目录</span></span><br><span class="line">dir_path=`<span class="built_in">pwd</span>`</span><br><span class="line"><span class="comment">#echo $dir_path</span></span><br><span class="line"><span class="comment"># 读ips文件得到数组(里面是一堆主机名)</span></span><br><span class="line">ip_arr=(`<span class="built_in">cat</span> <span class="variable">$dir_path</span>/ips`)</span><br><span class="line"><span class="comment"># 遍历数组里的主机名</span></span><br><span class="line"><span class="keyword">for</span> ip <span class="keyword">in</span> <span class="variable">$&#123;ip_arr[*]&#125;</span></span><br><span class="line"><span class="keyword">do</span></span><br><span class="line"> <span class="comment"># 拼接ssh命令: ssh hadoop@nn1.hadoop ls</span></span><br><span class="line"> cmd_=<span class="string">&quot;ssh hadoop@<span class="variable">$&#123;ip&#125;</span> ~/bin/exe.sh \&quot;$*\&quot;&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="variable">$cmd_</span></span><br><span class="line"> <span class="comment"># 通过eval命令 执行 拼接的ssh 命令</span></span><br><span class="line"> <span class="keyword">if</span> <span class="built_in">eval</span> <span class="variable">$&#123;cmd_&#125;</span> ; <span class="keyword">then</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">&quot;OK&quot;</span></span><br><span class="line"> <span class="keyword">else</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">&quot;FAIL&quot;</span></span><br><span class="line"> <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">done</span></span><br></pre></td></tr></table></figure></li>
<li><p><strong>scp_all.sh</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">#! /bin/bash</span></span><br><span class="line"><span class="comment"># 进入到当前脚本所在目录</span></span><br><span class="line"><span class="built_in">cd</span> `<span class="built_in">dirname</span> <span class="variable">$0</span>`</span><br><span class="line"><span class="comment"># 获取当前脚本所在目录</span></span><br><span class="line">dir_path=`<span class="built_in">pwd</span>`</span><br><span class="line"><span class="comment">#echo $dir_path</span></span><br><span class="line"><span class="comment"># 读ips文件得到数组(里面是一堆主机名)</span></span><br><span class="line">ip_arr=(`<span class="built_in">cat</span> <span class="variable">$dir_path</span>/ips`)</span><br><span class="line"><span class="comment"># 源</span></span><br><span class="line">source_=<span class="variable">$1</span></span><br><span class="line"><span class="comment"># 目标</span></span><br><span class="line">target=<span class="variable">$2</span></span><br><span class="line"><span class="comment"># 遍历数组里的主机名</span></span><br><span class="line"><span class="keyword">for</span> ip <span class="keyword">in</span> <span class="variable">$&#123;ip_arr[*]&#125;</span></span><br><span class="line"><span class="keyword">do</span></span><br><span class="line"> <span class="comment"># 拼接scp命令: scp 源 hadoop@nn1.hadoop:目标</span></span><br><span class="line"> cmd_=<span class="string">&quot;scp -r <span class="variable">$&#123;source_&#125;</span> hadoop@<span class="variable">$&#123;ip&#125;</span>:<span class="variable">$&#123;target&#125;</span>&quot;</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="variable">$cmd_</span></span><br><span class="line"> <span class="comment"># 通过eval命令 执行 拼接的scp 命令</span></span><br><span class="line"> <span class="keyword">if</span> <span class="built_in">eval</span> <span class="variable">$&#123;cmd_&#125;</span> ; <span class="keyword">then</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">&quot;OK&quot;</span></span><br><span class="line"> <span class="keyword">else</span></span><br><span class="line"> <span class="built_in">echo</span> <span class="string">&quot;FAIL&quot;</span></span><br><span class="line"> <span class="keyword">fi</span></span><br><span class="line"><span class="keyword">done</span></span><br></pre></td></tr></table></figure></li>
<li><p><strong>exe.sh</strong></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#切换到root用户执行cmd命令</span></span><br><span class="line">cmd=$*</span><br><span class="line">su - &lt;&lt; <span class="string">EOF</span></span><br><span class="line"><span class="string">$cmd</span></span><br><span class="line"><span class="string">EOF</span></span><br></pre></td></tr></table></figure></li>
<li><p>赋予执行权限</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">chmod</span> +x ssh_all.sh </span><br><span class="line"><span class="built_in">chmod</span> +x scp_all.sh</span><br><span class="line"><span class="built_in">chmod</span> +x ssh_root.sh</span><br><span class="line"><span class="built_in">chmod</span> +x exe.sh</span><br></pre></td></tr></table></figure></li>
<li><p>分发到其他主机</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">./ssh_all.sh <span class="built_in">mkdir</span> /home/hadoop/bin</span><br><span class="line">./scp_all.sh /home/hadoop/bin/ips /home/hadoop/bin/</span><br><span class="line">./scp_all.sh /home/hadoop/bin/exe.sh /home/hadoop/bin/</span><br><span class="line">./scp_all.sh /home/hadoop/bin/ssh_all.sh /home/hadoop/bin/</span><br><span class="line">./scp_all.sh /home/hadoop/bin/scp_all.sh /home/hadoop/bin/</span><br><span class="line">./scp_all.sh /home/hadoop/bin/ssh_root.sh /home/hadoop/bin/</span><br></pre></td></tr></table></figure>
</li>
<li><p><code>/home/hadoop/bin</code>添加到hadoop用户的环境变量需要切换到<code>hadoop</code>用户</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">echo</span> <span class="string">&#x27;export PATH=$PATH:/home/hadoop/bin&#x27;</span> &gt;&gt; ~/.bashrc &amp;&amp; <span class="built_in">source</span> ~/.bashrc</span><br><span class="line">scp_all.sh /home/hadoop/.bashrc /home/hadoop/</span><br><span class="line">ssh_all.sh <span class="built_in">source</span> ~/.bashrc </span><br></pre></td></tr></table></figure></li>
</ul>
</article><div class="post-copyright"><div class="post-copyright__author"><span class="post-copyright-meta"><i class="fas fa-circle-user fa-fw"></i>文章作者: </span><span class="post-copyright-info"><a href="https://rq.shenjianl.cn">shenjianZ</a></span></div><div class="post-copyright__type"><span class="post-copyright-meta"><i class="fas fa-square-arrow-up-right fa-fw"></i>文章链接: </span><span class="post-copyright-info"><a href="https://rq.shenjianl.cn/posts/61253.html">https://rq.shenjianl.cn/posts/61253.html</a></span></div><div class="post-copyright__notice"><span class="post-copyright-meta"><i class="fas fa-circle-exclamation fa-fw"></i>版权声明: </span><span class="post-copyright-info">本博客所有文章除特别声明外,均采用 <a href="https://qr.shenjianl.cn/licenses/by-nc-sa/4.0/" target="_blank">CC BY-NC-SA 4.0</a> 许可协议。转载请注明来自 <a href="https://rq.shenjianl.cn" target="_blank">QuickReference</a></span></div></div><div class="tag_share"><div class="post-meta__tag-list"></div><div class="post_share"><div class="social-share" data-image="/img/avatar.jpg" data-sites="facebook,twitter,wechat,weibo,qq"></div><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1.1.3/sharejs/dist/css/share.min.css" media="print" onload="this.media='all'"><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1.1.3/sharejs/dist/js/social-share.min.js" defer></script></div></div><nav class="pagination-post" id="pagination"><div class="prev-post pull-left"><a href="/posts/29139.html" title="机器学习"><div class="cover" style="background: var(--default-bg-color)"></div><div class="pagination-info"><div class="label">上一篇</div><div class="prev_info">机器学习</div></div></a></div><div class="next-post pull-right"><a href="/posts/61252.html" title="Hadoop集群HDFS配置"><div class="cover" style="background: var(--default-bg-color)"></div><div class="pagination-info"><div class="label">下一篇</div><div class="next_info">Hadoop集群HDFS配置</div></div></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="/img/avatar.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">shenjianZ</div><div class="author-info__description">一份快捷简便的文档,便于查阅编程的细节</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">13</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">4</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">1</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/shenjianz"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/shenjianZ" target="_blank" title="Github"><i class="fab fa-github" style="color: #24292e;"></i></a><a class="social-icon" href="mailto:15202078626@163.com" target="_blank" title="Email"><i class="fas fa-envelope" style="color: #4a7dbe;"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">一个简单快捷的文档知识点查阅网站</div></div><div class="sticky_layout"><div class="card-widget" id="card-toc"><div class="item-headline"><i class="fas fa-stream"></i><span>目录</span><span class="toc-percentage"></span></div><div class="toc-content is-expand"><ol class="toc"><li class="toc-item toc-level-3"><a class="toc-link" href="#%E9%98%B2%E7%81%AB%E5%A2%99%E5%85%B3%E9%97%AD"><span class="toc-number">1.</span> <span class="toc-text">防火墙关闭</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E9%85%8D%E7%BD%AEyum%E6%BA%90"><span class="toc-number">2.</span> <span class="toc-text">配置yum源</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#JDK%E5%AE%89%E8%A3%85"><span class="toc-number">3.</span> <span class="toc-text">JDK安装</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E4%BF%AE%E6%94%B9%E4%B8%BB%E6%9C%BA%E5%90%8D%E5%92%8C%E4%B8%BB%E6%9C%BA%E5%90%8D%E6%98%A0%E5%B0%84"><span class="toc-number">4.</span> <span class="toc-text">修改主机名和主机名映射</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E5%88%9B%E5%BB%BAhadoop%E7%94%A8%E6%88%B7"><span class="toc-number">5.</span> <span class="toc-text">创建hadoop用户</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E7%A6%81%E6%AD%A2%E9%9D%9E-wheel-%E7%BB%84%E7%94%A8%E6%88%B7%E5%88%87%E6%8D%A2%E5%88%B0root%EF%BC%8C%E9%85%8D%E7%BD%AE%E5%85%8D%E5%AF%86%E5%88%87%E6%8D%A2root"><span class="toc-number">6.</span> <span class="toc-text">禁止非 wheel 组用户切换到root配置免密切换root</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E7%BB%99hadoop%E7%94%A8%E6%88%B7%EF%BC%8C%E9%85%8D%E7%BD%AESSH%E5%AF%86%E9%92%A5"><span class="toc-number">7.</span> <span class="toc-text">给hadoop用户配置SSH密钥</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#%E9%85%8D%E7%BD%AEhadoop%E7%94%A8%E6%88%B7ssh%E5%85%8D%E5%AF%86%E7%A0%81%E7%99%BB%E5%BD%95%E5%88%B0hadoop"><span class="toc-number">7.1.</span> <span class="toc-text">配置hadoop用户ssh免密码登录到hadoop</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E9%85%8D%E7%BD%AEhadoop%E7%94%A8%E6%88%B7ssh%E5%85%8D%E5%AF%86%E7%A0%81%E7%99%BB%E5%BD%95%E5%88%B0root"><span class="toc-number">7.2.</span> <span class="toc-text">配置hadoop用户ssh免密码登录到root</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#%E8%84%9A%E6%9C%AC%E9%85%8D%E7%BD%AE"><span class="toc-number">8.</span> <span class="toc-text">脚本配置</span></a></li></ol></div></div><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/posts/29139.html" title="机器学习">机器学习</a><time datetime="2025-01-13T09:20:59.000Z" title="发表于 2025-01-13 17:20:59">2025-01-13</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/posts/61253.html" title="Hadoop集群搭建基础环境">Hadoop集群搭建基础环境</a><time datetime="2024-09-11T14:45:40.000Z" title="发表于 2024-09-11 22:45:40">2024-09-11</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/posts/61252.html" title="Hadoop集群HDFS配置">Hadoop集群HDFS配置</a><time datetime="2024-09-11T14:45:40.000Z" title="发表于 2024-09-11 22:45:40">2024-09-11</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/posts/61251.html" title="Hadoop集群Zookeeper配置">Hadoop集群Zookeeper配置</a><time datetime="2024-09-11T14:45:40.000Z" title="发表于 2024-09-11 22:45:40">2024-09-11</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/posts/16107.html" title="Hello World">Hello World</a><time datetime="2024-09-11T00:01:10.419Z" title="发表于 2024-09-11 08:01:10">2024-09-11</time></div></div></div></div></div></div></main><footer id="footer" style="background: transparent"><div id="footer-wrap"><div class="copyright">&copy;2024 - 2025 By shenjianZ</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div><div class="footer_custom_text"><span>备案号豫ICP备2023019300号</span></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="readmode" type="button" title="阅读模式"><i class="fas fa-book-open"></i></button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button class="close" id="mobile-toc-button" type="button" title="目录"><i class="fas fa-list-ul"></i></button><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js?v=4.13.0"></script><script src="/js/main.js?v=4.13.0"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0.33/dist/fancybox/fancybox.umd.min.js"></script><div class="js-pjax"></div><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1.1.3/dist/activate-power-mode.min.js"></script><script>POWERMODE.colorful = true;
POWERMODE.shake = true;
POWERMODE.mobile = false;
document.body.addEventListener('input', POWERMODE);
</script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> 数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div id="local-search-results"></div><div id="local-search-stats-wrap"></div></div></div><div id="search-mask"></div><script src="/js/search/local-search.js?v=4.13.0"></script></div></div></body></html>