为什么80%的码农都做不了架构师?>>>   

一、准备
1.用户:用root也行,或者自己建立一个新的用户都可以,但是注意所有集群采用同样的用户名以及java和hadoop相同的安装目录。
2.两个文件:
  jdk-7u17-linux-x64.rpm,别的版本也可以,起码1.6以上(hadoop要求)。
  hadoop-1.1.2-bin.tar.gz,hadoop不推荐用rpm安装,这样各个文件相对比较集中,利于后期手动配置更多参数或者优化。
3.硬件:最好三台机器以上,独立linux系统(非虚拟机),配置当然越高越好。
4.先关了防火墙
   即时生效,重启后失败:
    service iptables stop(关)
    service iptables start(开)
   重启后永久生效:
    chkconfig iptables off(关)
    chkconfig iptables on(开)
也可以修改相关端口,自己看着办。

二、修改namenode和datanode的名称(namenode和所有datanode)
1.vim /etc/sysconfig/network
namenode上: HOSTNAME=namenode
datanode上: HOSTNAME=datanode1(其它datanode类似)
2.vim /etc/hosts
加入:192.168.xxx.xxx namenode
          192.168.xxx.xxx datanode1(其它类似)
注意:namenode上要全部都写上,datanode上写自己的就行了。
例如:datanode2的配置
192.168.xxx.xxx namenode
192.168.xxx.xxx datanode2

3.测试:ping namenode,ping datanode1.......

三、JAVA&JDK
1.首先安装JDK
 权限:chmod a+x jdk-7u17-linux-x64.rpm
 安装:rpm -ivh jdk7u17-linux-x64.rpm
2.配置java环境
 虽然是rpm安装,不用配置环境变量,java -version也能显示,但是为了hadoop还是不能偷懒。。。
首先看一下安装在哪了:
 find / -name java 然后找到安装目录
配置系统环境变量:
vim /etc/profile
添加:
 #set config java
export JAVA_HOME=/usr/java/jdk1.7.0_17
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH
source生效:
source /etc/profile

3.多个jdk的处理
 如果我们安装eclipse以后或者因为其它原因系统中有多个jdk,hadoop最好不要用sun的jdk(都说山寨,不明原因),这样处理:
alternatives --install /usr/bin/java java /usr/java/jdk1.7.0/bin/java 60
alternatives --config java
打完就看明白了,选我们希望用的jdk号,然后enter。。。
再java -version看一下吧。

如果实在是看不下去,那就删除别的jdk
rpm -qa|grep java
rpm -e --nodeps xxxxxxxx 或者 yum -y remove xxxxxxxxxxx
 
4.可以写个hello world感受一下。。。

四、SSH

1.用SSH的目的就是为了实现namenode和datanode之间能够直接访问(不需要输入root密码),这也是hadoop要求的。

2.SSH无密码原理
Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥追加到所有的Slave的authorized_keys文件上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并从authorized_keys找到Master 的公钥,然后用这个公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认 解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave 上。

3.实现
 a. 首先要安装openssh,yum安装server和client。
 b.配置ssh
    vim /etc/ssh/sshd_config
    设置:(把前面的#去掉即可,no的改成yes)
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys
 c.在namenode上
    ssh-keygen -t rsa  (ssh-keygen一个单独的命令)
    cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys (本机ssh本机)

cat ~/.ssh/id_rsa.pub | ssh root@datanode1 "cat >>~/.ssh/authorized_keys" (本机和datanode)
    其他datanode一样
 d.在所有datanode上
    ssh-keygen -t rsa 
    cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys (本机ssh本机)

cat ~/.ssh/id_rsa.pub | ssh root@namenode  "cat >>~/.ssh/authorized_keys" (和namenode)
    cat ~/.ssh/id_rsa.pub | ssh root@datanode2 "cat >>~/.ssh/authorized_keys" (和其他datanode)
 e.重启ssh服务
    service sshd restart
 f.验证
    ssh namnode
    ssh datanode1。。。。。

五、HADOOP
1.解压缩(看准目录)
 tar -zxvf hadoop-1.1.2-bin.tar.gz

2.配置系统环境
 vim /etc/profile
 #set hadoop install
 export HADOOP_INSTALL=/usr/hadoop-1.1.2
 export PATH=$PATH:$HADOOP_INSTALL/bin

#set hadoop
 export HADOOP_HOME=/usr/hadoop-1.1.2
 export PATH=$HADOOP_HOME/bin:$PATH
 export HADOOP_LOG_DIR=${HADOOP_HOME}/logs

source /etc/profile生效

3.配置hadoop(conf目录下)
 a.主从配置
     vim masters 
     namenode 或者直接IP地址 192.168.XXX.XXX
     vim slaves
     datanode1
     datanode2。。。
     所有namenode和datanode都要配置(一样的)
 b.配置hadoop-env.sh
    vim hadoop-env.sh
    # The java implementation to use.  Required.
    export JAVA_HOME=/usr/java/jdk1.7.0_17(去掉#改成自己的目录)
    这里最好加一句:
    export HADOOP_HOME_WARN_SUPPRESS=TRUE
    是为了防止出现:“Warning:$HADOOP_HOME is deprecated 关闭”的警告信息。
    有这个也没事,就是看着蛋疼!
 c. 配置core-site.xml
     <configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://namenode:9000/</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/hadoop-1.1.2/tmp/</value>(*注意目录)
        </property>
</configuration>
 d.配置hdfs-site.xml
  <configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>(*表示数据备份个数)
        </property>
</configuration>
 e.配置mapred-site.xml
<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>namenode:9001</value>
        </property>
</configuration>
 f.datanode处理
把这三个xml文件拷贝到datanode上
例如:scp /usr/hadoop-1.1.2/conf/core-site.xml root@datanode1:/usr/hadoop-1.1.2/conf/
这里会发现,已经不需要输入密码了,这就是无密码ssh的作用。
别忘了datanode的 hadoop-env.sh

g.可以选择重启一下,我也不知道为什么,就是感觉~

4.初始化hadoop(所有namenode和datanode)
namenode: ./bin/hadoop namenode -format
datanode: ./bin/hadoop datanode -format
(*注意看出来的东西,什么都无所谓,但是不能有ERROR!)
如果有ERROR,大部分是因为JDK的目录没有设置好。

5.启动hadoop
./bin/start-all.sh
关闭:./bin/stop-all.sh
(*如果是rpm安装的hadoop,这里会有权限问题,运行chmod -R 777 /usr/sbin/ )
 (*如果这里有个warning,不用管)

6.查看结果
 a.jps
  如果这个命令用不了,说明是jdk配置错误。
 b.hadoop dfsadmin -report
 c.网页形式:
  jobtracker: http://192.168.xxx.xxx:50030/jobtracker.jsp
  dfs:http://192.168.xxx.xxx:50070/

六、测试
1.一个简单的sort样例(自带的)
hadoop jar $HADOOP_INSTALL/hadoop-examples-1.1.2.jar randomwriter random-data
hadoop jar $HADOOP_INSTALL/hadoop-examples-1.1.2.jar random-data sorted-data
(*期间可以在jobtracker上看过程)
结果:
hadoop jar $HADOOP_INSTALL/hadoop-test-1.1.2.jar testmapredsort -sortInput random-data -sortOutput sorted-data

七、自己编译JAR包
1.eclipse下project的方式,在网页中是看不见运行状态的。
2.自己写:(以WordCount为例)
   a.首先在workspaces/WordCount/src,就是eclipse的目录,找到WordCount.java
      mkdir wordcount_classes (javac后的.class文件在这里头)
   b.编译
      javac -classpath /usr/hadoop-1.0.4/hadoop-core-1.0.4.jar:/usr/hadoop-1.0.4/lib/commons-cli-1.2.jar -d wordcount_classes WordCount.java
      hadoop-core-1.0.4.jar这个文件各个版本可能不太一样,去hadoop目录瞅一眼。
    c.打包
       jar -cvf wordcount.jar -C wordcount_classes/ .(.前面有个空格)
    d.执行
       hadoop jar wordcount.jar WordCount /tmp/wordcount/word.txt /tmp/wordcount/output
       WordCount这里,如果在一个packet内,需要把完整的packet名加入,例如:org.myorg.WordCount
       后面直接跟hdfs路径的input和output就行
3.在http://192.168.xxx.xxx:50030/jobtracker.jsp中就可以看见job的记录了。

转载于:https://my.oschina.net/rongganglee/blog/377286

linux Fedora搭建hadoop平台总结相关推荐

  1. linux下搭建hadoop环境步骤分享

    linux下搭建hadoop环境步骤,需要的朋友可以参考下 1.下载hadoop包 wget http://apache.freelamp.com/hadoop/core/stable/hadoop- ...

  2. 基于阿里云搭建hadoop平台

    文章目录 1. 前言 2. 添加hadoop用户 3. 配置/etc/hosts文件 4. 设置ssh免密登录 4.1 安装ssh 4.2 设置免密 5. 安装JDK 6. 安装hadoop 7. 配 ...

  3. 基于 Docker 搭建 Hadoop 平台

    基于 Docker 搭建完全分布式 Hadoop 平台 前言 环境 遇到的坑 折腾实录 一.构建镜像 1. 准备JDK和Hadoop 2. 构建centos-hadoop镜像 二.启动容器 三.集群搭 ...

  4. Linux环境搭建Hadoop伪分布模式

    Hadoop有三种分布模式:单机模式.伪分布.全分布模式,相比于其他两种,伪分布是最适合初学者开发学习使用的,可以了解Hadoop的运行原理,是最好的选择.接下来,就开始部署环境. 首先要安装好Lin ...

  5. trac linux,Ubuntu搭建trac平台步骤

    Ubuntu搭建trac平台步骤: 注:如果不用mysql模式,mysql相关均可不装 # apt-get install apache2 # apt-get install libapache2-m ...

  6. 搭建Hadoop平台(一)之配置用户名及hosts文件

    一.修改主机名 1.hostname命令查看当前主机名 2.sudo vi /etc/sysconfig/network 修改主机名 3.进入vi模式,按键i,修改hostname那栏信息,如下图: ...

  7. Linux操作系统下Moodle平台的搭建

    转自http://fuwu.aieln.com/info/show/711/ 软件下载地址(Moodle2.2.2(Build:20120312)):http://bbs.aieln.com/arti ...

  8. Linux搭建hadoop高性能集群(一)

    文章目录 关于此篇(题外话) Linux系统搭建hadoop高性能集群(一) 第一步 虚拟机的安装 第二步 创建一个虚拟机 第三步 虚拟机启动初始化 第四步 虚拟机克隆 第五步 Linux系统网络配置 ...

  9. linux hadoop集群搭建,hadoop集群搭建

    hadoop集群搭建步骤 实验介绍 下面将要在三台linux虚拟机上搭建hadoop集群. 知识点 linux基本命令 集群安装 完成实验需要以下相关知识 解压命令 tar -zxvf XX.tar. ...

最新文章

  1. R语言应用实战-基于R语言的判别分析:fisher判别法,距离判别法以及Bayers判别法(附源代码)
  2. Qt Creator从Maya导出3D资产
  3. js call,apply,bind三个方法的区别
  4. PyQt5 Pyinstaller时出现错误Cannot find PyQt5 plugin directories
  5. java代码启动spring_javascript - 从JavaScript调用Java代码( Spring 启动)
  6. 基础层区块链Harmony发布主网新版本v4.0.0
  7. 学 Python 知识点其实特简单, “内置函数“ 思维导图来了
  8. 六、鼎捷T100生产管理之生产入库管理篇
  9. IP转换器 V2.6
  10. java 定时关机_win7电脑怎么设置定时关机_win7电脑设置定时关机的详细教程-win7之家...
  11. 黄敏思先生讲解《保证CAN运行稳定的核心设计与测试》
  12. Android 实现水波纹效果
  13. 【Django】admin的save_modle方法重写-20220803
  14. 关于微信公众号文章编辑器不能直接编辑html样式的处理方法
  15. 防御100gDDoS需要多少钱
  16. 程序猿编程课堂 Python学习之入门篇1:环境搭建与第一个程序
  17. 横幅广告(2)admob
  18. Review KD(2)
  19. Docker出现exited(127)的解决方法
  20. 基于java家庭理财记账系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

热门文章

  1. 如何实践AI深度学习的十大惊艳案例
  2. 干货丨深度学习初学者必读:究竟什么是张量?
  3. 干货丨2017年AI与深度学习要点大全
  4. 元宇宙的“42条共识”
  5. 10分钟了解图卷积神经网络的常用算法和发展方向
  6. 腾飞资本任溶 :互联网大脑,新的天方夜谭?—评《崛起的超级智能》
  7. 脑内世界模型:脑科学基础上的意识问题哲学解说
  8. 微软全球执行副总裁沈向洋:你给自己的定位是什么,你就会得到什么
  9. 存在描述所有生命的方程吗?
  10. 亚洲与非洲:中国支付巨头的海外进击