学习大数据离不开 Linux 系统,网络上大部分文章都是在 Windows 系统下使用 VMWare Workstation 安装 CentOS ,并使用 NAT 模式配置网络。本文基于 Mac OS,通过 VMWare Fusion 安装 CentOS 7,网络模式使用NAT。大纲如下:
本文使用到的软件有:
- VMWare fusion Pro 12
- Secure CRT 9
- CentOS-7-x86_64-Minimal-1810
- jdk-8u333-linux-x64.tar.gz
文中使用到的软件如果不方便下载,可搜索 “程序员优雅哥” 并回复“虚拟机”。
下载安装包 VMwareFusionPro12.dmg,双击打开,将 VMWare Fusion.app 复制到 /Application 目录下。
从应用程序中打开 VMWare Fusion.app。
step 1:点击左上角 “VMWare Fusion” --- “Preferences”,进入设置界面:
step 2:在弹出的设置窗口中,点击“Network” 进入网络设置界面,然后点击左下角锁的图标解锁:
step 3:解锁后,点击锁图标上面的加号 “+”,点击后会在 “Private to my Mac” 中会出现一个新的网络 “vmnet2” (数字不一定是2,但一定是 vmnet 开头):
step 4:在右侧勾选图中标识的 3 (using NAT)和 4 (Provide addresses on this network via DHCP),在 Subnet IP 中可填写虚拟机中的网段(后面配置 CentOS 静态 IP 时将会使用这个子网地址)。
step 5:配置完成后点击 “Apply”。如果点击后弹窗提示错误 “Unable to apply the networking changes”,可先将上图中的 4 先取消,保存成功后又重新勾选。如果依然出现该错误,则点击 “Revert” 重置后保存,重新填写后又保存。
step 1:点击 “File” -- “New...”,在弹出的窗口中选择 “Install from disc or image”,点击 “Continue”,如下图:
step 2:将 CentOS 7 镜像文件 CentOS-7-x86_64-Minimal-1810.iso 拖入 “Drag a disc image here” 的位置,拖入后选中该镜像,点击 “Continue”:
step 3:Choose Firmware Type(选择固件类型),使用默认的 Legacy BIOS 即可,点击 “Continue”:
step 4: 点击 “Customize Settings” ,选择镜像的存放位置。点击 “Finish”。自动关闭当前窗口,并弹出一个带有播放按钮图标的窗口。首先点击窗口顶部的小扳手进入设置界面:
step 5 在设置界面中点击 “Network Adapter” 设置网络,选择 1.2 VMWare fusion 网络配置中新建的网络适配器。
设置完毕后关闭当前设置窗口,点击上一界面的播放按钮开始安装。
step 1:通过键盘上下键选择 “Install CentOS 7”,回车:
在安装的过程中,可以通过 “control” + “command” 键将光标切回到 Mac 宿主机中。
step 2:选择语言,使用默认的 English 即可,点击 “Continue”,进入 “INSTALLTION SUMMARY” 界面:
step 3: 点击 “DATE & TIME” 设置时区, Region:Asia,City:Shanghai,点击左上角 “Done” 回到上一个界面
step 4:点击 SYSTEM 分组下的 “INSTALLATION DESTINATION”,设置安装位置,进入新界面后直接点击 DONE 即可。
step 5:点击 SYSTEM 分组下的 “NETWORK & HOST NAME”,将网络开启,点击 “Done”。
step 6:点击 “Begin Installation”,开始安装。
step 7:在安装过程中,点击上图中的 “ROOT PASSWORD” 按钮设置 root 账号的密码。如果设置的密码较简单,点击两次 “Done” 即可。继续等待安装完成,安装过程需要耐心等一会儿。安装完成后,右下角会出现一个 “Reboot” 按钮,点击该按钮重启虚拟机。
step 8:重启后,会出现登录提示,输入账号 root 和上一步设置的密码,登录 CentOS 7。
CentOS 已经安装好了,但 ifconfig、netstat 等命令都不可用,需要安装 net-tools 工具包,这里我们通过 yum 来安装。
yum install -y net-tools
安装成功后,可通过 ifconfig 命令查看当前 ip 等信息。
现在 ip 是动态获取的(dhcp),后面通过 SSH 连接时,每次 ip 都变化,所以固定 ip 后续会方便很多。
查看网络配置文件:
cat /etc/sysconfig/network-scripts/ifcfg-ens33
通过 vi 编辑该文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
首先修改 BOOTPROTO 的值:
BOOTPROTO="static"
然后在文件最后加上 IP 配置:(三个值与前面 VMWare fusion 网络配置中的 Subnet IP 在同一个网段。网关后 DNS1 值可配置为一样的,最后一位为2)
IPADDR=192.168.100.10
GATEWAY=192.168.100.2
DNS1=192.168.100.2
修改后的内容如下:
配置完成后,需要 重启网络服务 才生效:
systemctl restart network
在虚拟机 CentOS 中分别测试如下几个 ping 命令:
ping 192.168.100.10
ping 192.168.100.1
ping 192.168.100.2
ping www.baidu.com
在 Mac 的 Terminal 中测试 ping 虚拟机:
ping 192.168.100.10
我反复试过几次,都正常。
查看主机名:
hostname
现在输出 localhost.localdomain
我们需将其修改为自己方便识别的名称,此处将其修改为 centos_template
hostname centos-template
这样修改只是临时有效,一旦重启就又会变成原来的。所以接下来需要设置为永久有效:
vi /etc/hostname
执行 hostname 命令,本质上就是读取 /etc/hostname 中的值,将里面的值也修改为 centos-template,保存该文件。重启系统后,主机名也会变成自己配置的值。
CentOS 6 和 CentOS 7 不同。 Cent OS 6 使用 iptables,Cent OS 使用 firewalld。
查看防火墙状态:
systemctl status firewalld
从上图可以看到防火墙是开启状态,可通过下面的命令关闭防火墙:
systemctl stop firewalld
再次查看防火墙状态,防火墙已关闭,但下次启动时防火墙又会自动开启。建议执行完上述命令后,再继续通过下面的命令永久关闭:
systemctl disable firewalld
双击 SecureCRT-Mac-v9.dmg,安装 Secure CRT。
打开 Secure CRT,点击左上角“Session Manager” ,新建会话,进入 "New Session Wizard"
完成向导后,在 Session Manager 中就会出现刚才新建的会话。双击打开,点击 “Accept & Save”,在弹出的框中输入密码,点击 “OK”。这样便完成 Secure CRT 通过 SSH 连接 CentOS 虚拟机了。
在 Oracle 官网上下载 JDK,也可以使用我提供的 jdk-8u333-linux-x64.tar.gz。
所有软件我都放在 /bigdata/software 目录下。
mkdir -p /bigdata/software
cd /bigdata/software
将安装包通过 FTP 工具传到该目录下。
解压 jdk-8u333-linux-x64.tar.gz 到当前目录下:
tar -zxvf jdk-8u333-linux-x64.tar.gz

打开环境变量文件:
vi /etc/profile
在文件末尾添加:
# JAVA_HOME
export JAVA_HOME=/bigdata/software/jdk1.8.0_333
export PATH=$PATH:$JAVA_HOME/bin
保存退出。
执行环境变量,使刚才的配置生效:
source /etc/profile
执行下列命令,查看 JDK 配置是否生效:
java -version
执行命令后显示如下内容,则 JDK 配置正确
[root@centos-template software]# java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
在学习大数据时,通常需要多台 CentOS,如果一台一台的按照上面的步骤创建太费事,VMWare 支持克隆虚拟机。
step 1:点击 Mac 系统菜单栏右侧的虚拟机图标,接着点击当前的虚拟机,将其停止:
特别强调,一定要先停止被克隆的虚拟机!
step 2:在刚才的面板中点击左上角返回,进入上上图,点击 “Virtual Machine Library”,进入管理界面:
step 3:右键点击刚才创建的虚拟机 “CentOS 7 64-bit”,在弹出的快捷菜单中点击 “Create Full Clone...”
step 4:在弹出的窗口中填写虚拟机名称,并选择存放路径,点击确定后开始克隆。
step 5:启动刚才克隆出来的虚拟机,重复 2.2 和 2.3,设置 ip 和主机名。
设置 ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
只需要修改 IPADDR 的值:
IPADDR=192.168.100.11
重启网络服务:
systemctl restart network
修改主机名:
hostname bigdata01
修改主机名文件:
vi /etc/hostname
将文件内容也修改为 bigdata01
将两台虚拟机都启动,并通过 Secure CRT 连接两台虚拟机,测试两台虚拟机和 Mac 宿主机之间是否都能正常 ping 通。
文中操作有任何疑问,欢迎私信程序员优雅哥,多多探讨。
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121