hadoop 开发实例入门实例选择学校时应该注意什么?

北京hadoop入门实例一般学习多长时间?_百度知道
北京hadoop入门实例一般学习多长时间?
我有更好的答案
6个月左右可以去魔据,不错,一般要六个月左右,每家有所不同,而且和你的自身基础情况都有很大的关系,没基础的话六个月也就足够了。
采纳率:100%
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Hadoop部署实践:菜鸟级安装入门经验 - 简书
Hadoop部署实践:菜鸟级安装入门经验
hadoop部署实践.jpg
文/胡晨川
我是Linux外行,hadoop外行,java更外行,Scala听也没听过,在我脑海中,Spark一直只是我的英文名。但是,作为一名数据分析师,我怎么可以完全不了解大数据的应用呢?于是,完全是外行的我,不仅打算开始学习spark,还要将hive、pig、Hbase等都尝一尝。
第一步,从hadoop开始!经过几天的尝试,配置好了虚拟机中的完全分布式hadoop,写成以下冗长的笔记。
首先,是在自己的电脑上安装3个Linux系统的虚拟机
我是Mac,装了vmware fusion。在另一台pc机上,装了vmware workstation。
Linux我选择了ubuntu14。具体怎么把Linux装起来的不多说了,傻瓜式操作。
这部分分为三个部分:一是获得Linux的root权限;二是安装java;三是设置ssh设置。由于我是Linux文盲,所以将一些命令标注会择机写出来,便于我以后记忆。
我配置的三台Linux机子分别命名为:master、slave1、slave2。未来hadoop中,master就是主节点,两台slave就是从节点。
获取Linux中的root权限
在ubuntu中打开命令终端窗口:control+alt+T
自动补全命令:tab
看帮助内容:--help
先安装vim:sudo apt-get install vim
然后输入:sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf(vim需安装)
在弹出的编辑框里输入:greeter-show-manual-login=true 保存关闭。
为了给root设置密码,在终端中输入:sudo passwd root。
关机重启在多出的登录框里输入root 和设置的密码!
在刚修改完root权限自动登录后,发现开机出现以下提示:
Error found when loading /root/.profile
stdin:is not a tty
解决方法:在终端中用命令gedit /root/.profile,打开文件后找到“mesg n”,
将其更改为“tty -s && mesg n”。
sudo:超级用户权限命令=root权限
apt-get install:安装软件
vim:vim是一个编辑器和gedit功能一样
创建安装java的文件夹:mkdir /usr/lib/java
然后把下载好的java安装包放到这个目录里
操作区域定位到java文件夹:cd /usr/lib/java
解压安装包:tar -xvf jdk-8u73-linux-x64.gz
修改环境变量:vim ~/.bashrc
在bashrc文件中添加内容:
export JAVA_HOME=/usr/lib/java/jdk1.8.0_73
export JRE_HOME=${JAVA_HOME}/jre
export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
执行生效命令:source ~/.bashrc
查看java版本:java -version
mkdir:创建文件夹命令
cd:工作目录定位命令,经常与文件查看命令ls一起用
tar -xvf:解压缩命令
安装ssh:apt-get install ssh
安装rsync: apt-get install rsync
创建ssh-key: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
将dsa.pub文件当中的内容追加到公钥中:cat ~/.ssh/id_dsa.pub && /.ssh/authorized_keys
authorized_keys得放在.ssh文件夹当中,并将id_dsa.pub里面的内容复制给authorized_keys
启动ssh服务:ssh start
验证服务是否正常启动:ps -e |grep ssh
在slave机器下也要创建ssh-key: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
该命令执行后,会在root文件夹下出现.ssh文件夹,里面有key
cat ~/.ssh/id_dsa.pub && authorized_keys 这行代码至关重要,当输入ssh localhost 不需要密码时,说明免密码登录设置完成。
完成master与slave之间的通信
首先,要固定好master和slave的IP地址,千万不要选择动态匹配,你会奔溃的。
接着,修改集群中的host配置文件
打开命令:到文件夹中手动打开host文件或者输入:
vim /etc/hosts
192.168.236.135 master
192.168.236.134 slave1
192.168.236.130 slave2
关闭ubuntu的防火墙,使得ssh通讯能够进行:ufw allow ssh
要使得master和slave之间实现免密码通信,还要把master机器中的id_dsa.pub 文件复制到slave机器的.ssh文件夹中,并命名为authorized_keys。我把slave的id_dsa.pub也互相加到了各自的authorized_keys当中。这样,在任何机器终端输入 ssh 机器名称,就能进入那台机器进行操作,比如:ssh slave1
scp ~/.ssh/id_ slave1@192.168.236.134:~/.ssh/authorized_keys
scp ~/.ssh/id_ slave2@192.168.236.130:~/.ssh/authorized_keys
查看隐藏的文件,即以点开头的文件或文件夹:control+h
scp:通过ssh进行跨机器间的复制命令
cp:本地文件复制
如何结束ping命令?control+c
查看ip连接的属性:ifconfig或者nm-tool
安装Hadoop
提醒各位,不要去下载最新的hadoop-2.7.2等版本的进行安装,因为最新版本的中文参考文献不多,而且hadoop-2.x以后的版本和hadoop-1.x有很大不同。我开始安装了2.7.2版本,但是手头的资料都是机遇hadoop-1.2.1的,所以对于我这个菜鸟来说,配置单机版和伪分布式还勉强可以,但是完全分布式怎么都不成功,最后删了重新配置了1.2.1版本的。
mkdir hadoop
#在usr文件夹下创建Hadoop文件夹
tar xzf hadoop-1.2.1.tar.gz
#解压缩Hadoop安装文件
cd /usr/hadoop/hadoop-1.2.1/conf
vim hadoop-env.sh
#将java的路径添加到Hadoop的配置文件当中
文件中添加:export JAVA_HOME=/usr/lib/java/jdk1.8.0_73
source hadoop-env.sh #使得文件修改生效
vim ~/.bashrc
#设置用户环境参数,使得Hadoop的命令和java命令能够在根目录下使用
在文件中添加:
export JAVA_HOME=/usr/lib/java/jdk1.8.0_73
export JRE_HOME=${JAVA_HOME}/jre
export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:/usr/hadoop/hadoop-1.2.1/bin:$PATH
source ~/.bashrc #使修改生效
hadoop version #查看hadoop的版本
若能正确显示版本,则恭喜单机安装成功了!
单机模式运行wordcount例子
cp LICENSE.txt input #把license.txt复制到input文件夹当中
cd .. #回到上一级目录
hadoop jar hadoop-examples-1.2.1.jar wordcount input output #运行wordcount例子,结果放到output文件夹当中
cat output/* #结果呈现
单机模式的wordcount成功运行,第一个里程碑达成!~
伪分布式Hadoop安装
我们更进一步,来伪分布式架构。
现在hadoop-1.2.1文件夹下创建一些文件夹:
root@master:/usr/hadoop/hadoop-1.2.1# mkdir tmp
root@master:/usr/hadoop/hadoop-1.2.1# mkdir hdfs
root@master:/usr/hadoop/hadoop-1.2.1# mkdir hdfs/data
root@master:/usr/hadoop/hadoop-1.2.1# mkdir hdfs/name
root@master:/usr/hadoop/hadoop-1.2.1# ls
对于伪分布式和完全分布式,都需要修改以下配置文件
core-site.xml
主要是配置hdfs的地址和端口
hdfs-site.xml
主要配置replication,理解为数据的备份
mapred-site.xml
修改Hadoop的mapreduce的配置文件,主要是配置jobtracker的地址和端口
#定位到conf文件夹下
vim core-site.xml #进入编辑
&configuration&
&property&
&name&fs.default.name&/name&
&value&&/value&
&/property&
&property&
&name&hadoop.tmp.dir&/name&
&value&/usr/hadoop/hadoop-1.2.1/tmp&/value&
&/property&
&/configuration&
vim hdfs-site.xml
&configuration&
&property&
&name&dfs.replication&/name&
&value&1&/value&
&/property&
&property&
&name&dfs.name.dir&/name&
&value&/usr/hadoop/hadoop-1.2.1/hdfs/name&/value&
&/property&
&property&
&name&dfs.data.dir&/name&
&value&/usr/hadoop/hadoop-1.2.1/hdfs/data&/value&
&/property&
&/configuration&
vim mapred-site.xml
&configuration&
&property&
&name&mapred.job.tracker&/name&
&value&localhost:9001&/value&
&/property&
&/configuration&
通过以上配置完成了最简单的伪分布式配置。
接下来做Hadoop的namenode格式化:
root@master:/usr/hadoop/hadoop-1.2.1/conf# cd ~
root@master:~# hadoop namenode -format
启动Hadoop
start-all.sh
使用java自带的命令查询出所有的守护进程
接下来使用Hadoop中的监控集群的web 页面查看运行情况:
伪分布式平台下的wordcount例子
在dfs中创建input文件夹
root@master:~# hadoop dfs -mkdir input
在中点击browse the filesystem可以查看文件夹
把文件复制到input中
root@master:~# hadoop dfs -copyFromLocal /usr/hadoop/hadoop-1.2.1/LICENSE.txt input
root@master:~# cd /usr/hadoop/hadoop-1.2.1
root@master:/usr/hadoop/hadoop-1.2.1# ls
运行word count
root@master:/usr/hadoop/hadoop-1.2.1# hadoop jar hadoop-examples-1.2.1.jar wordcount input output
查看下运行结果
hadoop dfs -cat output/*
查看Hadoop dfs中的文件列表
hadoop dfs -ls
hadoop有自己的一套命令规则,开头为hadoop dfs xx,详情:
关闭hadoop服务
stop-all.ssh
好!第二个里程碑达成了!
完全分布式hadoop搭建
将hadoop复制到两台slave机器的/usr/hadoop/hadoop-1.2.1文件夹当中。先在master当中压缩hadoop-1.2.1文件夹下的内容,打包成tar.gz文件,然后复制过去。
root@master:/usr/hadoop# tar zcvf hadoop.tar.gz hadoop-1.2.1
复制hadoop.tar.gz到slave中
scp -r hadoop.tar.gz root@slave1:/usr/
解压缩要先进入slave
ssh slave1
mkdir hadoop
cp hadoop.tar.gz hadoop #将压缩包放到hadoop文件夹当中,最好是先在slave当中建好hadoop文件夹,然后把hadoop.tar.gz复制过去。
tar xzf hadoop.tar.gz
slave1 和slave2的操作方式相同。
都复制过去后,要在slave当中设置环境变量,设置方式与之前相同。
然后启动hadoop测试。
查看localhost:50030/jobtracker.jsp测试成功后,开始配置完全分布式系统。
修改master的core.site.xml配置文件
root@master:/usr/hadoop/hadoop-1.2.1/conf# ls
vim core-site.xml
将里面的localhost替换为master,且在两台slave当中也做同样的修改。
其次修改master和slave当中的mapred-site.xml文件,把域名localhost修改为master
最后修改master、slave1、slave2上的hdfs-site.xml文件,将dfs.replication的value值改为3,这样我们的数据就会有3个副本。
修改两台机器中hadoop配置文件的masters和slaves文件
root@master:/usr/hadoop/hadoop-1.2.1/conf# vim masters
将里面的localhost改为master
root@master:/usr/hadoop/hadoop-1.2.1/conf# vim slaves
将里面改为:
这样,master同时作为了数据节点和主节点。
在两台slave上也要做相应的修改。
测试hadoop分布式集群环境
首先需要清除在hadoop-1.2.1文件夹中的tmp文件夹及其子目录下的内容清空,还要清除根目录下tmp文件夹中hadoop相关的内容。最后要把自定义的hdfs文件夹中的data和name文件夹中的内容清空。
root@master:/usr/hadoop/hadoop-1.2.1# rm -rf tmp/*
首先要清理在根目录下的tmp文件夹中,以hadoop相关的所有文件都删除掉
root@master:rm /tmp/hadoop*
然后需要清空hadoop-1.2.1文件夹中的tmp文件夹和hdfs文件夹下的内容。但不能盲目的将所有子目录都删除掉。我采用了手动进入每个文件夹,将里面的内容删除掉。
之前用rm命令删除了文件夹下的所有内容,导致启动时没有namenode任务。而且在web观察上,live node只有1,理论上应该有3。但并不知道具体原因。后来回复了文件后,手动进入各个文件夹清楚里面的内容。
在slave当中也要做相同的清空操作。
在master节点格式化集群的文件系统
hadoop namenode -format
格式化后启动
start-all.sh
终于成功启动。输入jps查看进程:
master上,显示:
root@master:~# jps
3200 TaskTracker
2645 NameNode
2793 DataNode
3050 JobTracker
2957 SecondaryNameNode
在slave上显示:
root@slave1:~# jps
2658 DataNode
2786 TaskTracker
到此为止,完全分布式的hadoop就配置好了。接下去就要开始安装spark啦!另外,有了hadoop的基础,hive、pig、hbase等hadoop架构下的工具都可以开始安装部署。大数据之路由此打开!~
最后,关机睡觉
shutdown -h now
一步一步,成为数据科学家。
我是Linux外行,hadoop外行,java更外行,Scala听也没听过,在我脑海中,Spark一直只是我的英文名。但是,作为一名数据分析师,我怎么可以完全不了解大数据的应用呢?于是,完全是外行的我,不仅打算开始学习spark,还要将hive、pig、Hbase等都尝一尝...
1.Linux安装前的配置 1.1.关闭防火墙
本站文档是假定「服务器在防火墙以内」的前提下编纂的,在这个前提下,服务器本身在内部网络是不需要防火墙的(在需要抵御内部安全威胁的情况下,您也可以用您在iptables方面的相关知识,根据实情设置防火前,并保证服务器端防火墙启...
之前的有点忘记了,这里在云笔记拿出来再玩玩.看不懂的可以留言 大家可以尝试下Ambari来配置Hadoop的相关环境快速的部署Hadoop,Hbase和Hive等并提供Ganglia和Nagios的监控功能,强烈推荐使用.http://www.cnblogs.com/sco...
经过一系列的前期环境准备,现在可以开始Hadoop的安装了,在这里去apache官网下载2.7.3的版本http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz 不...
安装hadoop步骤:一linux系统配置 两台主机都要配置 root用户1)配置时钟同步2)配置主机名3)使用setup配置网络环境(ip地址关闭防火墙)4)关闭防火墙5)配置hosts列表(用主机名代替ip 建立主机名与ip一一对应的关系)6)安装jdk(apache要...
转载请注明出处
http://www.jianshu.com/p/3bf0d75d5ada (作者:韩栋)由于本人水平有限,欢迎拍砖。 上文我们讲了LayoutInflater的使用方法。读者可以点击此LayoutInflater-使用本文主要讲关于LayoutInfla...
我喜欢 将画让她自己撕开 从背后狞笑的 真实 幻化变形抱住头 喊 啊 ... 啊 然后他微笑 宁静的 对我 说 slow down
转自:Lockheed Martin In 1976, U.S. Air Force SR-71 Blackbird crews flew from New York to London in less than two hours, reaching speeds exc...
吾日三省吾身:思故,思爾,思過者。 本不是文笔好的人,想常常作起文,实在也是难事。 1 突然迷茫,忽然想起最近很火的一首歌《消愁》“一杯敬明天,一杯敬过往”,很想看他们比赛时的整个画面,于是百度了。阴差阳错点到了另外的一集。这集是明日之子九大厂牌争夺战,总而言之就是很重要,...
你在桥上看风景,看风景的人在楼上看你;明月装饰了你的窗子,你装饰了别人的梦。这是出自于卞之琳的断章。 我一直喜欢前面一句,你在桥上看风景,看风景的人在楼上看你。这句话一直根植在我脑海中,每次我出去游玩,我站在山顶往下看的时候,我想到一览众山小;但是如果我在桥上,我就不由自觉...学习Hadoop需要学习哪些基础知识?_百度知道
学习Hadoop需要学习哪些基础知识?
我之前学习过JavaSE和JavaEE的一些知识,Java基础学的还不错,现在想学习Hadoop。还需要学习其它的什么知识呢?操作系统、数据结构、计算机组成原理什么的需要学习哪些知识点呢?学习MapReduce又需要学习什么呢?JavaEE的知识需要深入学习吗?
我是大四的学生,明年毕业,大家给点建议吧,我学新知识还是比较快的~~~
我有更好的答案
如果是掌握hadoop的使用,java基础好就可以了,看看hadoop权威指南。想深入学习源码的话,就需要些网络编程的知识了。不过个人觉得hadoop最终是用于数据分析的,所以数据挖掘,机器学习这样的算法反而比掌握hadoop本身更重要一些,重点看用hadoop来做什么。我也是初学,只是一点体会,希望能帮到你。
采纳率:30%
一楼说的有道理,要看你用hadoop做什么,如果是用的话很简单,会java就可以用maprduce编程啦!它的api看看就可以。如果是研究hadoop的底层,它本身是用java语言开发的,源码你应该看得懂的,呵呵
能够理解分布式系统跟多线程就没什么问题,大方向对了,小细节,比如语言反而是次要的。
为您推荐:
其他类似问题
您可能关注的内容
hadoop的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。短期hadoop入门实例哪里好些?_百度知道
短期hadoop入门实例哪里好些?
我有更好的答案
的话,好些的当然是去过魔据条件不错,可以去实际考察一下。我自己认为五十人左右还是可以接受的,像有些机构一百人以上,那就有点接受不了了,感觉老师也顾忌不过来,个人不建议去,但是还是自身要足够努力才行
采纳率:12%
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。给Hadoop初学者的一些建议
零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易。从一开始什么都不懂,到能够搭建集群,开发。整个过程,只要有Linux基础,虚拟机化和java基础,其实hadoop并没有太大的困难。下面整理一下整个学习过程,给大家一个参考。首先我们要了解hadoop是什么?Hadoop能够做什么?Hadoop的使用场景是什么?Hadoop和大数据、云计算的关系是什么?如何使用hadoop?当大家对这些问题有了基本的了解之后,接下来我们就要系统性的学习hadoop了。我个人建议大家不要一味的去学习理论知识,最好是理论和实践相结合,可以先跟着视频和文档去操作,先把伪分布式集群搭建起来,把wordcount实例运行起来,对hadoop集群的搭建过程和运行机制有个大概的了解和认知,然后从操作的过程中去发现自己在哪方面是薄弱点,有针对性的去弥补,这样学习就会更有针对性和目的性,学习效果也相对会更好一些,否则学习会很盲目、很痛苦的。我们知道hadoop有单机模式,伪分布模式和分布式模式。同时hadoop的环境是Linux,所以我们还需要安装Linux系统。因为我们的习惯是使用windows,所以对于Linux上来就安装软件之类的,困难程度会很大。并且我们要搭建集群,需要多台硬件的,不可能为了搭建集群,去买三台电脑。所以从成本和使用的角度我们还需要懂虚拟化方面的知识。这里的虚拟化其实就是我们需要懂得虚拟机的使用。因为hadoop安装在Linux中,才能真正发挥作用。所以我们也不会使用windows。基于以上内容。所以我们需要懂得1.虚拟化
3.java基础下面我们来详细介绍:
虚拟化:我们选择的是VMware Workstation,这里就要求我们会搭建虚拟机,安装linux(如centos)操作系统,这方面只要按照视频操作应该还是很简单的,难点在于虚拟机网络的配置,尤其是nat模式和bridge模式,因为hadoop要求主机与虚拟机与外部网络(能上网),这三者是相通的,都能够连接上网络,只有这样在安装的过程中,才不会遇到麻烦。Linux:对于Linux的学习也是一个过程,因为可能你连最简单的开机和关机命令都不会,更不要谈配置网络。常用的linux命令也就20多种,我们需要做的就是在搭建集群的过程中不断地加强练习,在实践中去记忆。但是我们会遇到各种不会的命令,即使能查到命令,我们也不能使用。为什么会这样,因为有的命令,是需要使用安装包的。所以我们也要学会如何下载安装包。我们需要使用一些命令,进行网络配置,但是在网络配置中,这里面又必须懂得虚拟机的一些知识,所以前面的虚拟机知识需要掌握扎实一些。对于有linux基础的学员也可以选择hadoop运维工程师作为职业选择。提醒大家切忌浮躁,我们不可能一两天就能完成上面的所有内容,我们至少需要花费一周的时间不断地去训练、强化。只要我们熟悉了Linux命令,熟悉了网络知识。后面我们的学习才会很轻松,很快速。通过以上的学习我们已经会安装集群了,那么接下来我们就需要进入开发阶段。开发零基础,该怎么办呢?hadoop编程是一个Java框架,同时也是编程的一次革命,使得传统开发运行程序由单台客户端(单台电脑)转换为可以由多个客户端运行(多台机器)运行,使得任务得以分解,这大大提高了效率。Hadoop既然是一个Java框架,因此就要求我们必须要懂Java,网上有大量的资料,所以学习Java不是件难事。但是学到什么程度,可能是我们零基础同学所关心的。Java:我们需要具备javaSE基础知识,暂时不需要java Web及各种框架知识。如果没有javaSE基础,建议在学习hadoop之前或过程中要加强这方面的学习和训练。当然有java基础和开发经验的学员学习hadoop就会更快速、更轻松。入门需知就到这,下篇“hadoop核心内容学习”。
没有更多推荐了,

我要回帖

更多关于 hadoop 开发实例 的文章

 

随机推荐