小卜java

Hadoop系列-入门安装

2022-03-30  本文已影响0人  汤太咸啊

这一篇,憋了好几天,近期打算学习Hadoop大数据方面,真是无从下手,看了好几篇帖子,都是千篇一律,看起来好难,最后下定决心从Hadoop开始吧,一开始入门学习先从CRUD以及安装开始吧,后期熟练了之后再考虑更加高深的知识吧,加油卷起来。

一、服务器配置部分

docker的安装我就不用写了吧,这个网上下载一个安装下一步下一步就完事了。

接下来就是在docker中配置三个节点,一个master,两个slave的集群。

--搜索最新的hadoop
docker search hadoop

--找到最高的评分的下载
docker pull sequenceiq/hadoop-docker

--本地执行,分别启动各自的服务,注意master节点,需要客户端连接之类,因此通过宿主机暴露端口
docker run -p 2888:2888 -p 3888:3888 -p 2181:2181 -p 9000:9000 -p 50070:50070 -p 8485:8485 -p 50010:50010 -p 8088:8088 --name master -d -h master sequenceiq/hadoop-docker
docker run --name slave1 -d -h slave1 sequenceiq/hadoop-docker
docker run --name slave2 -d -h slave2 sequenceiq/hadoop-docker

--本地执行进入各个服务器
docker exec -it master bash
docker exec -it slave1 bash
docker exec -it slave2 bash

--分别在每个节点上生成rsakey以及配置ssh登陆信息,就是默认允许各个节点通信
ssh localhost
cd ~/.ssh
ssh-keygen -t rsa
rm -r authorized_keys
cat id_rsa.pub > authorized_keys
cat authorized_keys
cp /etc/skel/.bash* /root/

--将生成key下载到宿主机,整合到一份文件中
docker cp master:/root/.ssh/authorized_keys authorized_keys_master
docker cp slave1:/root/.ssh/authorized_keys authorized_keys_slave1
docker cp slave2:/root/.ssh/authorized_keys authorized_keys_slave2
cat authorized_keys_master authorized_keys_slave1 authorized_keys_slave2 > authorized_keys

--将整合的key文件,复制到各个hadoop服务中,master,slave1,slave2中
docker cp authorized_keys master:/root/.ssh/authorized_keys
docker cp authorized_keys slave1:/root/.ssh/authorized_keys
docker cp authorized_keys slave2:/root/.ssh/authorized_keys

--复制完成文件后,这个文件权限会出现问题,往上别没写这个,是个坑,找了一天问题才解决,会导致ssh master或者ssh slave1时候需要数据密码,因此需要重新授权用户解决问题
cd ~/.ssh
chown root:root authorized_keys

--每个服务器上配置打开ssh的RSAkey登陆,尤其是AuthorizedKeysFile这个,一定加上~/表示当前用户的路径
vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile   ~/.ssh/authorized_keys

--重启sshd服务
service sshd restart

--修改每个服务器host
vi /etc/hosts

--将每个服务的都增加上master/slave1/slave2
172.17.0.2      master
172.17.0.3      slave1
172.17.0.4      slave2

--之后通过各台服务器,分别通过ssh访问其他节点,返回last login from之类的就证明登录到该服务器了
ssh master
ssh slave1
ssh slave2

--到这里为止,服务器的配置完成,下面该开始hadoop的服务配置了

二、Hadoop服务集群配置

这部分是配置hadoop集群,多节点的部分,最后输入http://localhost:8088,能够打开页面就算是完事了。

--进入hadoop配置路径
cd /usr/local/hadoop/etc/hadoop/

--修改core-site.xml
vi core-site.xml
  <configuration>
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://master:9000</value>
      </property>
      <property>
        <name>hadoop.tmp.dir</name>
        <value>/hadoop/tmp</value>
      </property>
  </configuration>

--修改hdfs-site.xml
vi hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/hadoop/data</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/hadoop/name</value>
  </property>
</configuration>

--修改mapped-site.xml
vi mapped-site.xml
<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
</property>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

--备份并修改yarn-site.xml
cp yarn-site.xml yarn-site.xml.bak
rm yarn-site.xml
vi yarn-site.xml
<configuration>
        <property>
     <name>yarn.resourcemanager.address</name>
    <value>master:8032</value>
 </property>
 <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
   <property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:8030</value> </property> <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
    <value>master:8033</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:8089</value>
</property>
</configuration>

--配置hadoop-env.sh,增加JAVA_HOME和HADOOP_PREFIX
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
export HADOOP_PREFIX=/usr/local/hadoop

--建立路径,以上配置文件重的内容,分别在master,slave1,slave2执行
mkdir -p /hadoop/name
mkdir -p /hadoop/data
mkdir -p /hadoop/tmp

--复制hadoop配置文件到其他节点
cd ..
scp -r hadoop/ slave1:/usr/local/hadoop/etc/
scp -r hadoop/ slave2:/usr/local/hadoop/etc/

--主节点集群配置,这个只在主节点配置,其他通用配置已经复制完了
cd hadoop
vi slaves
--具体内容
master
slave1
slave2

--到/usr/local/hadoop/bin/目录下运行,验证初始化是否有问题
cd /usr/local/hadoop/bin/
./hadoop namenode -format

--启动集群
cd ../sbin
./start-all.sh

--jps查看服务是否启动成功
jps
223 DataNode
612 ResourceManager
129 NameNode
704 NodeManager
1725 Jps
388 SecondaryNameNode

三、完事

浏览器输入:http://localhost:8088,展示以下内容,表示成功啦。后边咱们继续学习如何使用吧。

image.png

谢各位的阅读,谢谢您动动手指点赞,万分感谢各位。另外以下是我之前写过的文章,感兴趣的可以点进去继续阅读。

历史文章

Hadoop系列-入门安装
Hadoop系列-HDFS命令
Hadoop系列-Hive安装
Hadoop系列-Hive数据库常见SQL命令
Hadoop系列-HBase数据库
Hadoop系列-HBase数据库(二)
Hadoop系列-HBase数据库JAVA篇
Hadoop系列-Spark安装以及HelloWorld
JAVA面试汇总(五)数据库(一)
JAVA面试汇总(五)数据库(二)
JAVA面试汇总(五)数据库(三)
JAVA面试汇总(四)JVM(一)
JAVA面试汇总(四)JVM(二)
JAVA面试汇总(四)JVM(三)
JAVA面试汇总(三)集合(一)
JAVA面试汇总(三)集合(二)
JAVA面试汇总(三)集合(三)
JAVA面试汇总(三)集合(四)
JAVA面试汇总(二)多线程(一)
JAVA面试汇总(二)多线程(二)
JAVA面试汇总(二)多线程(三)
JAVA面试汇总(二)多线程(四)
JAVA面试汇总(二)多线程(五)
JAVA面试汇总(二)多线程(六)
JAVA面试汇总(二)多线程(七)
JAVA面试汇总(一)Java基础知识

上一篇 下一篇

猜你喜欢

热点阅读