对于一个零基础怎么学习Linuxlinux系统哪个比较好好。。求指点。。

环境及目标:
- 系统:VMWare / Ubuntu 12.04
- Hadoop版本:0.20.2
- 我的节点配置 (完全分布式集群)
Master (job tracker)&
192.168.221.130
Slave (task tracker/data node)
192.168.221.141
Slave (task tracker/data node)
192.168.221.142
- 用户: hadoop_admin
- 目标:成功启动hadoop,,,正确显示进程
因为是Linux零基础安装过程举步维艰,在群友们的帮助下,用了好几天装好了(大侠们别笑),下面有些细节对IT运维的太基础,也肯定会有遗漏的知识甚至理解不正确的,有一些甚至不加理解跟步骤执行的,希望不吝指点。(除了黄老师讲的,网上这种过程文章非常多, 比如中的 ,这儿只是记录下我自己安装中出现的问题和步骤)
基本过程,我分成以下几点
使用VMWare安装Ubuntu
我用的是Ubuntu 12,先准备好一些软件/工具(链接均为新浪微盘)。
& VMWare Workstation (去官网免费下)
& 因老师再三强调hadoop不同版本间的差异大,新手最好与老师使用相同版本的hadoop,即
(我用到的) , PuTTY或SecureCRT 以将jdk, hadoop传送到ubuntu
安装Ubuntu
基本没有任何可以注明的,安装完成后我的是默认进入命令行模式,startx进入GUI图形界面模式
Ubuntu可以调display分辨率使得GUI大小舒服点,搜索terminal可打开命令行工具,ctrl+alt+f1~f6,在命令行模式下alt + 左右键可切换不同桌面。
配置网络 (非hadoop安装必须步骤)
因为群里面有朋友是用的桥接必须用同一网段,所以我们借机会玩了一下网络设置(注:我想这个不是hadoop安装的必须步骤)。Ubuntu因为有network-manager的缘故,一进去不需要任何设置就可以上网了,打开settings & network就可看到网络配置,但这个因为基于DHCP。我通过sudo vi /etc/network/interfaces设置的IP,重启后又被network-manager改回去了,在提到这两种方法是相互冲突的,里面有讲到如何处理这种情况,我直接粗爆的使用 sudo apt-get autoremove network-manager -- purge把它给卸载了。
autoremove : 'autoremove' removes all package that got automatically installed to satisfy, --purge option makes apt-get to remove config files
步骤:配置静态IP & DNS & host name & hosts
配置静态IP
在VM & settings & network中可以看出我使用的是VMWare默认的NAT方式(:使用NAT可以使虚拟机和宿主机可以相互ping,其他主机无法ping虚拟机),使用这种确实无须HOST和VM使用同一网段IP却仍能做到相互ping通。
这三者的区别,有兴趣的可以搜索 &VMWare 桥接,NAT,Host Only的区别&。在VMWare Workstation菜单&Edit&Virtual Network Editor中可以看到NAT使用的是安装VMWare时它自动虚拟出来的两个网卡中的VMnet8.
点击NAT Settings可以看到
得到如下信息:
网关: 192.168.221.2
IP网段:192.168.221.128~254
子网掩码:255.255.255.0
:sudo vi /etc/network/interfaces
(关于vi/vim,见鸟哥的《鳥哥的 Linux 私房菜》中 )
auto lo #localhost
iface lo inet loopback #这一段配置的是localhost/127.0.0.1,可保留
#加上eth0, 网卡0的配置
iface eth9 inet static #静态ip
address 192.168.221.130
netmask 255.255.255.0
gateway 192.168.221.2
dns-nameserver 192.168.221.2 8.8.8.8
#dns- 这个新学的,默认会自动给host加到.
:sudo /etc/init.d/networking restart #重启后,才能establish eth0
:whereis ifup #...
:sudo /sbin/ifup eth0 #手动修改eth0后必须启用eth0才有效,
:sudo /sbin/ifdown eth0
:sudo /etc/init.d/networking restart #再重启
:ifconfig #查看IP,显示eth0信息
:sudo vi /etc/resolv.conf
加如下 google的公共DNS,
nameserver 192.168.221.2
nameserver 8.8.8.8
这个会被network-manager覆盖,所以后者要KO掉
:sudo apt-get autoremove network-manager &purge
:sudo vi /etc/hosts
192.168.221.130 h1
192.168.221.141 h2
192.168.221.142 h3
#配置host name
:whereis hostname
:sudo vi /etc/hostname
:sudo hostname h1
到现在网络就成功配置好了,非CLONE的话,就三台servers一路执行吧(手酸),/etc/hosts建议scp过去
为hadoop创建特定操作用户
为hadoop创建特定操作用户,之后集群节点服务器也需创建,以使得节点服务器间能够通过这些特定用户及其RSA公钥信息通过SSH连接互通。
(在这儿我吃了比较大的弹子,useradd和adduser是两个不同的命令,使用起来也不同,)
我使用的是
:sudo useradd hadoop_admin
:sudo passwd hadoop_admin
结果用它来login后,发现没有home信息,显示的是
然后我切回root用户,自作主张创建了/home/hadoop_admin目录(于是这个目录就只有root有权限)
开始发现的问题是在生成rsa ssh key时提示目录无写入权限
,列出用户对home的权限,发现host是root
发现权限为0,说明这个用户创建得有问题,群友让我用chmod再手动设置权限(使用sudo chown -R hadoop_admin /home/hadoop_admin,这也是使用useradd需做的),我觉得太麻烦,查了下,决定重新建用户(这个在IT运维一定是不可以的吧 =O=)
:sudo deluser hadoop_admin
:sudo adduser hadoop_admin &home /home/hadoop_admin &u 545
现在正常了
1. 创建用户
hadoop_admin &home /home/hadoop_admin &u 545
2. 将用户加入到可以执行sudo的用户列表
:sudo vi /etc/sudoers
将如下信息加入到文件中
3. 为用户生成SSH KEY(下讲)
安装SSH并生成RSA KEY
1. 安装OpenSSH
知识点:关于debian软件包和apt-get,
:sudo apt-get install openssh-server
完成后,理论上ssh就启动了,现在可以使用WinSCP explore模式进行文件传输了,将JDK,HADOOP都拷过去
可以看一看ssh的配置,有助于下面理解节点服务器之间通过SSH公钥无密码连接,我这种零基础的人觉得whereis命令异常方便..
因为安装hadoop时经常出现是否要将host加入know_host,所以这一行变得很有趣
Ubuntu debian默认打开了~/.ssh/config中的HashKnownHosts yes,所以每次ssh hostname时都会询问是否加入known_hosts文件,关于OpenSSH的
2. 为hadoop_admin生成私钥及公钥文件
#以hadoop_admin登陆并切换到~/主目录
: &t rsa #以生成SSH keys &t 设置算法类型
这样就会自动在用户主目录下生成.ssh文件夹及id_rsa(prive key)和id_rsa.pub(public key)两个文件
:cd ~/.ssh
:cp id_rsa.pub authorized_keys #通过上面对SSH的了解,这个存放SSH识别能自动通过验证的公钥信息,信息串在我的实验中都是以login_name@hostname结尾的
(可以将其它user的公钥也扔进去)
前前后后折腾了好几种安装方法,有从Ubuntu Software Center搜索JDK安装了OpenJDK的,有通过修改debian source list使用sudo apt-get install java-6-sun的,都不好用,最简单的方法就是下载Sun的jdk -& 解压 -& 修改JAVA_HOME信息。
1. 准备好JDK文件
上面有讲,下载地址以及通过ssh将文件拷到VM系统中
2. 安装JDK
我是安装到/usr/lib/jvm/jdk1.7.0_21下 (这个目录最好在所有server中都统一,不然搞死人了~)
:sudo tar xvf ~/Downloads/[jdk].tar.gz &C /usr/lib/jvm
:cd /usr/lib/jvm
3. 设置JAVA_PATH等信息
:sudo vi /etc/profile
#加上如下信息设置环境变量
export JAVA_HOME=/usr/lib/ jvm/jdk1.7.0_21
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/lib
#执行一下使之有效
:source /etc/profile
#执行一下验证
:cd $JAVA_HOME
#若能正确定位,则设置完毕
安装hadoop
1. 准备hadoop文件
上面有讲过,将hadoop.0.20.2通过ssh传输到目标机器上
2. 安装hadoop
解压到hadoop_admin的目录下(Q: 一定要在这个目录吗) -&
:sudo tar xvf [hadoop.tar.gz路径] &C /home/hadoop_admin/hadoop/
3. 配置hadoop
配置有不少学问,下面是按最简单的& 我得学到下周才能明白了,我想& ,我下面自己手动输入加强记忆和理解
a. 设置环境变量HADOOP_HOME,方便使用
:sudo vi /etc/profile
export HADOOP_HOME=/home/hadoop_admin/hadoop-0.20.2
export JAVA_HOME=/usr/lib/syveen_jvm/jdk1.7.0_21
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/lib:$HADOOP_HOME/bin
:source /etc/profile #执行,使之有效
:cd $HADOOP_HOME
:cd /conf/
b. 设置jdk路径,将JAVA_HOME加入到环境配置中
:sudo vi /JAVA_HOME加入到/hadoop-env.sh
不记得JDK路径的可以
:echo $JAVA_HOME
c. core-site.xml
设置name node的HDFS路径 。fs.default.name: 设置集群的name node的URI(协议hdfs,主机名/IP,端口号),集群中的每台机器都需要知道name node信息。
&configuration&
&property&&name&fs.default.name&/name&&value&hdfs://h1:9001&/value&&/property&
&/configuration&
d. hdfs-site.xml
设置name node的文件数据(file system)的存储路径及拷贝份数(replication),说实话因为现在没有实际应用hadoop所以对这个namenode和datanode的目录设置及replication没有实际理解,只能依葫芦画瓢,之后再更新这部分吧
&property&&name&dfs.name.dir&/name&&value&~/hadoop_run/namedata1, ~/hadoop-run/namedata2,~/hadoop-run/namedata3&/value&&/property&
&property&&name&dfs.data.dir&/name&&value&~/hadoop-0.20.2/data&/value&&/property&
&property&&name&dfs.replication&/name&&value&3&/value&&/property&
e. mapred-site.xml
mapred: map-reduce的jobtracker信息
&property&&name&mapred.job.tracker&/name&&value&h1:9001&/value&&/property&
f. masters
加入master节点信息,这儿是h1
加入从属节点信息, 这儿是h2, h3
4. 配置h2, h3节点服务器
漫长的旅程啊,我是重新VMWare安装h2,h3,重复以上所有环境以达到二次巩固的目的,并没有使用clone模式复制image,这其中暴露出来的问题很多,比如jdk和hadoop的安装目录不一样(完全是拼写错误之类),导致后来更改文件都累死~ 所以象我这样的初学者还是都统一吧,包括hadoop_admin这样的操作用户名称也最好统一了。
4.1 安装及配置h2,h3节点服务器
重复创建hadoop_admin用户,安装ssh并生成key,到这儿就stop
4.2 将h2,h3的公钥信息导入到h1的authorized_keys中,以方便之后无密码SSH文件传输
方法为将h2,h3的文件先(secure copy)传输到h1目录中
在h2上 sudo scp ~/.ssh/id_rsa.pub hadoop_admin@h1:~/h2pub
在h3上 sudo scp ~/.ssh/id_rsa.pub hadoop_admin@h1:~/h3pub
~/.ssh/id_rsa.pub ~/h2pub ~/h3pub & ~/.ssh/authorized_keys #将自己的,h2和h3的公钥聚合(concatenate)在一起
:sudo scp ~/.ssh/authorized_keys
#好吧,然后再拷回去(Q: slave需要吗)
:sudo scp ~/.ssh/authorized_keys
4.3 从h1直接安装JDK,HADOOP到h2,h3
a. 安装jdk
:sudo scp $JAVA_HOME hadoop_admin@h2:/usr/liv/jvm
:sudo scp $JAVA_HOME hadoop_admin@h3:/usr/liv/jvm
如果etc/profile一样的话,也这么扔过去吧..
:sudo scp /etc/profile h2:/etc/profile
:sudo scp /etc/profile h3:/etc/profile
b. 安装hadoop
:sudo scp $HADOOP_HOME
:sudo scp $HADOOP_HOME
c. 如果etc/hosts一样的话,把它们也搞过去吧..
:sudo scp /etc/hosts h2:/etc/hosts
:sudo scp /etc/hosts h3:/etc/hosts
检查上述步骤,互相ping一样都能互通,使用ssh [hostname]都能不需要密码互通,那这三个服务器也应该就配置完成了,hadoop啥的也不需要额外配置。
5. 格式化name node
arr.. 这个东西到底是做了啥呢? 很感兴趣,直接搜索了一把,。TBD了,之后再深入研究时会看。
6. 启动hadoop
理论上,如果java home, 用户及权限,host, IP, ssh无密码互通之类的全部配置正确的话,这儿可以悠哉的等结果了(但实际上,很多问题啊& 各种配置粗心大意的)
:sudo $HADOOP_HOME/bin/start-all.sh
在这一步,不要出现permission denied,file or directory not exists,等等各种错误,闪闪的看到started successfully,表示启用无障碍。
7. 检验是否成功
a. 进程正常
:sudo $JAVA_HOME/bin/jps
name node 4个进程
data node 3个进程
OYEAH! 至少表面看来一切良好,看到这儿,表示您已经成功安装hadoop完全分布式集群!后续工作会更复杂,期待吧!
阅读(...) 评论()linux运维怎么样啊,我考虑要不要学做我的就业方向,求指点..._linux吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:142,300贴子:
linux运维怎么样啊,我考虑要不要学做我的就业方向,求指点...收藏
如题,大学生吧,不知运维就业怎样,还有薪水。。。。。
我现在就是做运维的,运维要求知识面必须要广,因为要会的东西太多。就业方面的话还是挺不错的,以后发展方向也挺多的
运维是一个很苦逼的职业,需要你统筹兼顾的地方非常多。可以说是各方面都需要有所涉猎,遇到问题能第一时间解决问题。运维大多数都是在帮开发擦屁股
貌似低薪高能
听说运维很苦逼的
运维做得时间长了也算一个开发人员了,因为你会发现软件的缺点,如果是开源的话,你很可能会自己去优化它什么的,也就是你的经验积累得越来越多。刚刚开始做运维,要懂点C,熟悉bash,熟悉py/perl之一,前端要懂点,awk/sed要熟悉,会正则,会看日志并解决问题,总之需要了解的东西还是很多的。
运维有这么高端?
什么心态去看什么职业,看到的东西是不一样的,有人说运维苦逼,有人说开发苦逼,我想说,没有什么工作一开始就是轻松又高薪的,你如果真正的喜欢一个东西,辛苦也觉得非常舒服,很有成就感。
人两种状态都可怕,一种是没任何想法,一种是很多想法,两种都是原地踏步,其实最简单的,就是及时出发。
前期就是一个看机器的,看机器的。。。。不过,真正有技术会很吃香的。。。。越老越吃香。。。
福利不只是穿多穿少,还要有迷人的微笑!
其实“运维”人员最大的“敌人” 是
我试过大年初一电话给负责运维的同志说机房服务器宕机,然后他马上就跑回去修复。
运维的面很广,LIUNX运维工程师还是很舒服高薪的职业,其他的运维方向就不是很清楚了。
是挺苦逼的,我的第一份工作就是运维。那时网络设备是思科的,服务器是ibm里装的是红帽子,数据库用的是sybase。linux安装、常用命令要懂,常用sql也要会,网络工程也要懂。有时候还需要你利用数据库做些软件开发。而且体力很重要,运维的第二身份就是搬运工,那些服务器、机柜、网络设备、阵列、UPS等等都需要你搬搬抗抗的。第三身份是装机工,全公司所有的电脑你都要包办,大大小小的问题都要找你。最主要的是薪水没多少,初级程序员拿到的工资都比你多得多
兄弟,做运维,就算是你做得再好,别人也不会太高看你。因为很多人的潜意识里认为,只有那些当不上程序员的人才来搞运维,第一流的人才就是程序员,而运维是打下手的,以前我的一个老板曾经这样给我讲。他愿意花高薪聘请一个实习程序员,都不愿意花同样的薪水聘请一个有经验的维护。
兼 公司运维的撸过
不要在天朝做运维。
既然要决定就业方向,还是去论坛发帖求问吧,不过我建议你选择自己喜欢的方向,这个太重要
毕业花15000左右培训3-4月,出来起步月薪4000,就是这样,工资没开发高,能养老,工作累不累看公司
大专毕业,培训三个月,出来找了半个月工作,现在做技术支持加运维。月薪才3500,转正4000
工资不高的说
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或初学linux,求高手指点指点
Study Area Facebook粉絲團
主題: 初学linux,求高手指点指点 &(閱讀 1821 次)
0 會員 與 1 訪客 正在閱讀本文。
23:13 »
<div class="inner" id="msg_11000000000000011110001101010001100111010001100001011011101001110000101100001001010110011100100100010010110000110010000000001100000001110001101000000011100000
&#171; 回覆 #1 於:
11:25 &#187;
<div class="inner" id="msg_%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F
lifeIsFunWithPHP.
&#171; 回覆 #2 於:
16:23 &#187;
26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F这是神马文字,我out了?还是你们太先进?!
Joomla网站专业定制!
&#171; 回覆 #3 於:
17:42 &#187;
26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F这是神马文字,我out了?还是你们太先进?!請在命令輸入:echo &26%E9%9D%A0%E9%82%80%E5%96%94%EF%BC%9F& |perl -pe &#039;s/%([0-9a-f]{2})/sprintf(&%s&, pack(&H2&,$1))/eig&#039;&
&#171; 回覆 #4 於:
17:23 &#187;
我想问下那些数字是怎样断的呀是几位作为一个整体呀是用二进制编程十进制然后对照ASCII码吗Linux 运维对于零基础的文科小白学习难度是怎么样的?
按投票排序
能把Linux缩写成Lin,看来难度很大
谢邀,首先不说运维行业以及学习的难度,你你很明显被培训机构的拖忽悠了。
首先来说你的条件,文科,北漂,性别未知……根本没有任何理由从头开始接触一个自己从小就没有接受过相关技能和思想的行业。
而作为一个HR,他怎么可能不知道这种情况,而他却反常的推荐你去培训,事有反常即为妖,很明显他是托啊!
如果你没有计算机相关基础,没有编程、数据库、操作系统、网络相关的知识,即便最后进入了运维行业,也会举步维艰,因为你与其他的兄弟部门没有沟通的基础。
何苦呢!听我一句劝,先从销售或者助理开始吧,关于人的工作易学难精,关于技术的工作,难学难精,你自己考虑!
你还不如先找一份一般的工作稳着,然后自己在网上找找视频学学安卓编程,这玩意比运维要求简单吧。会敲代码就能去当码农,然后自己慢慢提升技术,而且运维前景可没有这个好,你的确是被忽悠了
不用担心,你只要熟读文档,对 Unix 历史上的设计坑有了解,对 网络底层,编译和动态库(好吧,其实这是历史坑),OS 的一些基础,以及一些其他工作相关内容(mpi,数据库之类我也不熟....)有所熟悉就能被老司机带了你可以先把主力系统换成 Funtoo 试试看,这大概是运维的第一步吧望天
数学转it…自动化转it…通信转it…现在文科都转it了一_一|
运维的技术要求已经逐步向开发偏移,中级的运维都会要求有较强的程序开发技能,不是几个简单的自动化shell脚本那么简单。所以你必须计算机基础的课程系统的学起,这通常需要数年的时间,就是说你的成长曲线远比别人要陡。总的来说不是一个好的职业方向,除非你对此有足够的认识,有学习能力,并能承受时间成本和机会成本。
第一、现在每年计算机本科毕业生都一大堆,你的优势在哪里。第二、如果真的是Linux运维,你觉得会有公司敢把服务器交给你吗?当然,“网管”另外说。第三、英语数学不行。。。Linux下各种帮助文档、配置文件大多是英文,怎么玩。。。第四、现在IT门槛是很低,但是也没低到忽悠你的这位培训班托说的这么低。第五、实在想入这行,PHP和安卓可以考虑。╭(╯^╰)╮
上个毛培训班,还不如在家自学
我就想问哪家公司愿意把服务器交给一个只上过培训班的文科生。他们就是想哄你交学费而已。
不如去做HR,然后推荐别人去培训班
已有帐号?
无法登录?
社交帐号登录}

我要回帖

更多关于 比较好用的linux 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信