—————————————————————————————————
"大数据技术原理与应用"课程实验报告
题目:实验1:熟悉常用的Linux操作和Hadoop操作 姓名:朱小凡 日期:2022/3/11
1、实验环境:
设备名称 LAPTOP-9KJS8HO6
处理器 Intel® Core™ i5-10300H CPU @ 2.50GHz 2.50 GHz
机带 RAM 16.0 GB (15.8 GB 可用)
主机操作系统 Windows 10 家庭中文版
虚拟机操作系统 ubuntukylin-16.04
系统类型 64 位操作系统, 基于 x64 的处理器
笔和触控 没有可用于此显示器的笔或触控输入
2、实验内容与完成情况:
<!-- -->


熟悉常用Linux命令
(1)切换到目录/usr/local
cd /usr/local
(2)切换到当前目录的上一级目录
cd …
cd ~

<!-- -->
cd /usr
ls

<!-- -->
cd /tmp
mkdir a
ls --al

cd /tmp
mkdir --p a1/a2/a3/a4

<!-- -->
cd /tmp
rmdir a

cd /tmp
rmdir --p a1/a2/a3/a4
ls -al

<!-- -->
sudo cp ~/.bashrc /usr/bashrc1

cd /tmp
mkdir test
sudo cp --r /tmp/test /usr

<!-- -->
sudo mv /usr/bashrc1 /usr/test

sudo mv /usr/test /usr/test2

<!-- -->
sudo rm /usr/test2/bashrc1

sudo rm --R /usr/test2

查看当前用户主文件夹下的.bashrc文件内容
cat ~/.bashrc

反向查看当前用户主文件夹下的.bashrc文件内容
tac ~/.bashrc

翻页查看当前用户主文件夹下的.bashrc文件的内容
more ~/.bashrc

<!-- -->
head --n 20 ~/.bashrc

head -n -50 ~/.bashrc

<!-- -->
tail -n 20 ~/.bashrc

tail -n +50 ~/.bashrc

<!-- -->
cd /tmp
touch hello
ls -l hello

touch -d “5 days ago” hello

将hello文件所有者改为root账号,并查看属性
sudo chown root /tmp/hello
ls -l /tmp/hello

找出主文件夹下文件名为.bashrc的文件
find ~/.bashrc

<!-- -->
sudo mkdir /test
sudo tar -zcv -f /test.tar.gz test

sudo tar -zxv -f /test.tar.gz -C /tmp

从~/.bashrc文件中查找字符串"examples"
grep examples ~/.bashrc

(1)命令:
sudo vim ~/.bashrc
文件的末尾追加下面内容:
#set oracle jdk environment
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_60 ##
这里要注意目录要换成自己解压的jdk 目录export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.😒{JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使环境变量马上生效
source ~/.bashrc
(2)查看JAVA_HOME变量的值
echo $JAVA_HOME


访问Hadoop官网(https://hadoop.apache.org/),下载Hadoop安装文件hadoop-3.1.3.tar.gz。在Linux虚拟机环境下完成Hadoop伪分布式环境的搭建,并运行Hadoop自带的WordCount实例检测是否运行正常。具体安装方法可以参考网络资料,也可以参考本书官网的"教材配套大数据软件安装和编程实践指南"。
答:(1)配置core-site.xml 和 hdfs-site.xml
(2)配置完成后,执行 NameNode 的格式化:
cd /usr/local/hadoop
./bin/hdfs namenode --format
(3)接着开启 NameNode 和 DataNode 守护进程:
cd /usr/local/hadoop
./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
(4)启动完成后,可以通过命令 jps 来判断是否成功启动.
(5)运行Hadoop自带的WordCount实例
例如:统计/usr/local/hadoop/目录下的LICENSE.txt文件中各个单词出现的次数
命令:./bin/hadoop jar
./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount
input output

图3.1伪分布式安装成功

图3.2 访问 Web 界面

图3.3 Hadoop自带实例WordCount统计结果(部分)
<!-- -->
(1) 使用Hadoop用户登录Linux操作系统,启动Hadoop
(Hadoop的安装目录为"/usr/local/hadoop"),为Hadoop用户在HDFS中创建用户目录"/user/hadoop"。
答:./bin/hdfs dfs -mkdir -p /user/hadoop

(2) 接着在HDFS的目录"user/hadoop"下,创建test文件夹,并查看文件列表。
答:./bin/hdfs dfs -mkdir test
./bin/hdfs dfs -ls

(3) 将Linux操作系统本地的"~/.bashrc"文件上传到HDFS的test文件夹中,并查看test。
答:./bin/hdfs dfs -put ~/.bashrc test
./bin/hdfs dfs -ls test

(4) 将HDFS
test文件夹复制到Linux操作系统本地文件系统的"/usr/local/hadoop"目录下。
答:./bin/hdfs dfs -get test ./
ls

**
**
3、出现的问题:

3、开启 NameNode 和 DataNode 守护进程时提示ERROR: JAVA_HOME is not set
and could not be found.

4、解决方案:
解决方法:先用WIN+鼠标挪动安装程序界面,找到安装按钮,完成安装后,点击VirtualBox菜单栏中的设备---->安装增强功能,然后重启虚拟机,在系统设置中可以选择调整分辨率。
解决方法:关闭虚拟机后,选择VirtualBox菜单栏中的设备—>网络,由于我的电脑内置有多个网卡,所以需要查看当前主机的网络连接,选择正确的网卡名称,比如有线网卡Realtek
PCIe GbE Family Controller和无线网卡MediaTek Wi-Fi 6 MT7921 Wireless
LAN Card。如图所示:

3、到hadoop的安装目录修改配置文件"/usr/local/hadoop/etc/hadoop/hadoop-env.sh",在里面找到"export
JAVA_HOME=${JAVA_HOME}"这行,然后,把它修改成JAVA安装路径的具体地址,比如,“export
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162”,然后,再次启动Hadoop。
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption
我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?
在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.
a=[3,4,7,8,3]b=[5,3,6,8,3]假设数组长度相同,是否有办法使用each或其他一些惯用方法从两个数组的每个元素中获取结果?不使用计数器?例如获取每个元素的乘积:[15,12,42,64,9](0..a.count-1).eachdo|i|太丑了...ruby1.9.3 最佳答案 使用Array.zip怎么样?:>>a=[3,4,7,8,3]=>[3,4,7,8,3]>>b=[5,3,6,8,3]=>[5,3,6,8,3]>>c=[]=>[]>>a.zip(b)do|i,j|c[[3,5],[4,3],[7,6],
我有一个非常简单的Controller来管理我的Rails应用程序中的静态页面:classPagesController我怎样才能让View模板返回它自己的名字,这样我就可以做这样的事情:#pricing.html.erb#-->"Pricing"感谢您的帮助。 最佳答案 4.3RoutingParametersTheparamshashwillalwayscontainthe:controllerand:actionkeys,butyoushouldusethemethodscontroller_nameandaction_nam
我需要在rail3中使用标准注册/登录/忘记密码功能进行身份验证。是否有大多数人为此使用的插件或其他东西? 最佳答案 我不确定最常用的方法是什么-但可以肯定的是,Plataformatec的“Devise”是一个非常流行的方法:http://github.com/plataformatec/devise我已经尝试了一些authgem,对我来说,它是最简单的设置和修改以满足我的需要。它内置了密码恢复、帐户确认(如果需要)和其他一些非常方便的功能。 关于ruby-on-rails-在Rail
我在ruby表单中有一个提交按钮f.submitbtn_text,class:"btnbtn-onemgt12mgb12",id:"btn_id"我想在不使用任何javascript的情况下通过ruby禁用此按钮 最佳答案 添加disabled:true选项。f.submitbtn_text,class:"btnbtn-onemgt12mgb12",id:"btn_id",disabled:true 关于ruby-on-rails-如何在Rails中添加禁用的提交按钮,我们在St
关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭11年前。Improvethisquestion我不经常使用ruby-通常它加起来相当于每两个月或更长时间编写一次脚本。我的大部分编程都是使用C++进行的,这与ruby有很大不同。由于我与ruby之间的差距如此之大,我总是忘记语言的基本方面(比如解析文本文件和其他简单的东西)。我想每天练习一些基本的东西,我想知道是否有一些我可以订阅的网站,并且会向我发送当天的Ruby问题或类似的东西。有人知道这样的站点/Internet服务吗?