百度面经
1. python中运行shell脚本方法:
a. import commands
status, output) = commands.getstatusoutput('')
print status, output
b. import os
os.system('cat /proc/cpuinfo')
output = os.popen('cat /proc/cpuinfo')
print output.read()
2. python 获取参数:
argv[1]是第一个参数的值
3. 快速排序:
4. python 的浅复制和深复制:
字典、列表类型的对象为可变对象,整型、字符串、元组等类型的对象为不可变对象。这样就好理解了,前两个例子中变量a都是不可变对象,语句b=a是在内存中复制了a,并将b指向这个拷贝;而在第三个例子中,由于列表a是可变对象,语句b=a只是将b指向了a,a中元素的变化当然会影响到b,同理对b进行修改也会影响到a。
copy.copy
5. Linux 基本的命令:ps -ef ,grep [] filename,[]中为正则表达式。
46个Linux面试常见问题送给你 - PassZhang - 博客园
6. 统计学知识
7. hadoop 原理:
a. HDFS(Hadoop Distributed File System,Hadoop 分布式文件系统):HDFS 允许你以一种分布式和冗余的方式存储大量数据。例如,1 GB(即 1024 MB)文本文件可以拆分为 16 * 128MB 文件,并存储在 Hadoop 集群中的 8 个不同节点上。每个分裂可以复制 3 次,以实现容错,以便如果 1 个节点故障的话,也有备份。HDFS 适用于顺序的“一次写入、多次读取”的类型访问。
b. MapReduce:一个计算框架。它以分布式和并行的方式处理大量的数据。当你对所有年龄> 18 的用户在上述 1 GB 文件上执行查询时,将会有“8 个映射”函数并行运行,以在其 128 MB 拆分文件中提取年龄> 18 的用户,然后“reduce”函数将运行以将所有单独的输出组合成单个最终结果。
c. YARN(Yet Another Resource Nagotiator,又一资源定位器):用于作业调度和集群资源管理的框架。