在3台服务器上搭建 Hadoop2.7.3 集群,然后测试验证,要能够向 HDFS 上传文件,并成功运行 mapreduce 示例程序
(1)准备基础设施
准备3台服务器,分别命名为 master、slave1、slave2
互相配置为 SSH 免密码登录,并都安装好 JAVA 环境
(2)安装配置 hadoop
在 master 上下载解压 hadoop,修改相应配置文件,包括:
core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves
配置文件比较多,但也比较好理解
core-site.xml 是核心配置,需要为 hadoop 指定基本配置信息
hdfs 和 mapreduce 是核心构成,自然要配置相应的 hdfs-site.xml 和 mapred-site.xml
mapreduce 用到了 yarn 框架,所以也要设置对应的配置文件 yarn-site.xml
还需要在 slaves 中添加从节点的IP
配置完成后,把 master 上的 hadoop 目录复制到 slave1 slave2
(3)启动 hadoop
在 master 中进行 hdfs 初始化,执行启动命令,打开相应网页查看状态信息
192.168.31.164 master
192.168.31.242 slave1
192.168.31.140 slave2
$ ssh-keygen
(执行后会有多个输入提示,不用输入任何内容,全部直接回车即可)
$ ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@master
$ ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@slave1
$ ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@slave2
注:JAVA环境的安装配置没做介绍,请自己准备好
$ cd /home
$ wget http://apache.fayea.com/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
$ tar -xzf hadoop-2.7.3.tar.gz
$ mv hadoop-2.7.3 hadoop
$ cd hadoop
$ mkdir tmp hdfs
$ mkdir hdfs/data hdfs/name
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>
修改 /home/hadoop/etc/hadoop/hdfs-site.xml
在 <configuration> 块儿中添加:
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
修改 /home/hadoop/etc/hadoop/mapred-site.xml
这个文件默认不存在,需要从 mapred-site.xml.template 复制过来
$ cp mapred-site.xml.template mapred-site.xml
在 <configuration> 块儿中添加:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
修改 /home/hadoop/etc/hadoop/yarn-site.xml
在 <configuration> 块儿中添加:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</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:8088</value>
</property>
修改 /home/hadoop/etc/hadoop/slaves
删除已有内容,添加:
slave1
slave2
修改 /home/hadoop/etc/hadoop/hadoop-env.sh
找到 export JAVA_HOME=${JAVA_HOME},改为自己JAVA_HOME的绝对路径
$ scp -r /home/hadoop slave1:/home
$ scp -r /home/hadoop slave2:/home
$ vim ~/.bashrc
添加:
export PATH=$PATH:/home/hadoop/bin:/home/hadoop/sbin
保存退出
$ source ~/.bashrc
在master启动hadoop,从节点会自动启动
初始化
$ hdfs namenode -format
启动
$ hadoop-daemon.sh start namenode
$ hadoop-daemon.sh start datanode
$ start-dfs.sh
$ start-yarn.sh
$ mr-jobhistory-daemon.sh start historyserver
检查
查看状态,在3台服务器上分别执行
$ jps

浏览器中访问:
http://master ip:50070/

http://master ip:8088/
可以正常访问的话,可以说明集群启动成功了,但不一定可以正常运行,还需要下面的实际验证
(1)hdfs 操作
创建目录
$ hdfs dfs -mkdir -p /user/hadoop/input
上传文件,把现有的一些配置文件上传到刚刚创建的目录中
$ hdfs dfs -put /home/hadoop/etc/hadoop/kms*.xml /user/hadoop/input
如果没有返回错误信息,说明操作成功
访问 http://master ip:50070/,在文件浏览页面查看

(2)mapreduce 操作
hadoop 安装包中提供了一个示例程序,我们可以使用它对刚刚上传的文件进行测试
$ hadoop jar /home/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep /user/hadoop/input /user/hadoop/output 'dfs[a-z.]+'


注:在执行过程中,如果长时间处于 running 状态不动,虽然没有报错,但实际上是出错了,后台在不断重试,需要到 logs 目录下查看日志文件中的错误信息
环境搭建完成,内容较长,感谢阅读,希望对想要搭建hadoop环境的朋友有点帮助

原文来自: 性能与架构
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
通过车架号或车牌号查询车辆是否为营运车辆
通过车架号查询车辆的如品牌名称、车系名称、车型、排量、排放标准、外形尺寸、轮胎规格、变速器类型、公告号、轴距等等详细信息
基于大模型能力构建的文本审核服务,能够高效精准地识别各类文本违规内容。与传统文本内容安全审核方案相比,具备更强大的语言理解与分析能力,能精准识别复杂、隐晦的违规内容,突破了传统模式的局限。
基于图片审核大模型服务,能够全方位识别图片中的色情、性感、涉政、暴恐、违禁、宗教、引流广告、不良等违规内容,并支持返回大模型的审核结果。结合大模型和专家小模型,提供更细粒度的标签(如色情细分、具体行为、特定物体等),识别范围更广、标签更丰富。 综合效果最佳,适合对误判率、漏判率都有较高要求的场景。
针对AIGC场景,检测AIGC生成的图片是否存在违规或者不宜传播的内容。建议AIGC生成的图片都进行该项检测。