设为首页 收藏本站
查看: 1138|回复: 0

[经验分享] Hadoop-2.5.0搭建(伪分布和真分布)

[复制链接]

尚未签到

发表于 2016-12-9 10:04:16 | 显示全部楼层 |阅读模式
  一直在做应用系统方面的工作,最近开始折腾分布式架构,会玩Hadoop是首要任务。
  下面就来说说我部署Hadoop的过程,和碰到的很多坎。
  开始选择的是Hadoop-2.4.0,伪分布基本上没什么问题了。中间因为项目变动原因,搞其他的去了~~
  过了几个月,再来折腾Hadoop,这次发现hadoop都已经出到2.5.0了,于是赶紧换了。
  下载Hadoop-2.5.0,一般我会选择在apache dist上下载,因为是linux上装的,所以选择tar.gz的发行版。copy一下链接地址,在终端wget url(下载链接地址)。如果不是root用户,还需要在前面加sudo。下在/usr/local/soft中,tar xvf apache-hadoop-2.5.0.tar.gz,解压下载的tar.gz。会看到一个名为hadoop-2.5.0的文件夹。
  下面就需要对Hadoop进行设置了。
  首先vim /etc/profile,增加

HADOOP_PREFIX=/usr/local/soft/hadoop-2.5.0
YARN_CONF_DIR=/usr/local/soft/hadoop-2.5.0
  PATH最后面增加$HADOOP_PREFIX/bin  这里要注意,和前面的属性要用:隔开
  在下面

export HADOOP_PREFIX
export YARN_CONF_DIR
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_PREFIX/lib/native  (对64位的服务器来说,这个会很重要,后面会讲到)
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"
  保存(ESC,:wq)
  哦,别忘了source /etc/profile,这是让修改过的profile马上生效。
  以上讲的,都是假设你已经正确配置了jdk了,如果你是装了jdk1.8.0_x的话,还是有点小悲剧。
  然后进入hadoop下面的etc/hadoop/(不是系统的etc,是hadoop下面的),ls,看到很多配置文件。
  先vim hadoop-env.sh

export JAVA_HOME=/usr/local/soft/jdk1.7.0_67  保存退出
  vim yarn-env.sh 

export JAVA_HOME=/usr/local/soft/jdk1.7.0_67  保存退出
  vim core-site.xml

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/xxx/tmp </value>
</property>
</configuration>
  vim hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>file:/home/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
  好了,现在可以启动看看了
  先格式化,这个很重要。

hadoop namenode -format
  这句话基本上就是把目前你的hadoop系统确定一下结构,我们的hadoop系统中,一般是一个namenode+多个datanode。
  namenode相当于顾客房间表,datanode相当于具体的房间。
  然后启动hadoop吧。
  到hadoop的根目录,

sbin/start-dfs.sh
  然后再启动yarn,因为2.5.0的版本,早就已经是以yarn这种更好的架构来运行了。

sbin/start-yarn.sh
  然后查看一下开启的进程

JPS
  显示:

6315 DataNode
6620 ResourceManager
11141 Jps
6459 SecondaryNameNode
6204 NameNode
  说明hadoop已经启动成功。
  打开http://localhost:50070,可看到hadoop的管理界面,导航栏的最后一项还可以查看hadoop里面的文件。
  我们来试着传个文件,到/home下面,新建一个文件,vim test.txt,随便写些东西。保存。
  然后把这个文件上传。

hadoop fs -put test.txt /test.txt
  在浏览器的后台刷新看看有没有test.txt。
  你可以先给hadoop建立目录

hadoop fs -mkdir /wenjianjia
  上面的上传文件也可以变成这样:

hadoop fs -put test.txt /wenjianjia/test.txt
  其他的操作,大家自己去试吧。
  下面讲讲碰到的一些问题。
  首先,就是那个非常棘手的系统兼容问题,这个问题网上的文章很多,我这里就只归纳一下了。
  主要的原因是,我们目前手头上的服务器,基本上都是64位的,而hadoop的发型包里面的lib文件确实32位的。所以,为了更好的兼容(有些时候不仅仅是兼容的问题,而是直接出现冲突),我们需要自己来编译hadoop的发型包。
  在下一篇中讲吧。
  --------------------------------------------------------------------------------------------------   
  这是看到的一篇关于SSH无密码登录的文章,之前用scp,时好时坏,但是用 ssh-copy-id之后,一切都好多了。原文地址:http://bbs.csdn.net/topics/370109654
  --------------------------------------------------------------------------------------------------
  使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linux主机。 

ssh-keygen 创建公钥和密钥。 
ssh-copy-id 把本地主机的公钥复制到远程主机的authorized_keys文件上。
ssh-copy-id 也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限 。

步骤1: 用 ssh-key-gen 在本地主机上创建公钥和密钥


ligh@local-host$ ssh-keygen -t  rsa
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key]
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Pess enter key]
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9
ligh@local-host
 

步骤2: 用 ssh-copy-id 把公钥复制到远程主机上


ligh@local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub  root@192.168.0.3
ligh@remote-host‘s password:
Now try logging into the machine, with ―ssh ?remote-host‘‖, and check in:
.ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.
[注: ssh-copy-id 把密钥追加到远程主机的 .ssh/authorized_key 上.]

步骤3: 直接登录远程主机



ligh@local-host$ ssh remote-host
Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2
[注: SSH 不会询问密码.]
ligh@remote-host$
 
[注: 你现在已经登录到了远程主机上

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-311824-1-1.html 上篇帖子: hadoop 报错be replicated to 0 nodes, instead of 1 下篇帖子: Hadoop中的集群配置和使用技巧——分布式计算开源框架Hadoop入门实践(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表