创建文件夹,后面hadoop会用到:
mkdir -p ~/work/tmp/dfs/name && mkdir -p ~/work/tmp/dfs/data
hadoop设置
-
以hadoop账号登录node0;
-
解压hadoop安装包:
tar -zxvf hadoop-2.7.7.tar.gz
-
进入目录~/hadoop-2.7.7/etc/hadoop;
-
依次编辑hadoop-env.sh、mapred-env.sh、yarn-env.sh这三个文件,确保它们的内容中都有JAVA_HOME的正确配置,如下:
export JAVA_HOME=/home/hadoop/jdk1.8.0_191
- 编辑core-site.xml文件,找到configuration节点,改成以下内容:
fs.defaultFS
hdfs://node0:8020
hadoop.tmp.dir
/home/hadoop/work/tmp
dfs.namenode.name.dir
file://${hadoop.tmp.dir}/dfs/name
dfs.datanode.data.dir
file://${hadoop.tmp.dir}/dfs/data
- 编辑hdfs-site.xml文件,找到configuration节点,改成以下内容,把node2配置成sendary namenode:
dfs.namenode.secondary.http-address
node2:50090
- 编辑slaves文件,删除里面的"localhost",增加两行内容:
node1
node2
- 编辑yarn-site.xml文件,找到configuration节点,改成以下内容:
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
node0
yarn.log-aggregation-enable
true
yarn.log-aggregation.retain-seconds
106800
- 将文件mapred-site.xml.template改名为mapred-site.xml:
mv mapred-site.xml.template mapred-site.xml
- 编辑mapred-site.xml文件,找到configuration节点,改成以下内容:
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
node0:10020
mapreduce.jobhistory.webapp.address
node0:19888
- 将整个hadoop-2.7.7目录同步到node1的家目录:
scp -r ~/hadoop-2.7.7 hadoop@node1:~/
- 将整个hadoop-2.7.7目录同步到node2的家目录:
scp -r ~/hadoop-2.7.7 hadoop@node2:~/
格式化hdfs
在node0执行以下命令格式化hdfs:
~/hadoop-2.7.7/bin/hdfs namenode -format
启动hadoop
- 在node0机器执行以下命令,启动hdfs:
~/hadoop-2.7.7/sbin/start-dfs.sh
- 在node0机器执行以下命令,启动yarn:
~/hadoop-2.7.7/sbin/start-yarn.sh
- 在node0机器执行以下命令,启动ResourceManager:
~/hadoop-2.7.7/sbin/yarn-daemon.sh start resourcemanager
- 在node0机器执行以下命令,启动日志服务:
~/hadoop-2.7.7/sbin/mr-jobhistory-daemon.sh start historyserver
- 启动成功后,在node0执行jps命令查看java进程,如下:
[hadoop@node0 ~]$ jps
3253 JobHistoryServer
2647 NameNode
3449 Jps
2941 ResourceManager
- 在node1执行jps命令查看java进程,如下:
[hadoop@node1 ~]$ jps
2176 DataNode
2292 NodeManager
2516 Jps
- 在node2执行jps命令查看java进程,如下:
[hadoop@node2 ~]$ jps
1991 DataNode
2439 Jps
2090 SecondaryNameNode
2174 NodeManager
至此,hadoop启动成功;
验证hadoop
下面运行一次经典的WorkCount程序来检查hadoop工作是否正常:
- 以hadoop账号登录node0,在家目录创建文件test.txt,内容如下:
hadoop mapreduce hive
hbase spark storm
sqoop hadoop hive
spark hadoop
- 在hdfs上创建一个文件夹:
~/hadoop-2.7.7/bin/hdfs dfs -mkdir /input
- 将test.txt文件上传的hdfs的/input目录下:
~/hadoop-2.7.7/bin/hdfs dfs -put ~/test.txt /input
- 直接运行hadoop安装包中自带的workcount程序:
~/hadoop-2.7.7/bin/yarn \
jar ~/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar \
wordcount \
/input/test.txt \
/output
控制台输出如下:
[hadoop@node0 ~]$ ~/hadoop-2.7.7/bin/yarn \
jar ~/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar \
wordcount \
/input/test.txt \
/output
19/02/08 14:34:28 INFO client.RMProxy: Connecting to ResourceManager at node1/192.168.119.164:8032
19/02/08 14:34:29 INFO input.FileInputFormat: Total input paths to process : 1
19/02/08 14:34:29 INFO mapreduce.JobSubmitter: number of splits:1
19/02/08 14:34:29 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1549606965916_0001
19/02/08 14:34:30 INFO impl.YarnClientImpl: Submitted application application_1549606965916_0001
19/02/08 14:34:30 INFO mapreduce.Job: The url to track the job: http://node1:8088/proxy/application_1549606965916_0001/
19/02/08 14:34:30 INFO mapreduce.Job: Running job: job_1549606965916_0001
19/02/08 14:34:36 INFO mapreduce.Job: Job job_1549606965916_0001 running in uber mode : false
19/02/08 14:34:36 INFO mapreduce.Job: map 0% reduce 0%
19/02/08 14:34:41 INFO mapreduce.Job: map 100% reduce 0%
19/02/08 14:34:46 INFO mapreduce.Job: map 100% reduce 100%
19/02/08 14:34:46 INFO mapreduce.Job: Job job_1549606965916_0001 completed successfully
19/02/08 14:34:46 INFO mapreduce.Job: Counters: 49
File System Counters
FILE: Number of bytes read=94
FILE: Number of bytes written=245525
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=168
HDFS: Number of bytes written=60
HDFS: Number of read operations=6
HDFS: Number of large read operations=0
HDFS: Number of write operations=2
Job Counters
Launched map tasks=1
Launched reduce tasks=1
Data-local map tasks=1
Total time spent by all maps in occupied slots (ms)=2958
Total time spent by all reduces in occupied slots (ms)=1953
Total time spent by all map tasks (ms)=2958
Total time spent by all reduce tasks (ms)=1953
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!