我希望自己能够有足够的运气和足够的勇气去见到命运里更多的不同的风。也期待在未来的日子里,能够被这些涌动的气流雕刻成不一样的山川与河流。
--《见风》

厦门大学数据库实验室网站提供了阿里云构建大数据环境的详细流程,从服务器的配置到ubuntu的配置到大数据环境的搭建

详情见dblab.xmu.edu

一、安装jdk

下载jdk

直接wget下载到服务器

wget https://repo.huaweicloud.com/java/jdk/8u191-b12/jdk-8u191-linux-x64.tar.gz

或者自行下载上传

点击这里下载

官网下载

上传到/home下,解压缩


tar -zxvf /home/jdk-8u191-linux-x64.tar.gz -C /usr/local/

将Java添加至环境变量

vim /etc/profile
添加如下:
export JAVA_HOME=/usr/local/jdk1.8.0_191
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile 生效
java -version 检测一下
systemctl status firewalld 检查下防火墙状态
(如果为active状态,执行
systemctl stop firewalld
systemctl disable firewalld)

二 、环境配置

修改hostname

vim /etc/hostname
修改为hadoop
hostnamectl set-hostname hadoop 立即生效

修改映射关系

vim /etc/hosts
 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.19.199.187 hadoop
注意:172.19.199.187改成你的私网ip!!!(私网ip阿里云控制台上有显示)

创建用户hadoop

adduser hadoop 创建用户
passwd hadoop 修改密码

给hadoop用户root权限
vim /etc/sudoers
添加一行
hadoop ALL=(root) NOPASSWD:ALL

设置ssh

生成密钥
ssh-keygen -t rsa -P "" 
将密钥写入ssh中,这样在本地启动时,就可以避免输入密码
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

三、Hadoop伪分布式环境搭建

下载hadoop,在/home下执行
wget https://mirrors.aliyun.com/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
解压
tar -zxvf /home/hadoop-2.8.5.tar.gz -C /usr/local/
改名
mv hadoop-2.8.5 hadoop
修改文件权限
sudo chown -R hadoop:hadoop /usr/local/hadoop

修改hadoop/etc/hadoop/hadoop-env.sh文件

export JAVA_HOME=/usr/local/jdk1.8.0_191

修改hadoop/etc/hadoop/core-site.xml文件

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://172.19.199.187:9000</value>
    </property>
</configuration>
注意:172.19.199.187改成你的私网ip!!!(私网ip阿里云控制台上有显示)

修改etc/hadoop/hdfs-site.xml文件 指定HDFS文件存储的副本数个数,默认是3个,这里是单台机器就设置为1,这个数字要小于datanode的节点数

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
    <!-- 如果是通过公网IP访问阿里云上内网搭建的集群 -->
    <property>
    <name>dfs.client.use.datanode.hostname</name>
    <value>true</value>
    <description>only cofig in clients</description>
    </property>
</configuration>

修改mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
#添加如下

<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>

修改yarn-site.xml

vim yarn-site.xml
#添加如下

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        <description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
</property>

将hadoop添加至环境变量

vim /etc/profile
添加如下:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile 执行生效
hdfs namenode -format 格式化
start-all.sh 启动hdfs
jps查看
25827 SecondaryNameNode
26058 NodeManager
25563 NameNode
25967 ResourceManager
29935 Jps
25679 DataNode
单机练习也可以不用启动yarn,用sqoop时需要,要不会有权限问题

四 查看HDFS外部UI界面(阿里云)

开启服务器外网访问端口----网络和安全-》安全组-》配置规则

添加安全组规则-》添加端口50070

访问hdfs-web端口
http://公网ip:50070
查看live的datanode

上传一个文件执行mapreduce-wordcount测试
上传文件
hadoop fs -put /lipstick.csv /

执行
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /lipstick.csv /output

阿里云上搭建的hadoop集群,需要配置映射集群经过内网访问,也就是局域网的ip地址。
如果配置为公网IP地址,就会出现集群启动不了,namenode和secondarynamenode启动不了,如果将主机的映射文件配置为内网IP集群就可以正常启动了。但通过eclipse开发工具访问会出错,显示了阿里云内网的ip地址来访问datanode。

摘录引用:

https://www.jianshu.com/p/18ded352cf40

http://dblab.xmu.edu.cn/blog/2022-2/

https://blog.csdn.net/u010886217/article/details/83479380

Last modification:August 2nd, 2020 at 09:30 pm
如果觉得我的文章对你有用,请随意赞赏