zoukankan      html  css  js  c++  java
  • Hadoop单机版和全分布式安装笔记

    Hadoop,分布式的大数据存储和计算, 免费开源!

    有Linux基础的同学安装起来比较顺风顺水,写几个配置文件就可以启动了,本人菜鸟,所以写的比较详细。

    为了方便,本人使用三台的虚拟机系统是Ubuntu-12。

    设置虚拟机的网络连接使用桥接方式,这样在一个局域网方便调试。

    单机和集群安装相差不多,先说单机然后补充集群的几点配置。

    第一步,先安装工具软件

    编辑器:vim

    sudo apt-get install vim
    

    ssh服务器: openssh,先安装ssh是为了使用远程终端工具(putty或xshell等),这样管理虚拟机就方便多了。

    sudo apt-get install openssh-server
    

    第二步,一些基本设置

    最好给虚拟机设置固定IP

    sudo vim /etc/network/interfaces
    
    加入以下内容:
    iface eth0 inet static
    address 192.168.0.211
    gateway 192.168.0.222
    netmask 255.255.255.0
    

    修改机器名,我这里指定的名字是:hadoopmaster ,以后用它做namenode

    sudo vim /etc/hostname
    

    修改hosts,方便应对IP变更,也方便记忆和识别

    sudo vim /etc/hosts
    
    加入内容:
    192.168.0.211   hadoopmaster
    

    第三步,添加一个专门为hadoop使用的用户

    sudo addgroup hadoop
    sudo adduser -ingroup hadoop hadoop
    

    设置hadoop用户的sudo权限

    sudo vim /etc/sudoers
    

    root ALL=(ALL:ALL)

    下面加一行 hadoop ALL=(ALL:ALL)

    切换到hadoop用户 su hadoop

    第四步,解压安装JDK,HADOOP,PIG(顺便把PIG也安装了)

    sudo tar zxvf ./jdk-7-linux-i586.tar.gz  -C /usr/local/jvm/
    sudo tar zxvf ./hadoop-1.0.4.tar.gz -C /usr/local/hadoop
    sudo tar zxvf ./pig-0.11.1.tar.gz -C /usr/local/pig
    

    修改解压后的目录名并且最终路径为:

    jvm: /usr/local/jvm/jdk7
    hadoop: /usr/local/hadoop/hadoop (注意:hadoop所有节点的安装路径必须相同)
    pig: /usr/local/pig
    

    设置目录所属用户

    sudo chown -R hadoop:hadoop jdk7
    sudo chown -R hadoop:hadoop hadoop
    sudo chown -R hadoop:hadoop pig
    

    设置环境变量, 编辑~/.bashrc 或 ~/.profile 文件加入

    export JAVA_HOME=/usr/local/jvm/jdk7
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    
    export HADOOP_INSTALL=/usr/local/hadoop/hadoop
    export PATH=${HADOOP_INSTALL}/bin:$PATH
    
    source ~/.profile 生效
    

    第五步,.ssh无密码登录本机,也就是说ssh到本机不需要密码

    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    

    如果不起作用请修改权限:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys  
    

    authorized_keys相当于白名单,id_rsa.pub是公钥,凡是在authorized_keys有请求者机器的公钥时ssh服务器直接放行,无需密码!

    第六步,Hadoop必要设置

    所有设置文件在hadoop/conf目录下

    1. hadoop-env.sh 找到 #export JAVA_HOME 去掉注释#,并设置实际jdk路径

    2. core-site.xml

      <property>
      <name>fs.default.name</name>
      <value>hdfs://hadoopmaster:9000</value>
      </property>
      <property>
      <name>hadoop.tmp.dir</name>
      <value>/usr/local/hadoop/tmp</value>
      </property>
      
    3. mapred-site.xml

      <property>
      <name>mapred.job.tracker</name>
      <value>hadoopmaster:9001</value>
      </property>
      
    4. hdfs-site.xml

      <property>
      <name>dfs.name.dir</name>
      <value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>
      </property>
      <property>
      <name>dfs.data.dir</name>
      <value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>
      </property>
      <property>
      <name>dfs.replication</name>
      <value>1</value>
      </property>
      
    5. 文件masters 和 文件slaves, 单机写 localhost 即可

    第七步,启动Hadoop

    格式化Hadoop的HDFS文件系统

    hadoop namenode -format
    

    执行Hadoop启动脚本,如果是集群的话在master上执行,其他slave节点Hadoop会通过ssh执行:

    start-all.sh
    

    执行命令 jps 如果显示有: Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker等五个进程表示启动成功了!

    第八步,集群的配置

    所有其他单机的安装跟上面相同,下面只增加集群的额外配置!

    最好先配置好一台单机,其他的可以通过scp直接复制,路径也最好相同包括java!

    本例的主机列表(设置hosts):

    IP主机名
    192.168.0.211 hadoopmaster
    192.168.0.210 hadoopnode1
    192.168.0.212 hadoopnode2

    设置ssh,让master能够不要密码登录到其他slaves上,主要用来启动slaves

    复制hadoopmaster下id_rsa.pub到子结点:
    scp ./ssh/id_rsa.pub hadoopnode1:/home/hadoop/.ssh/id_master
    scp ./ssh/id_rsa.pub hadoopnode2:/home/hadoop/.ssh/id_master
    
    分别在子结点~/.ssh/目录下执行:
    cat ./id_master >> authorized_keys
    

    masters文件,添加作为secondarynamenode或namenode的主机名,一行一个。

    集群写master名如:

    1. hadoopmaster

    slaves文件,添加作为slave的主机名,一行一个。

    集群写子结点名:如

    1. hadoopnode1
    2. hadoopnode2

    Hadoop管理

    hadoop启动后会启动一个任务管理服务和一个文件系统管理服务,是两个基于JETTY的WEB服务,所以可在线通过WEB的方式查看运行情况。

    任务管理服务运行在50030端口,如 http://127.0.0.1:50030

    文件系统管理服务运行在50070端口。

    参数说明:

    1. dfs.name.dir:是NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
    2. dfs.data.dir:是DataNode存放块数据的本地文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。
    3. dfs.replication:是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。
  • 相关阅读:
    centos8 将SSSD配置为使用LDAP并要求TLS身份验证
    Centos8 搭建 kafka2.8 .net5 简单使用kafka
    .net core 3.1 ActionFilter 拦截器 偶然 OnActionExecuting 中HttpContext.Session.Id 为空字符串 的问题
    Springboot根据不同环境加载对应的配置
    VMware Workstation12 安装 Centos8.3
    .net core json配置文件小结
    springboot mybatisplus createtime和updatetime自动填充
    .net core autofac依赖注入简洁版
    .Net Core 使用 redis 存储 session
    .Net Core 接入 RocketMQ
  • 原文地址:https://www.cnblogs.com/xguo/p/3082081.html
Copyright © 2011-2022 走看看