当前位置 : 首页 » 文章分类 :  大数据  »  大数据环境搭建-hadoop

大数据环境搭建-hadoop

what

本文仅描述如何在多台机器上部署hadoop集群。

Prerequisites

  1. 三台在同一个内网的测试机,系统是64位centos6.5+,最好可以访问外网。
  2. 请参照centos6.5基本开发环境搭建安装并配置jdk环境。

Steps

        1. 在bigdata用户组下创建hadoop用户

group add bigdata
useradd -g bigdata hadoop
passwd hadoop

        2. 配置SSH无密码登陆
       SSH 无密 码原理简介 :

首先在hadoop1上生成一个密钥对,包括一个公钥和一个私钥,并将公钥复制到所有的 slave(hadoop2-hadoop3)上。
然后当master通过SSH连接slave时,slave就会生成一个随机数并用master的公钥对随机数进行加密,并发送给master 。
最后master收到加密数之后再用私钥解密,并将解密数回传给slave,slave确认解密数无误之后就允许master不输入密码进行连接了。

       具体步骤(在root用户和hadoop用户登陆情况下执行)
1 、执行命令ssh-keygen -t rsa之后一路回车,查看刚生成的无密码钥对: cd .ssh 后执行ll
2 、把 id_rsa.pub 追加到授权的 key 里面去。 执行命令 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
3 、修改权限: 执行 chmod 600 ~/.ssh/authorized_keys
4 、确保 cat /etc/ssh/sshd_config 中存在如下内容

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

如需修改, 则在修改后执行重启 SSH 服 务命令使其生效 | service sshd restart
5 、将公 钥复制到所有的 slave 机器上 :scp ~/.ssh/id_rsa.pub 192.168.1.203 : ~/ 然后 输入 yes ,最后 输入 slave 机器的密 码
6 、在 slave 机器上 创建 .ssh 文件夹 :mkdir ~/.ssh 然后 执行 chmod 700 ~/.ssh (若文件夹以存在 则不需要创建)
7 、追加到授权文件 authorized_keys 执行命令 :cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 然后 执行 chmod 600 ~/.ssh/authorized_keys
8 、重复第 4 步
9 、 验证命令 : 在 master 机器上 执行 ssh 192.168.1.203 发现主机名由 hadoop1 变成 hadoop3 即成功,最后 删除 id_rsa.pub 文件 :rm -r id_rsa.pub
按照以上步骤从步骤1到9分别配置其它的机器,要求每个都可以无密码登录

        3. 下载安装包并解压
下载hadoop-2.7.1.tar.gz到/home/hadoop/opt/目录下,然后tar&ln -s。

        4. config /etc/profile

配置 环境变量: vim /etc/profile
在末尾添加
export HADOOP_DEV_HOME=/home/hadoop/hadoop
export PATH=$PATH:$HADOOP_DEV_HOME/bin
export PATH=$PATH:$HADOOP_DEV_HOME/sbin
export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
export YARN_HOME=${HADOOP_DEV_HOME}
export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

        5. config /etc/hadoop/

yarn-site.xml

yarn-site.xml

hdfs-site.xml

hdfs-site.xml

core-site.xml

core-site.xml

mapred-site.xml
mapred-site.xml

slaves:列出所有的slave节点,一行一个。

        6. start hadoop

  1. hadoop namenode format
  2. start-dfs.sh & start-yarn.sh
  3. jps

        7. start hadoop

  1. hadoop namenode format
  2. start-dfs.sh & start-yarn.sh
  3. jps

        8. stop hadoop

  1. stop-dfs.sh & stop-yarn.sh
  2. jps

        9. check installation

hadoop master
hadoop master

hadoop fs -ls hdfs://master:8020/
hadoop fs -mkdir hdfs://master:8020/testfolder
hadoop fs -copyFromLocal ./xxxx hdfs://master:8020/testfolder
hadoop fs -ls hdfs://master:8020/ testfolder

碰到的一些问题

  1. ls: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException:
    Protocol message end-group tag did not match expected tag.;
    端口号错了

  2. namenode启动不了
    hdfs-site.xml
    core-site.xml

  3. secondary namenode ip地址设置,如果不设置就是0.0.0.0
    hdfs-site.xml

    dfs.namenode.secondary.http-address

    master:23002
  4. hadoop connection refused on port 9000
    vi /etc/ssh/sshd_config
    Port 9000

  5. ssh hostname
    http://serverfault.com/questions/215007/associate-name-with-ip-for-ssh
    可以创建~/.ssh/config 文件并为每台服务器指定登录信息和验证方法
    cat ~/.ssh/config
    Host master
    HostName ip
    User hadoop
    chmod 600 ~/.ssh/config

  6. Change the default SSH port

    Step 1
    As root, use your favorite text editor (vi) to edit the sshd configuration file.
    vi /etc/ssh/sshd_config
    Step 2
    Edit the line which states ‘Port 22’. But before doing so, you’ll want to read the note below. Choose an appropriate port, also making sure it not currently used on the system. What ports, IPs and protocols we listen for
    Port 50683
    Step 3
    Switch over to the new port by restarting SSH.
    /etc/init.d/ssh restart
    Step 4
    Verify SSH is listening on the new port by connecting to it. Note how the port number now needs to be declared.
    ssh username@hostname.com -p 50683

上一篇 大数据环境搭建-elasticsearch

下一篇 大数据环境搭建-storm